From f1c4d63e5c1dd292a8215a30a4ab17d30b5a6f96 Mon Sep 17 00:00:00 2001 From: raphael-istari Date: Wed, 5 Nov 2025 21:59:31 -0800 Subject: [PATCH 01/12] start docusaurus migration --- docusaurus-docs/.gitignore | 20 + docusaurus-docs/README.md | 55 + .../blog/2019-05-28-first-blog-post.md | 12 + .../blog/2019-05-29-long-blog-post.md | 44 + .../blog/2021-08-01-mdx-blog-post.mdx | 24 + .../docusaurus-plushie-banner.jpeg | Bin 0 -> 96122 bytes .../blog/2021-08-26-welcome/index.md | 29 + docusaurus-docs/blog/authors.yml | 25 + docusaurus-docs/blog/tags.yml | 19 + docusaurus-docs/docs-graphql/index.md | 17 + docusaurus-docs/docs-learn/index.md | 7 + docusaurus-docs/docs-ratel/index.md | 17 + docusaurus-docs/docs/overview.md | 119 + docusaurus-docs/docusaurus.config.ts | 197 + docusaurus-docs/package-lock.json | 18000 ++++++++++++++++ docusaurus-docs/package.json | 47 + docusaurus-docs/sidebars-graphql.ts | 10 + docusaurus-docs/sidebars-learn.ts | 10 + docusaurus-docs/sidebars-ratel.ts | 10 + docusaurus-docs/sidebars.ts | 9 + .../src/components/HomepageFeatures/index.tsx | 71 + .../HomepageFeatures/styles.module.css | 11 + docusaurus-docs/src/css/custom.css | 30 + docusaurus-docs/src/pages/index.module.css | 23 + docusaurus-docs/src/pages/index.tsx | 44 + docusaurus-docs/src/pages/markdown-page.md | 7 + docusaurus-docs/static/.nojekyll | 0 .../static/img/docusaurus-social-card.jpg | Bin 0 -> 55746 bytes docusaurus-docs/static/img/docusaurus.png | Bin 0 -> 5142 bytes docusaurus-docs/static/img/favicon.ico | Bin 0 -> 3626 bytes docusaurus-docs/static/img/logo.svg | 1 + .../static/img/undraw_docusaurus_mountain.svg | 171 + .../static/img/undraw_docusaurus_react.svg | 170 + .../static/img/undraw_docusaurus_tree.svg | 40 + docusaurus-docs/tsconfig.json | 8 + 35 files changed, 19247 insertions(+) create mode 100644 docusaurus-docs/.gitignore create mode 100644 docusaurus-docs/README.md create mode 100644 docusaurus-docs/blog/2019-05-28-first-blog-post.md create mode 100644 docusaurus-docs/blog/2019-05-29-long-blog-post.md create mode 100644 docusaurus-docs/blog/2021-08-01-mdx-blog-post.mdx create mode 100644 docusaurus-docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg create mode 100644 docusaurus-docs/blog/2021-08-26-welcome/index.md create mode 100644 docusaurus-docs/blog/authors.yml create mode 100644 docusaurus-docs/blog/tags.yml create mode 100644 docusaurus-docs/docs-graphql/index.md create mode 100644 docusaurus-docs/docs-learn/index.md create mode 100644 docusaurus-docs/docs-ratel/index.md create mode 100644 docusaurus-docs/docs/overview.md create mode 100644 docusaurus-docs/docusaurus.config.ts create mode 100644 docusaurus-docs/package-lock.json create mode 100644 docusaurus-docs/package.json create mode 100644 docusaurus-docs/sidebars-graphql.ts create mode 100644 docusaurus-docs/sidebars-learn.ts create mode 100644 docusaurus-docs/sidebars-ratel.ts create mode 100644 docusaurus-docs/sidebars.ts create mode 100644 docusaurus-docs/src/components/HomepageFeatures/index.tsx create mode 100644 docusaurus-docs/src/components/HomepageFeatures/styles.module.css create mode 100644 docusaurus-docs/src/css/custom.css create mode 100644 docusaurus-docs/src/pages/index.module.css create mode 100644 docusaurus-docs/src/pages/index.tsx create mode 100644 docusaurus-docs/src/pages/markdown-page.md create mode 100644 docusaurus-docs/static/.nojekyll create mode 100644 docusaurus-docs/static/img/docusaurus-social-card.jpg create mode 100644 docusaurus-docs/static/img/docusaurus.png create mode 100644 docusaurus-docs/static/img/favicon.ico create mode 100644 docusaurus-docs/static/img/logo.svg create mode 100644 docusaurus-docs/static/img/undraw_docusaurus_mountain.svg create mode 100644 docusaurus-docs/static/img/undraw_docusaurus_react.svg create mode 100644 docusaurus-docs/static/img/undraw_docusaurus_tree.svg create mode 100644 docusaurus-docs/tsconfig.json diff --git a/docusaurus-docs/.gitignore b/docusaurus-docs/.gitignore new file mode 100644 index 00000000..b2d6de30 --- /dev/null +++ b/docusaurus-docs/.gitignore @@ -0,0 +1,20 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/docusaurus-docs/README.md b/docusaurus-docs/README.md new file mode 100644 index 00000000..84d83ed8 --- /dev/null +++ b/docusaurus-docs/README.md @@ -0,0 +1,55 @@ +# Dgraph Documentation - Docusaurus + +This directory contains the Docusaurus-based documentation site. The original Hugo content remains in the `content/` directory at the root of the repository and is not modified. + +## Structure + +The documentation is organized into 4 main tabs matching the Hugo structure: + +- `docs/` - Dgraph DB (main documentation, route: `/dgraph-overview`) +- `docs-graphql/` - GraphQL API documentation (route: `/graphql`) +- `docs-ratel/` - Ratel UI documentation (route: `/ratel`) +- `docs-learn/` - Tutorials documentation (route: `/learn`) + +Each section has its own sidebar configuration in `sidebars-*.ts` files: +- `sidebars.ts` - Dgraph DB sidebar +- `sidebars-graphql.ts` - GraphQL sidebar +- `sidebars-ratel.ts` - Ratel UI sidebar +- `sidebars-learn.ts` - Tutorials sidebar + +## Getting Started + +1. Install dependencies: + ```bash + npm install + ``` + +2. Start the development server: + ```bash + npm start + ``` + +3. Build for production: + ```bash + npm run build + ``` + +4. Serve the built site: + ```bash + npm run serve + ``` + +## Configuration + +The main configuration is in `docusaurus.config.ts`. Each documentation section is configured as a separate docs plugin instance with its own: +- `path` - Directory containing the markdown files +- `routeBasePath` - URL path for the section +- `sidebarPath` - Sidebar configuration file + +## Migration Status + +Currently, only the overview/index pages have been migrated from Hugo. More content will be migrated gradually. + +## Hugo Content + +The original Hugo content remains untouched in `../content/` and can still be built with Hugo using the original build process. diff --git a/docusaurus-docs/blog/2019-05-28-first-blog-post.md b/docusaurus-docs/blog/2019-05-28-first-blog-post.md new file mode 100644 index 00000000..d3032efb --- /dev/null +++ b/docusaurus-docs/blog/2019-05-28-first-blog-post.md @@ -0,0 +1,12 @@ +--- +slug: first-blog-post +title: First Blog Post +authors: [slorber, yangshun] +tags: [hola, docusaurus] +--- + +Lorem ipsum dolor sit amet... + + + +...consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet diff --git a/docusaurus-docs/blog/2019-05-29-long-blog-post.md b/docusaurus-docs/blog/2019-05-29-long-blog-post.md new file mode 100644 index 00000000..eb4435de --- /dev/null +++ b/docusaurus-docs/blog/2019-05-29-long-blog-post.md @@ -0,0 +1,44 @@ +--- +slug: long-blog-post +title: Long Blog Post +authors: yangshun +tags: [hello, docusaurus] +--- + +This is the summary of a very long blog post, + +Use a `` comment to limit blog post size in the list view. + + + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet diff --git a/docusaurus-docs/blog/2021-08-01-mdx-blog-post.mdx b/docusaurus-docs/blog/2021-08-01-mdx-blog-post.mdx new file mode 100644 index 00000000..0c4b4a48 --- /dev/null +++ b/docusaurus-docs/blog/2021-08-01-mdx-blog-post.mdx @@ -0,0 +1,24 @@ +--- +slug: mdx-blog-post +title: MDX Blog Post +authors: [slorber] +tags: [docusaurus] +--- + +Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/). + +:::tip + +Use the power of React to create interactive blog posts. + +::: + +{/* truncate */} + +For example, use JSX to create an interactive button: + +```js + +``` + + diff --git a/docusaurus-docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg b/docusaurus-docs/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..11bda0928456b12f8e53d0ba5709212a4058d449 GIT binary patch literal 96122 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 literal 0 HcmV?d00001 diff --git a/docusaurus-docs/blog/2021-08-26-welcome/index.md b/docusaurus-docs/blog/2021-08-26-welcome/index.md new file mode 100644 index 00000000..349ea075 --- /dev/null +++ b/docusaurus-docs/blog/2021-08-26-welcome/index.md @@ -0,0 +1,29 @@ +--- +slug: welcome +title: Welcome +authors: [slorber, yangshun] +tags: [facebook, hello, docusaurus] +--- + +[Docusaurus blogging features](https://docusaurus.io/docs/blog) are powered by the [blog plugin](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog). + +Here are a few tips you might find useful. + + + +Simply add Markdown files (or folders) to the `blog` directory. + +Regular blog authors can be added to `authors.yml`. + +The blog post date can be extracted from filenames, such as: + +- `2019-05-30-welcome.md` +- `2019-05-30-welcome/index.md` + +A blog post folder can be convenient to co-locate blog post images: + +![Docusaurus Plushie](./docusaurus-plushie-banner.jpeg) + +The blog supports tags as well! + +**And if you don't want a blog**: just delete this directory, and use `blog: false` in your Docusaurus config. diff --git a/docusaurus-docs/blog/authors.yml b/docusaurus-docs/blog/authors.yml new file mode 100644 index 00000000..0fd39873 --- /dev/null +++ b/docusaurus-docs/blog/authors.yml @@ -0,0 +1,25 @@ +yangshun: + name: Yangshun Tay + title: Ex-Meta Staff Engineer, Co-founder GreatFrontEnd + url: https://linkedin.com/in/yangshun + image_url: https://github.com/yangshun.png + page: true + socials: + x: yangshunz + linkedin: yangshun + github: yangshun + newsletter: https://www.greatfrontend.com + +slorber: + name: Sébastien Lorber + title: Docusaurus maintainer + url: https://sebastienlorber.com + image_url: https://github.com/slorber.png + page: + # customize the url of the author page at /blog/authors/ + permalink: '/all-sebastien-lorber-articles' + socials: + x: sebastienlorber + linkedin: sebastienlorber + github: slorber + newsletter: https://thisweekinreact.com diff --git a/docusaurus-docs/blog/tags.yml b/docusaurus-docs/blog/tags.yml new file mode 100644 index 00000000..bfaa778f --- /dev/null +++ b/docusaurus-docs/blog/tags.yml @@ -0,0 +1,19 @@ +facebook: + label: Facebook + permalink: /facebook + description: Facebook tag description + +hello: + label: Hello + permalink: /hello + description: Hello tag description + +docusaurus: + label: Docusaurus + permalink: /docusaurus + description: Docusaurus tag description + +hola: + label: Hola + permalink: /hola + description: Hola tag description diff --git a/docusaurus-docs/docs-graphql/index.md b/docusaurus-docs/docs-graphql/index.md new file mode 100644 index 00000000..81ab56e3 --- /dev/null +++ b/docusaurus-docs/docs-graphql/index.md @@ -0,0 +1,17 @@ +--- +title: GraphQL API +description: Generate a GraphQL API and a graph backend from a single GraphQL schema. +--- + +Dgraph lets you generate a GraphQL API and a graph backend from a single GraphQL schema, no resolvers or custom queries are needed. Dgraph automatically generates the GraphQL operations for queries and mutations + +GraphQL developers can get started in minutes, and need not concern themselves with the powerful graph database running in the background. + +Dgraph extends the [GraphQL specifications](https://spec.graphql.org/) with directives and allows you to customize the behavior of GraphQL operations using custom resolvers or to write you own resolver logic with Lambda resolvers. + +Dgraph also supports +- GraphQL subscriptions with the `@withSubscription` directive: a client application can execute a subscription query and receive real-time updates when the subscription query result is updated. +- Apollo federation: you can create a gateway GraphQL service that includes the Dgraph GraphQL API and other GraphQL services. + +Refer to the following pages for more details: + diff --git a/docusaurus-docs/docs-learn/index.md b/docusaurus-docs/docs-learn/index.md new file mode 100644 index 00000000..e0f4efcb --- /dev/null +++ b/docusaurus-docs/docs-learn/index.md @@ -0,0 +1,7 @@ +--- +title: Dgraph Tutorials +description: From learning the basics of graph databases to advanced functions and capabilities, Dgraph docs have the information you need. +--- + +Welcome to Dgraph Tutorials! Here you'll find comprehensive guides and tutorials to help you learn Dgraph. + diff --git a/docusaurus-docs/docs-ratel/index.md b/docusaurus-docs/docs-ratel/index.md new file mode 100644 index 00000000..70dfe1ae --- /dev/null +++ b/docusaurus-docs/docs-ratel/index.md @@ -0,0 +1,17 @@ +--- +title: Ratel UI +description: Ratel is a web-based tool for data visualization and cluster management designed to work with Dgraph and DQL. +--- + +Ratel is a web-based tool for data visualization and cluster management designed to work with Dgraph and DQL. You can use it for: + +* **Connect to backend** - Manage cluster settings and connections +* **Run DQL queries** - Execute queries and mutations with result visualization +* **Manage schema** - Update or replace DQL schemas and drop data +* **Monitor cluster** - View cluster nodes and manage node operations +* **Backup operations** - Create and restore database backups + +## Getting Started + +Clone and build Ratel using the [instructions from the Ratel repository on GitHub](https://github.com/dgraph-io/ratel/blob/master/INSTRUCTIONS.md). + diff --git a/docusaurus-docs/docs/overview.md b/docusaurus-docs/docs/overview.md new file mode 100644 index 00000000..4dc4fa16 --- /dev/null +++ b/docusaurus-docs/docs/overview.md @@ -0,0 +1,119 @@ +--- +title: Overview +description: Introduction to Dgraph Database. Dgraph is a horizontally scalable and distributed graph database that supports GraphQL natively. You can run Dgraph on-premise, in your cloud infrastructure, or as a service fully-managed by Dgraph. +--- + +Dgraph is a distributed graph database designed for modern applications that need to work with highly connected data. It provides a scalable foundation for storing and querying complex relationships between entities. + +## Understanding the Graph Model + +At its core, Dgraph stores data as a graph composed of **nodes** and **relationships**. Nodes represent entities in your data (like users, products, or locations), while relationships connect these nodes to show how they relate to each other (like "follows", "purchased", or "located_in"). + +Each node is identified by a unique identifier (UID) and can have multiple **attributes** that describe its properties. For example, a person node might have attributes like name, age, and email. Attributes can store various data types including strings, integers, floats, dates, and geographic coordinates. + +## Data Formats + +Dgraph is flexible in how you provide data to it. You can save data in two formats: + +**RDF (Resource Description Format)** uses a triple-based structure with subject-predicate-object statements: +``` +<0x1> "Alice" . +<0x1> "30" . +<0x1> <0x2> . +``` + +**JSON** provides a more familiar structure for developers: +```json +{ + "uid": "0x1", + "name": "Alice", + "age": 30, + "friend": { + "uid": "0x2" + } +} +``` + +Both formats are stored internally as graph structures, allowing you to choose the format that best fits your workflow. + +## Schema and Types + +While Dgraph can operate in a schema-less manner (you can add any predicate to any node at any time), defining a schema provides important benefits. The schema tells Dgraph about your predicates—their data types and which indexes to use. +Indexes are required to use certain query functions. + +## Distributed Architecture + +Dgraph is built from the ground up as a distributed system. Data is automatically sharded across multiple nodes in a cluster, allowing you to scale horizontally as your graph grows. The distributed architecture enables Dgraph to handle graphs with billions of nodes and triples while maintaining low-latency query performance. + +Each Dgraph cluster consists of multiple server groups (shards) that work together to store and query your data. Queries are automatically distributed across the relevant shards and results are aggregated, making the distributed nature transparent to your application. This architecture provides both horizontal scalability and high availability. + +For detailed information about Dgraph's distributed architecture, clustering, and replication, see the [Architecture documentation](/installation/dgraph-architecture). + +## Enterprise-Grade Features + +Dgraph includes production-ready features for running mission-critical applications: + +**High Availability**: Configure multiple replicas within each server group to ensure your database remains available even when individual nodes fail. Automatic failover maintains service continuity without manual intervention. + +**Backup and Restore**: Create full and incremental backups of your graph data. Backups can be stored locally or in cloud storage, and point-in-time recovery allows you to restore your database to any previous state. + +**Monitoring and Observability**: Built-in metrics and integration with monitoring tools like Prometheus and Grafana provide visibility into cluster health, query performance, and resource utilization. + +**Access Control**: Fine-grained access control lists (ACLs) allow you to manage user permissions at the predicate level, ensuring data security in multi-tenant environments. + +**Encryption**: Support for encryption at rest and in transit protects your data throughout its lifecycle. + +These features make Dgraph suitable for production deployments requiring reliability, security, and operational excellence. + +## Querying Dgraph Query Language (DQL) + +Dgraph uses **DQL**, a query language inspired by GraphQL but extended with graph-specific capabilities. Queries in Dgraph allow you to traverse the graph, following relationships from node to node to retrieve connected data in a single request. + +A typical query starts at one or more nodes and traverses relationships to gather related information: +```graphql +{ + person(func: eq(name, "Alice")) { + name + age + friend { + name + friend { + name + } + } + } +} +``` + +This traverses from Alice to her friends, and then to her friends' friends, returning the nested structure in one query. + +## Graph Traversals and Filtering + +Dgraph excels at traversing complex relationships. You can filter at any level of traversal, aggregate data, sort results, and paginate through large result sets. The query language supports recursive queries for exploring paths of variable length, filtering by regular expressions, geographic proximity, and full-text search. + +Variables and value aggregation allow you to build sophisticated queries that analyze patterns across your graph, such as finding the most connected nodes or calculating metrics across relationships. + +## Mutations + +Data modifications in Dgraph are called **mutations**. You can add new nodes, update existing attributes, create or remove relationships, and delete nodes. Mutations can be submitted in either RDF or JSON format, and multiple operations can be batched together in a single transaction for consistency. + +## Transactions and Consistency + +Dgraph provides ACID transactions, ensuring that your data remains consistent even under concurrent access. Transactions can span multiple queries and mutations, and Dgraph handles conflicts automatically to maintain data integrity across your distributed cluster. + +## Getting Started + +Working with Dgraph typically involves: +1. Defining your schema (optional but recommended) +2. Loading your data through mutations +3. Querying the graph to retrieve and analyze connected information +4. Iterating on your schema and queries as your application evolves + +The graph model naturally represents connected data, making it straightforward to model domains like social networks, recommendation systems, knowledge graphs, access control systems, and any application where relationships between entities matter as much as the entities themselves. + + +## What's Next + +- Get familiar with some terms in our Glossary +- Go through some tutorials + diff --git a/docusaurus-docs/docusaurus.config.ts b/docusaurus-docs/docusaurus.config.ts new file mode 100644 index 00000000..49ef0021 --- /dev/null +++ b/docusaurus-docs/docusaurus.config.ts @@ -0,0 +1,197 @@ +import {themes as prismThemes} from 'prism-react-renderer'; +import type {Config} from '@docusaurus/types'; +import type * as Preset from '@docusaurus/preset-classic'; + +// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) + +const config: Config = { + title: 'Dgraph Documentation', + tagline: 'The only open, complete graph database used at terabyte-scale to power real-time use cases', + favicon: 'img/favicon.ico', + + // Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future + future: { + v4: true, // Improve compatibility with the upcoming Docusaurus v4 + }, + + // Set the production url of your site here + url: 'https://dgraph.io', + // Set the // pathname under which your site is served + // For GitHub pages deployment, it is often '//' + baseUrl: '/', + + // GitHub pages deployment config. + // If you aren't using GitHub pages, you don't need these. + organizationName: 'dgraph-io', // Usually your GitHub org/user name. + projectName: 'dgraph-docs', // Usually your repo name. + + onBrokenLinks: 'throw', + + // Even if you don't use internationalization, you can use this field to set + // useful metadata like html lang. For example, if your site is Chinese, you + // may want to replace "en" with "zh-Hans". + i18n: { + defaultLocale: 'en', + locales: ['en'], + }, + + plugins: [ + [ + '@docusaurus/plugin-content-docs', + { + id: 'docs', + path: 'docs', + routeBasePath: 'dgraph-overview', + sidebarPath: './sidebars.ts', + editUrl: 'https://github.com/dgraph-io/dgraph-docs/tree/main/', + }, + ], + [ + '@docusaurus/plugin-content-docs', + { + id: 'graphql', + path: 'docs-graphql', + routeBasePath: 'graphql', + sidebarPath: './sidebars-graphql.ts', + editUrl: 'https://github.com/dgraph-io/dgraph-docs/tree/main/', + }, + ], + [ + '@docusaurus/plugin-content-docs', + { + id: 'ratel', + path: 'docs-ratel', + routeBasePath: 'ratel', + sidebarPath: './sidebars-ratel.ts', + editUrl: 'https://github.com/dgraph-io/dgraph-docs/tree/main/', + }, + ], + [ + '@docusaurus/plugin-content-docs', + { + id: 'learn', + path: 'docs-learn', + routeBasePath: 'learn', + sidebarPath: './sidebars-learn.ts', + editUrl: 'https://github.com/dgraph-io/dgraph-docs/tree/main/', + }, + ], + ], + + presets: [ + [ + 'classic', + { + docs: false, // Disable default docs since we're using plugins + blog: false, // Disable blog for now + theme: { + customCss: './src/css/custom.css', + }, + } satisfies Preset.Options, + ], + ], + + themeConfig: { + // Replace with your project's social card + image: 'img/docusaurus-social-card.jpg', + colorMode: { + respectPrefersColorScheme: true, + }, + navbar: { + title: 'Dgraph', + logo: { + alt: 'Dgraph Logo', + src: 'img/logo.svg', + }, + items: [ + { + type: 'docSidebar', + sidebarId: 'docsSidebar', + position: 'left', + label: 'Dgraph DB', + docId: 'overview', + docsPluginId: 'docs', + }, + { + type: 'docSidebar', + sidebarId: 'graphqlSidebar', + position: 'left', + label: 'GraphQL', + docId: 'index', + docsPluginId: 'graphql', + }, + { + type: 'docSidebar', + sidebarId: 'ratelSidebar', + position: 'left', + label: 'Ratel UI', + docId: 'index', + docsPluginId: 'ratel', + }, + { + type: 'docSidebar', + sidebarId: 'learnSidebar', + position: 'left', + label: 'Tutorials', + docId: 'index', + docsPluginId: 'learn', + }, + { + href: 'https://github.com/dgraph-io/dgraph', + label: 'GitHub', + position: 'right', + }, + ], + }, + footer: { + style: 'dark', + links: [ + { + title: 'Documentation', + items: [ + { + label: 'Overview', + to: '/dgraph-overview/overview', + }, + { + label: 'Ratel UI', + to: '/ratel/', + }, + { + label: 'Tutorials', + to: '/learn/', + }, + { + label: 'GraphQL', + to: '/graphql/', + }, + { + label: 'DQL', + to: '/dql/', + }, + ], + }, + { + title: 'Community', + items: [ + { + label: 'Discourse', + href: 'https://discuss.dgraph.io/', + }, + { + label: 'GitHub', + href: 'https://github.com/dgraph-io/dgraph', + }, + ], + }, + ], + copyright: `Copyright © ${new Date().getFullYear()} Dgraph Labs, Inc. Built with Docusaurus.`, + }, + prism: { + theme: prismThemes.github, + darkTheme: prismThemes.dracula, + }, + } satisfies Preset.ThemeConfig, +}; + +export default config; diff --git a/docusaurus-docs/package-lock.json b/docusaurus-docs/package-lock.json new file mode 100644 index 00000000..41348fdb --- /dev/null +++ b/docusaurus-docs/package-lock.json @@ -0,0 +1,18000 @@ +{ + "name": "docusaurus-docs", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "docusaurus-docs", + "version": "0.0.0", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/preset-classic": "3.9.2", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "prism-react-renderer": "^2.3.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/tsconfig": "3.9.2", + "@docusaurus/types": "3.9.2", + "typescript": "~5.6.2" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@ai-sdk/gateway": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@ai-sdk/gateway/-/gateway-2.0.7.tgz", + "integrity": "sha512-/AI5AKi4vOK9SEb8Z1dfXkhsJ5NAfWsoJQc96B/mzn2KIrjw5occOjIwD06scuhV9xWlghCoXJT1sQD9QH/tyg==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "2.0.0", + "@ai-sdk/provider-utils": "3.0.16", + "@vercel/oidc": "3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, + "node_modules/@ai-sdk/provider": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-2.0.0.tgz", + "integrity": "sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==", + "license": "Apache-2.0", + "dependencies": { + "json-schema": "^0.4.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ai-sdk/provider-utils": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-3.0.16.tgz", + "integrity": "sha512-lsWQY9aDXHitw7C1QRYIbVGmgwyT98TF3MfM8alNIXKpdJdi+W782Rzd9f1RyOfgRmZ08gJ2EYNDhWNK7RqpEA==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "2.0.0", + "@standard-schema/spec": "^1.0.0", + "eventsource-parser": "^3.0.6" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, + "node_modules/@ai-sdk/react": { + "version": "2.0.88", + "resolved": "https://registry.npmjs.org/@ai-sdk/react/-/react-2.0.88.tgz", + "integrity": "sha512-WdJfH2u5hJvpjCVYqEamt+k69OHonFqLDXz9qNcS07sjUewEHjjApMVu6r4DabP3i2fx+ycLzCNdJ3B91T99Mw==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider-utils": "3.0.16", + "ai": "5.0.88", + "swr": "^2.2.5", + "throttleit": "2.1.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "zod": "^3.25.76 || ^4.1.8" + }, + "peerDependenciesMeta": { + "zod": { + "optional": true + } + } + }, + "node_modules/@algolia/abtesting": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.8.0.tgz", + "integrity": "sha512-Hb4BkGNnvgCj3F9XzqjiFTpA5IGkjOXwGAOV13qtc27l2qNF8X9rzSp1H5hu8XewlC0DzYtQtZZIOYzRZDyuXg==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.42.0", + "@algolia/requester-browser-xhr": "5.42.0", + "@algolia/requester-fetch": "5.42.0", + "@algolia/requester-node-http": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.19.2.tgz", + "integrity": "sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.19.2", + "@algolia/autocomplete-shared": "1.19.2" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.2.tgz", + "integrity": "sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.19.2" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz", + "integrity": "sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==", + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/client-abtesting": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.42.0.tgz", + "integrity": "sha512-JLyyG7bb7XOda+w/sp8ch7rEVy6LnWs3qtxr6VJJ2XIINqGsY6U+0L3aJ6QFliBRNUeEAr2QBDxSm8u9Sal5uA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.42.0", + "@algolia/requester-browser-xhr": "5.42.0", + "@algolia/requester-fetch": "5.42.0", + "@algolia/requester-node-http": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.42.0.tgz", + "integrity": "sha512-SkCrvtZpdSWjNq9NGu/TtOg4TbzRuUToXlQqV6lLePa2s/WQlEyFw7QYjrz4itprWG9ASuH+StDlq7n49F2sBA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.42.0", + "@algolia/requester-browser-xhr": "5.42.0", + "@algolia/requester-fetch": "5.42.0", + "@algolia/requester-node-http": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-common": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.42.0.tgz", + "integrity": "sha512-6iiFbm2tRn6B2OqFv9XDTcw5LdWPudiJWIbRk+fsTX+hkPrPm4e1/SbU+lEYBciPoaTShLkDbRge4UePEyCPMQ==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.42.0.tgz", + "integrity": "sha512-iEokmw2k6FBa8g/TT7ClyEriaP/FUEmz3iczRoCklEHWSgoABMkaeYrxRXrA2yx76AN+gyZoC8FX0iCJ55dsOg==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.42.0", + "@algolia/requester-browser-xhr": "5.42.0", + "@algolia/requester-fetch": "5.42.0", + "@algolia/requester-node-http": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.42.0.tgz", + "integrity": "sha512-ivVniRqX2ARd+jGvRHTxpWeOtO9VT+rK+OmiuRgkSunoTyxk0vjeDO7QkU7+lzBOXiYgakNjkZrBtIpW9c+muw==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.42.0", + "@algolia/requester-browser-xhr": "5.42.0", + "@algolia/requester-fetch": "5.42.0", + "@algolia/requester-node-http": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.42.0.tgz", + "integrity": "sha512-9+BIw6rerUfA+eLMIS2lF4mgoeBGTCIHiqb35PLn3699Rm3CaJXz03hChdwAWcA6SwGw0haYXYJa7LF0xI6EpA==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.42.0", + "@algolia/requester-browser-xhr": "5.42.0", + "@algolia/requester-fetch": "5.42.0", + "@algolia/requester-node-http": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.42.0.tgz", + "integrity": "sha512-NZR7yyHj2WzK6D5X8gn+/KOxPdzYEXOqVdSaK/biU8QfYUpUuEA0sCWg/XlO05tPVEcJelF/oLrrNY3UjRbOww==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.42.0", + "@algolia/requester-browser-xhr": "5.42.0", + "@algolia/requester-fetch": "5.42.0", + "@algolia/requester-node-http": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/events": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==", + "license": "MIT" + }, + "node_modules/@algolia/ingestion": { + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.42.0.tgz", + "integrity": "sha512-MBkjRymf4BT6VOvMpJlg6kq8K+PkH9q+N+K4YMNdzTXlL40YwOa1wIWQ5LxP/Jhlz64kW5g9/oaMWY06Sy9dcw==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.42.0", + "@algolia/requester-browser-xhr": "5.42.0", + "@algolia/requester-fetch": "5.42.0", + "@algolia/requester-node-http": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/monitoring": { + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.42.0.tgz", + "integrity": "sha512-kmLs7YfjT4cpr4FnhhRmnoSX4psh9KYZ9NAiWt/YcUV33m0B/Os5L4QId30zVXkOqAPAEpV5VbDPWep+/aoJdQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.42.0", + "@algolia/requester-browser-xhr": "5.42.0", + "@algolia/requester-fetch": "5.42.0", + "@algolia/requester-node-http": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/recommend": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.42.0.tgz", + "integrity": "sha512-U5yZ8+Jj+A4ZC0IMfElpPcddQ9NCoawD1dKyWmjHP49nzN2Z4284IFVMAJWR6fq/0ddGf4OMjjYO9cnF8L+5tw==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.42.0", + "@algolia/requester-browser-xhr": "5.42.0", + "@algolia/requester-fetch": "5.42.0", + "@algolia/requester-node-http": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.42.0.tgz", + "integrity": "sha512-EbuxgteaYBlKgc2Fs3JzoPIKAIaevAIwmv1F+fakaEXeibG4pkmVNsyTUjpOZIgJ1kXeqNvDrcjRb6g3vYBJ9A==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-fetch": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.42.0.tgz", + "integrity": "sha512-4vnFvY5Q8QZL9eDNkywFLsk/eQCRBXCBpE8HWs8iUsFNHYoamiOxAeYMin0W/nszQj6abc+jNxMChHmejO+ftQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.42.0.tgz", + "integrity": "sha512-gkLNpU+b1pCIwk1hKTJz2NWQPT8gsfGhQasnZ5QVv4jd79fKRL/1ikd86P0AzuIQs9tbbhlMwxsSTyJmlq502w==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "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/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", + "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", + "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", + "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", + "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", + "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", + "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.5.tgz", + "integrity": "sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz", + "integrity": "sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", + "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.5", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.28.3", + "@babel/plugin-transform-classes": "^7.28.4", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.28.5", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.28.5", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.4", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.28.5", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.4", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", + "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.28.0", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.28.4.tgz", + "integrity": "sha512-h7iEYiW4HebClDEhtvFObtPmIvrd1SSfpI9EhOeKk4CtIK/ngBWFpuhCzhdmRKtg71ylcue+9I6dv54XYO1epQ==", + "license": "MIT", + "dependencies": { + "core-js-pure": "^3.43.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@csstools/cascade-layer-name-parser": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz", + "integrity": "sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", + "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/postcss-alpha-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz", + "integrity": "sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz", + "integrity": "sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.12.tgz", + "integrity": "sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-function-display-p3-linear": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.1.tgz", + "integrity": "sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-function": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.12.tgz", + "integrity": "sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.2.tgz", + "integrity": "sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-content-alt-text": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.8.tgz", + "integrity": "sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-contrast-color-function": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-2.0.12.tgz", + "integrity": "sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-exponential-functions": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz", + "integrity": "sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", + "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gamut-mapping": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.11.tgz", + "integrity": "sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gradients-interpolation-method": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.12.tgz", + "integrity": "sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.12.tgz", + "integrity": "sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.4.tgz", + "integrity": "sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-initial": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz", + "integrity": "sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz", + "integrity": "sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-light-dark-function": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.11.tgz", + "integrity": "sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-float-and-clear": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz", + "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overflow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz", + "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overscroll-behavior": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz", + "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-resize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz", + "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-viewport-units": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz", + "integrity": "sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-minmax": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz", + "integrity": "sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz", + "integrity": "sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz", + "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", + "integrity": "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.12.tgz", + "integrity": "sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.1.tgz", + "integrity": "sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-random-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz", + "integrity": "sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-relative-color-syntax": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.12.tgz", + "integrity": "sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz", + "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-sign-functions": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz", + "integrity": "sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz", + "integrity": "sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.3.tgz", + "integrity": "sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz", + "integrity": "sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz", + "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/utilities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", + "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docsearch/core": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@docsearch/core/-/core-4.3.1.tgz", + "integrity": "sha512-ktVbkePE+2h9RwqCUMbWXOoebFyDOxHqImAqfs+lC8yOU+XwEW4jgvHGJK079deTeHtdhUNj0PXHSnhJINvHzQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": ">= 16.8.0 < 20.0.0", + "react": ">= 16.8.0 < 20.0.0", + "react-dom": ">= 16.8.0 < 20.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@docsearch/css": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.3.1.tgz", + "integrity": "sha512-Jnct7LKOi/+Oxbmq215YPYASkMdZqtyyDCkma8Cj4sCcbBuybL6fvyBaX7uJoM6kVF7aIpBA38RhHAyN5ByCHg==", + "license": "MIT" + }, + "node_modules/@docsearch/react": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-4.3.1.tgz", + "integrity": "sha512-vbKwgDuHi/YA0CiicXhJm4DSfOIOccl3FJlkdVmeZ5d61wNbPdAnAy71i7FF0JzO6noCQScidBBguOCaNfauEw==", + "license": "MIT", + "dependencies": { + "@ai-sdk/react": "^2.0.30", + "@algolia/autocomplete-core": "1.19.2", + "@docsearch/core": "4.3.1", + "@docsearch/css": "4.3.1", + "ai": "^5.0.30", + "algoliasearch": "^5.28.0", + "marked": "^16.3.0", + "zod": "^4.1.8" + }, + "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 + } + } + }, + "node_modules/@docusaurus/babel": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.9.2.tgz", + "integrity": "sha512-GEANdi/SgER+L7Japs25YiGil/AUDnFFHaCGPBbundxoWtCkA2lmy7/tFmgED4y1htAy6Oi4wkJEQdGssnw9MA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.25.9", + "@babel/preset-env": "^7.25.9", + "@babel/preset-react": "^7.25.9", + "@babel/preset-typescript": "^7.25.9", + "@babel/runtime": "^7.25.9", + "@babel/runtime-corejs3": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@docusaurus/logger": "3.9.2", + "@docusaurus/utils": "3.9.2", + "babel-plugin-dynamic-import-node": "^2.3.3", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/bundler": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.9.2.tgz", + "integrity": "sha512-ZOVi6GYgTcsZcUzjblpzk3wH1Fya2VNpd5jtHoCCFcJlMQ1EYXZetfAnRHLcyiFeBABaI1ltTYbOBtH/gahGVA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.9", + "@docusaurus/babel": "3.9.2", + "@docusaurus/cssnano-preset": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "babel-loader": "^9.2.1", + "clean-css": "^5.3.3", + "copy-webpack-plugin": "^11.0.0", + "css-loader": "^6.11.0", + "css-minimizer-webpack-plugin": "^5.0.1", + "cssnano": "^6.1.2", + "file-loader": "^6.2.0", + "html-minifier-terser": "^7.2.0", + "mini-css-extract-plugin": "^2.9.2", + "null-loader": "^4.0.1", + "postcss": "^8.5.4", + "postcss-loader": "^7.3.4", + "postcss-preset-env": "^10.2.1", + "terser-webpack-plugin": "^5.3.9", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "webpack": "^5.95.0", + "webpackbar": "^6.0.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@docusaurus/faster": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/faster": { + "optional": true + } + } + }, + "node_modules/@docusaurus/core": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.9.2.tgz", + "integrity": "sha512-HbjwKeC+pHUFBfLMNzuSjqFE/58+rLVKmOU3lxQrpsxLBOGosYco/Q0GduBb0/jEMRiyEqjNT/01rRdOMWq5pw==", + "license": "MIT", + "dependencies": { + "@docusaurus/babel": "3.9.2", + "@docusaurus/bundler": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cli-table3": "^0.6.3", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "core-js": "^3.31.1", + "detect-port": "^1.5.1", + "escape-html": "^1.0.3", + "eta": "^2.2.0", + "eval": "^0.1.8", + "execa": "5.1.1", + "fs-extra": "^11.1.1", + "html-tags": "^3.3.1", + "html-webpack-plugin": "^5.6.0", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "open": "^8.4.0", + "p-map": "^4.0.0", + "prompts": "^2.4.2", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", + "react-loadable-ssr-addon-v5-slorber": "^1.0.1", + "react-router": "^5.3.4", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.4", + "semver": "^7.5.4", + "serve-handler": "^6.1.6", + "tinypool": "^1.0.2", + "tslib": "^2.6.0", + "update-notifier": "^6.0.2", + "webpack": "^5.95.0", + "webpack-bundle-analyzer": "^4.10.2", + "webpack-dev-server": "^5.2.2", + "webpack-merge": "^6.0.1" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@mdx-js/react": "^3.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/cssnano-preset": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.9.2.tgz", + "integrity": "sha512-8gBKup94aGttRduABsj7bpPFTX7kbwu+xh3K9NMCF5K4bWBqTFYW+REKHF6iBVDHRJ4grZdIPbvkiHd/XNKRMQ==", + "license": "MIT", + "dependencies": { + "cssnano-preset-advanced": "^6.1.2", + "postcss": "^8.5.4", + "postcss-sort-media-queries": "^5.2.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/logger": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.9.2.tgz", + "integrity": "sha512-/SVCc57ByARzGSU60c50rMyQlBuMIJCjcsJlkphxY6B0GV4UH3tcA1994N8fFfbJ9kX3jIBe/xg3XP5qBtGDbA==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/mdx-loader": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.9.2.tgz", + "integrity": "sha512-wiYoGwF9gdd6rev62xDU8AAM8JuLI/hlwOtCzMmYcspEkzecKrP8J8X+KpYnTlACBUUtXNJpSoCwFWJhLRevzQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "@mdx-js/mdx": "^3.0.0", + "@slorber/remark-comment": "^1.0.0", + "escape-html": "^1.0.3", + "estree-util-value-to-estree": "^3.0.1", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "image-size": "^2.0.2", + "mdast-util-mdx": "^3.0.0", + "mdast-util-to-string": "^4.0.0", + "rehype-raw": "^7.0.0", + "remark-directive": "^3.0.0", + "remark-emoji": "^4.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "stringify-object": "^3.3.0", + "tslib": "^2.6.0", + "unified": "^11.0.3", + "unist-util-visit": "^5.0.0", + "url-loader": "^4.1.1", + "vfile": "^6.0.1", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/module-type-aliases": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.9.2.tgz", + "integrity": "sha512-8qVe2QA9hVLzvnxP46ysuofJUIc/yYQ82tvA/rBTrnpXtCjNSFLxEZfd5U8cYZuJIVlkPxamsIgwd5tGZXfvew==", + "license": "MIT", + "dependencies": { + "@docusaurus/types": "3.9.2", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/plugin-content-blog": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.9.2.tgz", + "integrity": "sha512-3I2HXy3L1QcjLJLGAoTvoBnpOwa6DPUa3Q0dMK19UTY9mhPkKQg/DYhAGTiBUKcTR0f08iw7kLPqOhIgdV3eVQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "cheerio": "1.0.0-rc.12", + "feed": "^4.2.2", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "schema-dts": "^1.1.2", + "srcset": "^4.0.0", + "tslib": "^2.6.0", + "unist-util-visit": "^5.0.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@docusaurus/plugin-content-docs": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz", + "integrity": "sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "@types/react-router-config": "^5.0.7", + "combine-promises": "^1.1.0", + "fs-extra": "^11.1.1", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "schema-dts": "^1.1.2", + "tslib": "^2.6.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-pages": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.9.2.tgz", + "integrity": "sha512-s4849w/p4noXUrGpPUF0BPqIAfdAe76BLaRGAGKZ1gTDNiGxGcpsLcwJ9OTi1/V8A+AzvsmI9pkjie2zjIQZKA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-css-cascade-layers": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.9.2.tgz", + "integrity": "sha512-w1s3+Ss+eOQbscGM4cfIFBlVg/QKxyYgj26k5AnakuHkKxH6004ZtuLe5awMBotIYF2bbGDoDhpgQ4r/kcj4rQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/plugin-debug": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.9.2.tgz", + "integrity": "sha512-j7a5hWuAFxyQAkilZwhsQ/b3T7FfHZ+0dub6j/GxKNFJp2h9qk/P1Bp7vrGASnvA9KNQBBL1ZXTe7jlh4VdPdA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "fs-extra": "^11.1.1", + "react-json-view-lite": "^2.3.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-analytics": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.9.2.tgz", + "integrity": "sha512-mAwwQJ1Us9jL/lVjXtErXto4p4/iaLlweC54yDUK1a97WfkC6Z2k5/769JsFgwOwOP+n5mUQGACXOEQ0XDuVUw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-gtag": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.9.2.tgz", + "integrity": "sha512-YJ4lDCphabBtw19ooSlc1MnxtYGpjFV9rEdzjLsUnBCeis2djUyCozZaFhCg6NGEwOn7HDDyMh0yzcdRpnuIvA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "@types/gtag.js": "^0.0.12", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-tag-manager": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.9.2.tgz", + "integrity": "sha512-LJtIrkZN/tuHD8NqDAW1Tnw0ekOwRTfobWPsdO15YxcicBo2ykKF0/D6n0vVBfd3srwr9Z6rzrIWYrMzBGrvNw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-sitemap": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.9.2.tgz", + "integrity": "sha512-WLh7ymgDXjG8oPoM/T4/zUP7KcSuFYRZAUTl8vR6VzYkfc18GBM4xLhcT+AKOwun6kBivYKUJf+vlqYJkm+RHw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "fs-extra": "^11.1.1", + "sitemap": "^7.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/plugin-svgr": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.9.2.tgz", + "integrity": "sha512-n+1DE+5b3Lnf27TgVU5jM1d4x5tUh2oW5LTsBxJX4PsAPV0JGcmI6p3yLYtEY0LRVEIJh+8RsdQmRE66wSV8mw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "@svgr/core": "8.1.0", + "@svgr/webpack": "^8.1.0", + "tslib": "^2.6.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.9.2.tgz", + "integrity": "sha512-IgyYO2Gvaigi21LuDIe+nvmN/dfGXAiMcV/murFqcpjnZc7jxFAxW+9LEjdPt61uZLxG4ByW/oUmX/DDK9t/8w==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/plugin-content-blog": "3.9.2", + "@docusaurus/plugin-content-docs": "3.9.2", + "@docusaurus/plugin-content-pages": "3.9.2", + "@docusaurus/plugin-css-cascade-layers": "3.9.2", + "@docusaurus/plugin-debug": "3.9.2", + "@docusaurus/plugin-google-analytics": "3.9.2", + "@docusaurus/plugin-google-gtag": "3.9.2", + "@docusaurus/plugin-google-tag-manager": "3.9.2", + "@docusaurus/plugin-sitemap": "3.9.2", + "@docusaurus/plugin-svgr": "3.9.2", + "@docusaurus/theme-classic": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/theme-search-algolia": "3.9.2", + "@docusaurus/types": "3.9.2" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-classic": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.9.2.tgz", + "integrity": "sha512-IGUsArG5hhekXd7RDb11v94ycpJpFdJPkLnt10fFQWOVxAtq5/D7hT6lzc2fhyQKaaCE62qVajOMKL7OiAFAIA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/plugin-content-blog": "3.9.2", + "@docusaurus/plugin-content-docs": "3.9.2", + "@docusaurus/plugin-content-pages": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/theme-translations": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "infima": "0.2.0-alpha.45", + "lodash": "^4.17.21", + "nprogress": "^0.2.0", + "postcss": "^8.5.4", + "prism-react-renderer": "^2.3.0", + "prismjs": "^1.29.0", + "react-router-dom": "^5.3.4", + "rtlcss": "^4.1.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-common": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.9.2.tgz", + "integrity": "sha512-6c4DAbR6n6nPbnZhY2V3tzpnKnGL+6aOsLvFL26VRqhlczli9eWG0VDUNoCQEPnGwDMhPS42UhSAnz5pThm5Ag==", + "license": "MIT", + "dependencies": { + "@docusaurus/mdx-loader": "3.9.2", + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "clsx": "^2.0.0", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^2.3.0", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@docusaurus/plugin-content-docs": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.9.2.tgz", + "integrity": "sha512-GBDSFNwjnh5/LdkxCKQHkgO2pIMX1447BxYUBG2wBiajS21uj64a+gH/qlbQjDLxmGrbrllBrtJkUHxIsiwRnw==", + "license": "MIT", + "dependencies": { + "@docsearch/react": "^3.9.0 || ^4.1.0", + "@docusaurus/core": "3.9.2", + "@docusaurus/logger": "3.9.2", + "@docusaurus/plugin-content-docs": "3.9.2", + "@docusaurus/theme-common": "3.9.2", + "@docusaurus/theme-translations": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-validation": "3.9.2", + "algoliasearch": "^5.37.0", + "algoliasearch-helper": "^3.26.0", + "clsx": "^2.0.0", + "eta": "^2.2.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/theme-translations": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.9.2.tgz", + "integrity": "sha512-vIryvpP18ON9T9rjgMRFLr2xJVDpw1rtagEGf8Ccce4CkTrvM/fRB8N2nyWYOW5u3DdjkwKw5fBa+3tbn9P4PA==", + "license": "MIT", + "dependencies": { + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/tsconfig": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.9.2.tgz", + "integrity": "sha512-j6/Fp4Rlpxsc632cnRnl5HpOWeb6ZKssDj6/XzzAzVGXXfm9Eptx3rxCC+fDzySn9fHTS+CWJjPineCR1bB5WQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@docusaurus/types": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.9.2.tgz", + "integrity": "sha512-Ux1JUNswg+EfUEmajJjyhIohKceitY/yzjRUpu04WXgvVz+fbhVC0p+R0JhvEu4ytw8zIAys2hrdpQPBHRIa8Q==", + "license": "MIT", + "dependencies": { + "@mdx-js/mdx": "^3.0.0", + "@types/history": "^4.7.11", + "@types/mdast": "^4.0.2", + "@types/react": "*", + "commander": "^5.1.0", + "joi": "^17.9.2", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", + "utility-types": "^3.10.0", + "webpack": "^5.95.0", + "webpack-merge": "^5.9.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/types/node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docusaurus/utils": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.9.2.tgz", + "integrity": "sha512-lBSBiRruFurFKXr5Hbsl2thmGweAPmddhF3jb99U4EMDA5L+e5Y1rAkOS07Nvrup7HUMBDrCV45meaxZnt28nQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.9.2", + "@docusaurus/types": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "escape-string-regexp": "^4.0.0", + "execa": "5.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^11.1.1", + "github-slugger": "^1.5.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "jiti": "^1.20.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "p-queue": "^6.6.2", + "prompts": "^2.4.2", + "resolve-pathname": "^3.0.0", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/utils-common": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.9.2.tgz", + "integrity": "sha512-I53UC1QctruA6SWLvbjbhCpAw7+X7PePoe5pYcwTOEXD/PxeP8LnECAhTHHwWCblyUX5bMi4QLRkxvyZ+IT8Aw==", + "license": "MIT", + "dependencies": { + "@docusaurus/types": "3.9.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/utils-validation": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.9.2.tgz", + "integrity": "sha512-l7yk3X5VnNmATbwijJkexdhulNsQaNDwoagiwujXoxFbWLcxHQqNQ+c/IAlzrfMMOfa/8xSBZ7KEKDesE/2J7A==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.9.2", + "@docusaurus/utils": "3.9.2", + "@docusaurus/utils-common": "3.9.2", + "fs-extra": "^11.2.0", + "joi": "^17.9.2", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "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==", + "license": "MIT", + "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/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", + "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", + "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "acorn": "^8.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/react": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", + "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", + "license": "MIT", + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@opentelemetry/api": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", + "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "license": "Apache-2.0", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "license": "MIT", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "license": "ISC" + }, + "node_modules/@pnpm/npm-conf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", + "license": "MIT", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "license": "MIT" + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "license": "BSD-3-Clause" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "license": "BSD-3-Clause" + }, + "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==", + "license": "MIT" + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@slorber/remark-comment": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", + "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.1.0", + "micromark-util-symbol": "^1.0.1" + } + }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "license": "MIT" + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.1" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "^1" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.7", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", + "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/gtag.js": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", + "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "license": "MIT" + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "license": "MIT" + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.10.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.0.tgz", + "integrity": "sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", + "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/prismjs": { + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", + "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz", + "integrity": "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==", + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.20", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", + "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-config": { + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz", + "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "^5.1.0" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "license": "MIT", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "license": "MIT" + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.34", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.34.tgz", + "integrity": "sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "ISC" + }, + "node_modules/@vercel/oidc": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@vercel/oidc/-/oidc-3.0.3.tgz", + "integrity": "sha512-yNEQvPcVrK9sIe637+I0jD6leluPxzwJKx/Haw6F4H77CdDsszUn5V3o96LPziXkSNE2B83+Z3mjqGKBK/R6Gg==", + "license": "Apache-2.0", + "engines": { + "node": ">= 20" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.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==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ai": { + "version": "5.0.88", + "resolved": "https://registry.npmjs.org/ai/-/ai-5.0.88.tgz", + "integrity": "sha512-72nSwQT6iMgfbblwDo59cmFTtsNzfyMVH9MigeIh5IHiqoDqxRAkv0IBb9XYj6RD52tAJw7Wj/n+LEhezvYqkw==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/gateway": "2.0.7", + "@ai-sdk/provider": "2.0.0", + "@ai-sdk/provider-utils": "3.0.16", + "@opentelemetry/api": "1.9.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/algoliasearch": { + "version": "5.42.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.42.0.tgz", + "integrity": "sha512-X5+PtWc9EJIPafT/cj8ZG+6IU3cjRRnlHGtqMHK/9gsiupQbAyYlH5y7qt/FtsAhfX5AICHffZy69ZAsVrxWkQ==", + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.8.0", + "@algolia/client-abtesting": "5.42.0", + "@algolia/client-analytics": "5.42.0", + "@algolia/client-common": "5.42.0", + "@algolia/client-insights": "5.42.0", + "@algolia/client-personalization": "5.42.0", + "@algolia/client-query-suggestions": "5.42.0", + "@algolia/client-search": "5.42.0", + "@algolia/ingestion": "1.42.0", + "@algolia/monitoring": "1.42.0", + "@algolia/recommend": "5.42.0", + "@algolia/requester-browser-xhr": "5.42.0", + "@algolia/requester-fetch": "5.42.0", + "@algolia/requester-node-http": "5.42.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/algoliasearch-helper": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.26.0.tgz", + "integrity": "sha512-Rv2x3GXleQ3ygwhkhJubhhYGsICmShLAiqtUuJTUkr9uOCOXyF2E71LVT4XDnVffbknv8XgScP4U0Oxtgm+hIw==", + "license": "MIT", + "dependencies": { + "@algolia/events": "^4.0.1" + }, + "peerDependencies": { + "algoliasearch": ">= 3.1 < 6" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/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==", + "license": "MIT" + }, + "node_modules/ansi-align/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==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/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==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "license": "ISC", + "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==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "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==", + "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" + } + ], + "license": "MIT", + "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-loader": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "license": "MIT", + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "license": "MIT", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.25", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.25.tgz", + "integrity": "sha512-2NovHVesVF5TXefsGX1yzx1xgr7+m9JQenvz6FQY3qd+YXkKkYiv+vTCc7OriP9mcDZpTC5mAOYN4ocd29+erA==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/boxen": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", + "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^6.2.0", + "chalk": "^4.1.2", + "cli-boxes": "^3.0.0", + "string-width": "^5.0.1", + "type-fest": "^2.5.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz", + "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.8.19", + "caniuse-lite": "^1.0.30001751", + "electron-to-chromium": "^1.5.238", + "node-releases": "^2.0.26", + "update-browserslist-db": "^1.1.4" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-lookup": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001753", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001753.tgz", + "integrity": "sha512-Bj5H35MD/ebaOV4iDLqPEtiliTN29qkGtEHCwawWn4cYm+bPJM2NsaP30vtZcnERClMzp52J4+aw2UNbK4o+zw==", + "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" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "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/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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "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/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "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" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/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==", + "license": "MIT" + }, + "node_modules/cli-table3/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==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/combine-promises": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz", + "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "license": "ISC" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compressible/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/configstore": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^6.0.1", + "graceful-fs": "^4.2.6", + "unique-string": "^3.0.0", + "write-file-atomic": "^3.0.3", + "xdg-basedir": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/yeoman/configstore?sponsor=1" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "license": "MIT", + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "license": "MIT", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.46.0.tgz", + "integrity": "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.46.0.tgz", + "integrity": "sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.26.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.46.0.tgz", + "integrity": "sha512-NMCW30bHNofuhwLhYPt66OLOKTMbOhgTTatKVbaQC3KRHpTCiRIBYvtshr+NBYSnBxwAFhjW/RfJ0XbIjS16rw==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "license": "MIT", + "dependencies": { + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/css-blank-pseudo": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", + "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.3.0.tgz", + "integrity": "sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ==", + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.3.tgz", + "integrity": "sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", + "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "cssnano": "^6.0.1", + "jest-worker": "^29.4.3", + "postcss": "^8.4.24", + "schema-utils": "^4.0.1", + "serialize-javascript": "^6.0.1" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", + "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssdb": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.4.2.tgz", + "integrity": "sha512-PzjkRkRUS+IHDJohtxkIczlxPPZqRo0nXplsYXOMBRPjcVRjj1W4DfvRgshUYTVuUigU7ptVYkFJQ7abUB0nyg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ], + "license": "MIT-0" + }, + "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==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-advanced": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", + "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", + "license": "MIT", + "dependencies": { + "autoprefixer": "^10.4.19", + "browserslist": "^4.23.0", + "cssnano-preset-default": "^6.1.2", + "postcss-discard-unused": "^6.0.5", + "postcss-merge-idents": "^6.0.3", + "postcss-reduce-idents": "^6.0.3", + "postcss-zindex": "^6.0.2" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-preset-default": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano-utils": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" + }, + "node_modules/detect-port": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", + "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", + "license": "MIT", + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dot-prop/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.245", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.245.tgz", + "integrity": "sha512-rdmGfW47ZhL/oWEJAY4qxRtdly2B98ooTJ0pdEI4jhVLZ6tNf8fPtov2wS1IRKwFJT92le3x4Knxiwzl7cPPpQ==", + "license": "ISC" + }, + "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==", + "license": "MIT" + }, + "node_modules/emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/emoticon": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz", + "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "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==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-value-to-estree": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.5.0.tgz", + "integrity": "sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eta": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", + "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "url": "https://github.com/eta-dev/eta?sponsor=1" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eval": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", + "dependencies": { + "@types/node": "*", + "require-like": ">= 0.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource-parser": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.6.tgz", + "integrity": "sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "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/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/express/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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-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==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", + "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==", + "license": "MIT", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/feed": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", + "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "license": "MIT", + "dependencies": { + "xml-js": "^1.6.11" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/file-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/file-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "license": "MIT", + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "license": "MIT", + "engines": { + "node": ">= 14.17" + } + }, + "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/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "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, + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/github-slugger": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "license": "ISC" + }, + "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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regex.js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", + "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "license": "MIT", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/got/node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "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==", + "license": "ISC" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", + "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/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/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==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-yarn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", + "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.4.tgz", + "integrity": "sha512-V/PZeWsqhfpE27nKeX9EO2sbR+D17A+tLf6qU+ht66jdUsN0QLKJN27Z+1+gHrVMKgndBahes0PU6rRihDgHTw==", + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/html-webpack-plugin/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-proxy-middleware/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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http2-wrapper": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", + "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.2.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "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==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "license": "MIT", + "engines": { + "node": ">=10.18" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.2.tgz", + "integrity": "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==", + "license": "MIT", + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infima": { + "version": "0.2.0-alpha.45", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz", + "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/inline-style-parser": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.6.tgz", + "integrity": "sha512-gtGXVaBdl5mAes3rPcMedEBm12ibjt1kDMFfheul1wUAOVEJW60voNdMVzVkfLN06O7ZaD/rxhfKgtlgtTbMjg==", + "license": "MIT" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "license": "MIT", + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-inside-container/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==", + "license": "MIT", + "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-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "license": "MIT", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-network-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz", + "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.1.0.tgz", + "integrity": "sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", + "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "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-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/joi": { + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "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==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/latest-version": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "license": "MIT", + "dependencies": { + "package-json": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/launch-editor": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.12.0.tgz", + "integrity": "sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==", + "license": "MIT", + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "license": "MIT", + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/marked": { + "version": "16.4.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-16.4.1.tgz", + "integrity": "sha512-ntROs7RaN3EvWfy3EZi14H4YxmT6A5YvywfhO+0pm+cH/dnSQRmdAmoFIc3B9aiwTehyk7pESH4ofyBY+V5hZg==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdast-util-directive": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", + "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.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-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "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==", + "license": "MIT", + "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-find-and-replace/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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT", + "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-from-markdown/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" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT", + "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-frontmatter/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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-autolink-literal/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-gfm-autolink-literal/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" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.50.0.tgz", + "integrity": "sha512-N0LUYQMUA1yS5tJKmMtU9yprPm6ZIg24yr/OVv/7t6q0kKDIho4cBbXRi1XKttUmNYDYgF/q45qrKE/UhGO0CA==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", + "tslib": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "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" + } + ], + "license": "MIT", + "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" + } + ], + "license": "MIT", + "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-core-commonmark/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark/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" + } + ], + "license": "MIT" + }, + "node_modules/micromark-extension-directive": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", + "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-directive/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/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" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT", + "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-frontmatter/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-frontmatter/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" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-autolink-literal/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal/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" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT", + "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-footnote/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-footnote/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" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT", + "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-strikethrough/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" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT", + "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-table/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-table/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-table/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" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-task-list-item/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-gfm-task-list-item/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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "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-expression/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-expression/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" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT", + "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-jsx/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx/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" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-extension-mdxjs-esm/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdxjs-esm/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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination/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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "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-label/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label/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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "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-mdx-expression/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/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" + } + ], + "license": "MIT" + }, + "node_modules/micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-space/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "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-title/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title/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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "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/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace/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" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character/node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked/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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character/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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference/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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "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-decode-string/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string/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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "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-events-to-acorn/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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-normalize-identifier/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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri/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" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT", + "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-subtokenize/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" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "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" + } + ], + "license": "MIT" + }, + "node_modules/micromark/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark/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" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark/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" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "license": "MIT", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.4.tgz", + "integrity": "sha512-ZWYT7ln73Hptxqxk2DxPU9MmapXRhxkJD6tkSR04dnQxm8BGu2hzgKLugK5yySD97u/8yy7Ma7E76k9ZdvtjkQ==", + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "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" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-emoji": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", + "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.0.tgz", + "integrity": "sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", + "license": "MIT" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/null-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", + "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/null-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/null-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/null-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/null-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", + "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", + "license": "MIT", + "dependencies": { + "got": "^12.1.0", + "registry-auth-token": "^5.0.1", + "registry-url": "^6.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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-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==", + "license": "ISC" + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "license": "(WTFPL OR MIT)" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "license": "MIT", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz", + "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-calc": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.12.tgz", + "integrity": "sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz", + "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz", + "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-colormin": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-convert-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-custom-media": { + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz", + "integrity": "sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-properties": { + "version": "14.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz", + "integrity": "sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz", + "integrity": "sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz", + "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-comments": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-empty": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-discard-unused": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", + "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.4.tgz", + "integrity": "sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz", + "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-focus-within": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz", + "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz", + "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz", + "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-lab-function": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.12.tgz", + "integrity": "sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", + "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.3.5", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.1.0.tgz", + "integrity": "sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-merge-idents": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", + "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^6.1.1" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-merge-rules": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "license": "MIT", + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-params": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nesting": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz", + "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-resolve-nested": "^3.1.0", + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz", + "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-string": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-url": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", + "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-ordered-values": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^4.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz", + "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz", + "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.4.0.tgz", + "integrity": "sha512-2kqpOthQ6JhxqQq1FSAAZGe9COQv75Aw8WbsOvQVNJ2nSevc9Yx/IKZGuZ7XJ+iOTtVon7LfO7ELRzg8AZ+sdw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-alpha-function": "^1.0.1", + "@csstools/postcss-cascade-layers": "^5.0.2", + "@csstools/postcss-color-function": "^4.0.12", + "@csstools/postcss-color-function-display-p3-linear": "^1.0.1", + "@csstools/postcss-color-mix-function": "^3.0.12", + "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.2", + "@csstools/postcss-content-alt-text": "^2.0.8", + "@csstools/postcss-contrast-color-function": "^2.0.12", + "@csstools/postcss-exponential-functions": "^2.0.9", + "@csstools/postcss-font-format-keywords": "^4.0.0", + "@csstools/postcss-gamut-mapping": "^2.0.11", + "@csstools/postcss-gradients-interpolation-method": "^5.0.12", + "@csstools/postcss-hwb-function": "^4.0.12", + "@csstools/postcss-ic-unit": "^4.0.4", + "@csstools/postcss-initial": "^2.0.1", + "@csstools/postcss-is-pseudo-class": "^5.0.3", + "@csstools/postcss-light-dark-function": "^2.0.11", + "@csstools/postcss-logical-float-and-clear": "^3.0.0", + "@csstools/postcss-logical-overflow": "^2.0.0", + "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", + "@csstools/postcss-logical-resize": "^3.0.0", + "@csstools/postcss-logical-viewport-units": "^3.0.4", + "@csstools/postcss-media-minmax": "^2.0.9", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.5", + "@csstools/postcss-nested-calc": "^4.0.0", + "@csstools/postcss-normalize-display-values": "^4.0.0", + "@csstools/postcss-oklab-function": "^4.0.12", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/postcss-random-function": "^2.0.1", + "@csstools/postcss-relative-color-syntax": "^3.0.12", + "@csstools/postcss-scope-pseudo-class": "^4.0.1", + "@csstools/postcss-sign-functions": "^1.1.4", + "@csstools/postcss-stepped-value-functions": "^4.0.9", + "@csstools/postcss-text-decoration-shorthand": "^4.0.3", + "@csstools/postcss-trigonometric-functions": "^4.0.9", + "@csstools/postcss-unset-value": "^4.0.0", + "autoprefixer": "^10.4.21", + "browserslist": "^4.26.0", + "css-blank-pseudo": "^7.0.1", + "css-has-pseudo": "^7.0.3", + "css-prefers-color-scheme": "^10.0.0", + "cssdb": "^8.4.2", + "postcss-attribute-case-insensitive": "^7.0.1", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^7.0.12", + "postcss-color-hex-alpha": "^10.0.0", + "postcss-color-rebeccapurple": "^10.0.0", + "postcss-custom-media": "^11.0.6", + "postcss-custom-properties": "^14.0.6", + "postcss-custom-selectors": "^8.0.5", + "postcss-dir-pseudo-class": "^9.0.1", + "postcss-double-position-gradients": "^6.0.4", + "postcss-focus-visible": "^10.0.1", + "postcss-focus-within": "^9.0.1", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^6.0.0", + "postcss-image-set-function": "^7.0.0", + "postcss-lab-function": "^7.0.12", + "postcss-logical": "^8.1.0", + "postcss-nesting": "^13.0.2", + "postcss-opacity-percentage": "^3.0.0", + "postcss-overflow-shorthand": "^6.0.0", + "postcss-page-break": "^3.0.4", + "postcss-place": "^10.0.0", + "postcss-pseudo-class-any-link": "^10.0.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^8.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz", + "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reduce-idents": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", + "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz", + "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-sort-media-queries": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", + "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", + "license": "MIT", + "dependencies": { + "sort-css-media-queries": "2.2.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.23" + } + }, + "node_modules/postcss-svgo": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^3.2.0" + }, + "engines": { + "node": "^14 || ^16 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/postcss-zindex": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", + "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", + "license": "MIT", + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/prism-react-renderer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", + "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", + "license": "MIT", + "dependencies": { + "@types/prismjs": "^1.26.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.0.0" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "license": "ISC" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pupa": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.3.0.tgz", + "integrity": "sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==", + "license": "MIT", + "dependencies": { + "escape-goat": "^4.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", + "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", + "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.0" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" + }, + "node_modules/react-helmet-async": { + "name": "@slorber/react-helmet-async", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-json-view-lite": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-2.5.0.tgz", + "integrity": "sha512-tk7o7QG9oYyELWHL8xiMQ8x4WzjCzbWNyig3uexmkLb54r8jO0yH3WCWx8UZS0c49eSA4QUmG5caiRJ8fAn58g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-loadable": { + "name": "@docusaurus/react-loadable", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", + "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-loadable-ssr-addon-v5-slorber": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", + "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.3" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "react-loadable": "*", + "webpack": ">=4.41.1 || 5.x" + } + }, + "node_modules/react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-config": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", + "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2" + }, + "peerDependencies": { + "react": ">=15", + "react-router": ">=5" + } + }, + "node_modules/react-router-dom": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "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==", + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", + "license": "MIT", + "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" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", + "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", + "license": "MIT", + "dependencies": { + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/registry-url": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "license": "MIT", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remark-directive": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.1.tgz", + "integrity": "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-directive": "^3.0.0", + "micromark-extension-directive": "^3.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-emoji": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", + "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.2", + "emoticon": "^4.0.1", + "mdast-util-find-and-replace": "^3.0.1", + "node-emoji": "^2.1.0", + "unified": "^11.0.4" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/remark-frontmatter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", + "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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-mdx": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", + "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", + "license": "MIT", + "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==", + "license": "MIT", + "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-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "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-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "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/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", + "engines": { + "node": "*" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "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-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "license": "MIT" + }, + "node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rtlcss": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", + "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0", + "postcss": "^8.4.21", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", + "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", + "license": "BlueOak-1.0.0" + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/schema-dts": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/schema-dts/-/schema-dts-1.1.5.tgz", + "integrity": "sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==", + "license": "Apache-2.0" + }, + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/search-insights": { + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", + "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-handler": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", + "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", + "license": "MIT", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "3.3.0", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/path-to-regexp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", + "license": "MIT" + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "license": "ISC" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "license": "ISC" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "ISC" + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/sitemap": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", + "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", + "license": "MIT", + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=5.6.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "license": "MIT" + }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "license": "MIT", + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sort-css-media-queries": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", + "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", + "license": "MIT", + "engines": { + "node": ">= 6.3.0" + } + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/srcset": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", + "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-js": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.19.tgz", + "integrity": "sha512-Ev+SgeqiNGT1ufsXyVC5RrJRXdrkRJ1Gol9Qw7Pb72YCKJXrBvP0ckZhBeVSrw2m06DJpei2528uIpjMb4TsoQ==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.12" + } + }, + "node_modules/style-to-object": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.12.tgz", + "integrity": "sha512-ddJqYnoT4t97QvN2C95bCgt+m7AAgXjVnkk/jxAfmp7EAB8nnqqZYEbMd3em7/vEomDb2LAQKAy1RFfv41mdNw==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.6" + } + }, + "node_modules/stylehacks": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/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==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/swr": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.3.6.tgz", + "integrity": "sha512-wfHRmHWk/isGNMwlLGlZX5Gzz/uTgo0o2IRuTMcf4CPuPFJZlq0rDaKUx+ozB5nBOReNV1kiOyzMfj+MBMikLw==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.3", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser": { + "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/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==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/thingies": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", + "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==", + "license": "MIT", + "engines": { + "node": ">=10.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/throttleit": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-2.1.0.tgz", + "integrity": "sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tree-dump": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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==", + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "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/unique-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "license": "MIT", + "dependencies": { + "crypto-random-string": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-parents": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-notifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^7.0.0", + "chalk": "^5.0.1", + "configstore": "^6.0.0", + "has-yarn": "^3.0.0", + "import-lazy": "^4.0.0", + "is-ci": "^3.0.1", + "is-installed-globally": "^0.4.0", + "is-npm": "^6.0.0", + "is-yarn-global": "^0.4.0", + "latest-version": "^7.0.0", + "pupa": "^3.1.0", + "semver": "^7.3.7", + "semver-diff": "^4.0.0", + "xdg-basedir": "^5.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/boxen": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", + "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^7.0.1", + "chalk": "^5.2.0", + "cli-boxes": "^3.0.0", + "string-width": "^5.1.2", + "type-fest": "^2.13.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/camelcase": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/url-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/url-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/url-loader/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/url-loader/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.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==", + "license": "MIT" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "license": "MIT" + }, + "node_modules/utility-types": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/watchpack": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webpack": { + "version": "5.102.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.102.1.tgz", + "integrity": "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.26.3", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.3", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.4", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", + "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", + "gzip-size": "^6.0.0", + "html-escaper": "^2.0.2", + "opener": "^1.5.2", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/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==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", + "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^4.43.1", + "mime-types": "^3.0.1", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-server": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz", + "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/express-serve-static-core": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "express": "^4.21.2", + "graceful-fs": "^4.2.6", + "http-proxy-middleware": "^2.0.9", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", + "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/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpackbar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz", + "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "consola": "^3.2.3", + "figures": "^3.2.0", + "markdown-table": "^2.0.0", + "pretty-time": "^1.1.0", + "std-env": "^3.7.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=14.21.3" + }, + "peerDependencies": { + "webpack": "3 || 4 || 5" + } + }, + "node_modules/webpackbar/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==", + "license": "MIT" + }, + "node_modules/webpackbar/node_modules/markdown-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", + "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "license": "MIT", + "dependencies": { + "repeat-string": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webpackbar/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==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpackbar/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==", + "license": "MIT", + "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/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "license": "MIT", + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wsl-utils/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==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xdg-basedir": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "license": "MIT", + "dependencies": { + "sax": "^1.2.4" + }, + "bin": { + "xml-js": "bin/cli.js" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz", + "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "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==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/docusaurus-docs/package.json b/docusaurus-docs/package.json new file mode 100644 index 00000000..afffadfb --- /dev/null +++ b/docusaurus-docs/package.json @@ -0,0 +1,47 @@ +{ + "name": "docusaurus-docs", + "version": "0.0.0", + "private": true, + "scripts": { + "docusaurus": "docusaurus", + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids", + "typecheck": "tsc" + }, + "dependencies": { + "@docusaurus/core": "3.9.2", + "@docusaurus/preset-classic": "3.9.2", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "prism-react-renderer": "^2.3.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "3.9.2", + "@docusaurus/tsconfig": "3.9.2", + "@docusaurus/types": "3.9.2", + "typescript": "~5.6.2" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 3 chrome version", + "last 3 firefox version", + "last 5 safari version" + ] + }, + "engines": { + "node": ">=20.0" + } +} diff --git a/docusaurus-docs/sidebars-graphql.ts b/docusaurus-docs/sidebars-graphql.ts new file mode 100644 index 00000000..b5446001 --- /dev/null +++ b/docusaurus-docs/sidebars-graphql.ts @@ -0,0 +1,10 @@ +import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; + +const sidebars: SidebarsConfig = { + graphqlSidebar: [ + 'index', + ], +}; + +export default sidebars; + diff --git a/docusaurus-docs/sidebars-learn.ts b/docusaurus-docs/sidebars-learn.ts new file mode 100644 index 00000000..461b3811 --- /dev/null +++ b/docusaurus-docs/sidebars-learn.ts @@ -0,0 +1,10 @@ +import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; + +const sidebars: SidebarsConfig = { + learnSidebar: [ + 'index', + ], +}; + +export default sidebars; + diff --git a/docusaurus-docs/sidebars-ratel.ts b/docusaurus-docs/sidebars-ratel.ts new file mode 100644 index 00000000..6d737a42 --- /dev/null +++ b/docusaurus-docs/sidebars-ratel.ts @@ -0,0 +1,10 @@ +import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; + +const sidebars: SidebarsConfig = { + ratelSidebar: [ + 'index', + ], +}; + +export default sidebars; + diff --git a/docusaurus-docs/sidebars.ts b/docusaurus-docs/sidebars.ts new file mode 100644 index 00000000..67aacbd4 --- /dev/null +++ b/docusaurus-docs/sidebars.ts @@ -0,0 +1,9 @@ +import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; + +const sidebars: SidebarsConfig = { + docsSidebar: [ + 'overview', + ], +}; + +export default sidebars; diff --git a/docusaurus-docs/src/components/HomepageFeatures/index.tsx b/docusaurus-docs/src/components/HomepageFeatures/index.tsx new file mode 100644 index 00000000..c2551fb9 --- /dev/null +++ b/docusaurus-docs/src/components/HomepageFeatures/index.tsx @@ -0,0 +1,71 @@ +import type {ReactNode} from 'react'; +import clsx from 'clsx'; +import Heading from '@theme/Heading'; +import styles from './styles.module.css'; + +type FeatureItem = { + title: string; + Svg: React.ComponentType>; + description: ReactNode; +}; + +const FeatureList: FeatureItem[] = [ + { + title: 'Easy to Use', + Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default, + description: ( + <> + Docusaurus was designed from the ground up to be easily installed and + used to get your website up and running quickly. + + ), + }, + { + title: 'Focus on What Matters', + Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default, + description: ( + <> + Docusaurus lets you focus on your docs, and we'll do the chores. Go + ahead and move your docs into the docs directory. + + ), + }, + { + title: 'Powered by React', + Svg: require('@site/static/img/undraw_docusaurus_react.svg').default, + description: ( + <> + Extend or customize your website layout by reusing React. Docusaurus can + be extended while reusing the same header and footer. + + ), + }, +]; + +function Feature({title, Svg, description}: FeatureItem) { + return ( +
+
+ +
+
+ {title} +

{description}

+
+
+ ); +} + +export default function HomepageFeatures(): ReactNode { + return ( +
+
+
+ {FeatureList.map((props, idx) => ( + + ))} +
+
+
+ ); +} diff --git a/docusaurus-docs/src/components/HomepageFeatures/styles.module.css b/docusaurus-docs/src/components/HomepageFeatures/styles.module.css new file mode 100644 index 00000000..b248eb2e --- /dev/null +++ b/docusaurus-docs/src/components/HomepageFeatures/styles.module.css @@ -0,0 +1,11 @@ +.features { + display: flex; + align-items: center; + padding: 2rem 0; + width: 100%; +} + +.featureSvg { + height: 200px; + width: 200px; +} diff --git a/docusaurus-docs/src/css/custom.css b/docusaurus-docs/src/css/custom.css new file mode 100644 index 00000000..2bc6a4cf --- /dev/null +++ b/docusaurus-docs/src/css/custom.css @@ -0,0 +1,30 @@ +/** + * Any CSS included here will be global. The classic template + * bundles Infima by default. Infima is a CSS framework designed to + * work well for content-centric websites. + */ + +/* You can override the default Infima variables here. */ +:root { + --ifm-color-primary: #2e8555; + --ifm-color-primary-dark: #29784c; + --ifm-color-primary-darker: #277148; + --ifm-color-primary-darkest: #205d3b; + --ifm-color-primary-light: #33925d; + --ifm-color-primary-lighter: #359962; + --ifm-color-primary-lightest: #3cad6e; + --ifm-code-font-size: 95%; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); +} + +/* For readability concerns, you should choose a lighter palette in dark mode. */ +[data-theme='dark'] { + --ifm-color-primary: #25c2a0; + --ifm-color-primary-dark: #21af90; + --ifm-color-primary-darker: #1fa588; + --ifm-color-primary-darkest: #1a8870; + --ifm-color-primary-light: #29d5b0; + --ifm-color-primary-lighter: #32d8b4; + --ifm-color-primary-lightest: #4fddbf; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); +} diff --git a/docusaurus-docs/src/pages/index.module.css b/docusaurus-docs/src/pages/index.module.css new file mode 100644 index 00000000..9f71a5da --- /dev/null +++ b/docusaurus-docs/src/pages/index.module.css @@ -0,0 +1,23 @@ +/** + * CSS files with the .module.css suffix will be treated as CSS modules + * and scoped locally. + */ + +.heroBanner { + padding: 4rem 0; + text-align: center; + position: relative; + overflow: hidden; +} + +@media screen and (max-width: 996px) { + .heroBanner { + padding: 2rem; + } +} + +.buttons { + display: flex; + align-items: center; + justify-content: center; +} diff --git a/docusaurus-docs/src/pages/index.tsx b/docusaurus-docs/src/pages/index.tsx new file mode 100644 index 00000000..3aae9923 --- /dev/null +++ b/docusaurus-docs/src/pages/index.tsx @@ -0,0 +1,44 @@ +import type {ReactNode} from 'react'; +import clsx from 'clsx'; +import Link from '@docusaurus/Link'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import Layout from '@theme/Layout'; +import HomepageFeatures from '@site/src/components/HomepageFeatures'; +import Heading from '@theme/Heading'; + +import styles from './index.module.css'; + +function HomepageHeader() { + const {siteConfig} = useDocusaurusContext(); + return ( +
+
+ + {siteConfig.title} + +

{siteConfig.tagline}

+
+ + Get Started + +
+
+
+ ); +} + +export default function Home(): ReactNode { + const {siteConfig} = useDocusaurusContext(); + return ( + + +
+ +
+
+ ); +} diff --git a/docusaurus-docs/src/pages/markdown-page.md b/docusaurus-docs/src/pages/markdown-page.md new file mode 100644 index 00000000..9756c5b6 --- /dev/null +++ b/docusaurus-docs/src/pages/markdown-page.md @@ -0,0 +1,7 @@ +--- +title: Markdown page example +--- + +# Markdown page example + +You don't need React to write simple standalone pages. diff --git a/docusaurus-docs/static/.nojekyll b/docusaurus-docs/static/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/docusaurus-docs/static/img/docusaurus-social-card.jpg b/docusaurus-docs/static/img/docusaurus-social-card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffcb448210e1a456cb3588ae8b396a597501f187 GIT binary patch literal 55746 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 fgzs%Vr*-jYG(YMS<ttdtee# literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/img/docusaurus.png b/docusaurus-docs/static/img/docusaurus.png new file mode 100644 index 0000000000000000000000000000000000000000..f458149e3c8f53335f28fbc162ae67f55575c881 GIT binary patch literal 5142 zcma)=cTf{R(}xj7f`AaDml%oxrAm_`5IRVc-jPtHML-0kDIiip57LWD@4bW~(nB|) z34|^sbOZqj<;8ct`Tl-)=Jw`pZtiw=e$UR_Mn2b8rM$y@hlq%XQe90+?|Mf68-Ux_ zzTBiDn~3P%oVt>{f$z+YC7A)8ak`PktoIXDkpXod+*gQW4fxTWh!EyR9`L|fi4YlH z{IyM;2-~t3s~J-KF~r-Z)FWquQCfG*TQy6w*9#k2zUWV-+tCNvjrtl9(o}V>-)N!) ziZgEgV>EG+b(j@ex!dx5@@nGZim*UfFe<+e;(xL|j-Pxg(PCsTL~f^br)4{n5?OU@ z*pjt{4tG{qBcDSa3;yKlopENd6Yth=+h9)*lkjQ0NwgOOP+5Xf?SEh$x6@l@ZoHoYGc5~d2>pO43s3R|*yZw9yX^kEyUV2Zw1%J4o`X!BX>CwJ zI8rh1-NLH^x1LnaPGki_t#4PEz$ad+hO^$MZ2 ziwt&AR}7_yq-9Pfn}k3`k~dKCbOsHjvWjnLsP1{)rzE8ERxayy?~{Qz zHneZ2gWT3P|H)fmp>vA78a{0&2kk3H1j|n59y{z@$?jmk9yptqCO%* zD2!3GHNEgPX=&Ibw?oU1>RSxw3;hhbOV77-BiL%qQb1(4J|k=Y{dani#g>=Mr?Uyd z)1v~ZXO_LT-*RcG%;i|Wy)MvnBrshlQoPxoO*82pKnFSGNKWrb?$S$4x+24tUdpb= zr$c3K25wQNUku5VG@A=`$K7%?N*K+NUJ(%%)m0Vhwis*iokN#atyu(BbK?+J+=H z!kaHkFGk+qz`uVgAc600d#i}WSs|mtlkuwPvFp) z1{Z%nt|NwDEKj1(dhQ}GRvIj4W?ipD76jZI!PGjd&~AXwLK*98QMwN&+dQN1ML(6< z@+{1`=aIc z9Buqm97vy3RML|NsM@A>Nw2=sY_3Ckk|s;tdn>rf-@Ke1m!%F(9(3>V%L?w#O&>yn z(*VIm;%bgezYB;xRq4?rY})aTRm>+RL&*%2-B%m; zLtxLTBS=G!bC$q;FQ|K3{nrj1fUp`43Qs&V!b%rTVfxlDGsIt3}n4p;1%Llj5ePpI^R} zl$Jhx@E}aetLO!;q+JH@hmelqg-f}8U=XnQ+~$9RHGUDOoR*fR{io*)KtYig%OR|08ygwX%UqtW81b@z0*`csGluzh_lBP=ls#1bwW4^BTl)hd|IIfa zhg|*M%$yt@AP{JD8y!7kCtTmu{`YWw7T1}Xlr;YJTU1mOdaAMD172T8Mw#UaJa1>V zQ6CD0wy9NEwUsor-+y)yc|Vv|H^WENyoa^fWWX zwJz@xTHtfdhF5>*T70(VFGX#8DU<^Z4Gez7vn&4E<1=rdNb_pj@0?Qz?}k;I6qz@| zYdWfcA4tmI@bL5JcXuoOWp?ROVe*&o-T!><4Ie9@ypDc!^X&41u(dFc$K$;Tv$c*o zT1#8mGWI8xj|Hq+)#h5JToW#jXJ73cpG-UE^tsRf4gKw>&%Z9A>q8eFGC zG@Iv(?40^HFuC_-%@u`HLx@*ReU5KC9NZ)bkS|ZWVy|_{BOnlK)(Gc+eYiFpMX>!# zG08xle)tntYZ9b!J8|4H&jaV3oO(-iFqB=d}hGKk0 z%j)johTZhTBE|B-xdinS&8MD=XE2ktMUX8z#eaqyU?jL~PXEKv!^) zeJ~h#R{@O93#A4KC`8@k8N$T3H8EV^E2 z+FWxb6opZnX-av5ojt@`l3TvSZtYLQqjps{v;ig5fDo^}{VP=L0|uiRB@4ww$Eh!CC;75L%7|4}xN+E)3K&^qwJizphcnn=#f<&Np$`Ny%S)1*YJ`#@b_n4q zi%3iZw8(I)Dzp0yY}&?<-`CzYM5Rp+@AZg?cn00DGhf=4|dBF8BO~2`M_My>pGtJwNt4OuQm+dkEVP4 z_f*)ZaG6@t4-!}fViGNd%E|2%ylnzr#x@C!CrZSitkHQ}?_;BKAIk|uW4Zv?_npjk z*f)ztC$Cj6O<_{K=dPwO)Z{I=o9z*lp?~wmeTTP^DMP*=<-CS z2FjPA5KC!wh2A)UzD-^v95}^^tT<4DG17#wa^C^Q`@f@=jLL_c3y8@>vXDJd6~KP( zurtqU1^(rnc=f5s($#IxlkpnU=ATr0jW`)TBlF5$sEwHLR_5VPTGiO?rSW9*ND`bYN*OX&?=>!@61{Z4)@E;VI9 zvz%NmR*tl>p-`xSPx$}4YcdRc{_9k)>4Jh&*TSISYu+Y!so!0JaFENVY3l1n*Fe3_ zRyPJ(CaQ-cNP^!3u-X6j&W5|vC1KU!-*8qCcT_rQN^&yqJ{C(T*`(!A=))=n%*-zp_ewRvYQoJBS7b~ zQlpFPqZXKCXUY3RT{%UFB`I-nJcW0M>1^*+v)AxD13~5#kfSkpWys^#*hu)tcd|VW zEbVTi`dbaM&U485c)8QG#2I#E#h)4Dz8zy8CLaq^W#kXdo0LH=ALhK{m_8N@Bj=Um zTmQOO*ID(;Xm}0kk`5nCInvbW9rs0pEw>zlO`ZzIGkB7e1Afs9<0Z(uS2g*BUMhp> z?XdMh^k}k<72>}p`Gxal3y7-QX&L{&Gf6-TKsE35Pv%1 z;bJcxPO+A9rPGsUs=rX(9^vydg2q`rU~otOJ37zb{Z{|)bAS!v3PQ5?l$+LkpGNJq zzXDLcS$vMy|9sIidXq$NE6A-^v@)Gs_x_3wYxF%y*_e{B6FvN-enGst&nq0z8Hl0< z*p6ZXC*su`M{y|Fv(Vih_F|83=)A6ay-v_&ph1Fqqcro{oeu99Y0*FVvRFmbFa@gs zJ*g%Gik{Sb+_zNNf?Qy7PTf@S*dTGt#O%a9WN1KVNj`q$1Qoiwd|y&_v?}bR#>fdP zSlMy2#KzRq4%?ywXh1w;U&=gKH%L~*m-l%D4Cl?*riF2~r*}ic9_{JYMAwcczTE`!Z z^KfriRf|_YcQ4b8NKi?9N7<4;PvvQQ}*4YxemKK3U-7i}ap8{T7=7`e>PN7BG-Ej;Uti2$o=4T#VPb zm1kISgGzj*b?Q^MSiLxj26ypcLY#RmTPp+1>9zDth7O?w9)onA%xqpXoKA-`Jh8cZ zGE(7763S3qHTKNOtXAUA$H;uhGv75UuBkyyD;eZxzIn6;Ye7JpRQ{-6>)ioiXj4Mr zUzfB1KxvI{ZsNj&UA`+|)~n}96q%_xKV~rs?k=#*r*7%Xs^Hm*0~x>VhuOJh<2tcb zKbO9e-w3zbekha5!N@JhQm7;_X+J!|P?WhssrMv5fnQh$v*986uWGGtS}^szWaJ*W z6fLVt?OpPMD+-_(3x8Ra^sX~PT1t5S6bfk@Jb~f-V)jHRul#Hqu;0(+ER7Z(Z4MTR z+iG>bu+BW2SNh|RAGR2-mN5D1sTcb-rLTha*@1@>P~u;|#2N{^AC1hxMQ|(sp3gTa zDO-E8Yn@S7u=a?iZ!&&Qf2KKKk7IT`HjO`U*j1~Df9Uxz$~@otSCK;)lbLSmBuIj% zPl&YEoRwsk$8~Az>>djrdtp`PX z`Pu#IITS7lw07vx>YE<4pQ!&Z^7L?{Uox`CJnGjYLh1XN^tt#zY*0}tA*a=V)rf=&-kLgD|;t1D|ORVY}8 F{0H{b<4^zq literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/img/favicon.ico b/docusaurus-docs/static/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c01d54bcd39a5f853428f3cd5aa0f383d963c484 GIT binary patch literal 3626 zcmb`Je@s(X6vrR`EK3%b%orErlDW({vnABqA zcfaS{d+xbU5JKp0*;0YOg+;Fl!eT)XRuapIwFLL`=imZCSon$`se`_<%@MB=M~KG+ z=EW^FL`w|Bo>*ktlaS^(fut!95`iG5u=SZ8nfDHO#GaTlH1-XG^;vsjUb^gWTVz0+ z^=WR1wv9-2oeR=_;fL0H7rNWqAzGtO(D;`~cX(RcN0w2v24Y8)6t`cS^_ghs`_ho? z{0ka~1Dgo8TfAP$r*ua?>$_V+kZ!-(TvEJ7O2f;Y#tezt$&R4 zLI}=-y@Z!grf*h3>}DUL{km4R>ya_I5Ag#{h_&?+HpKS!;$x3LC#CqUQ8&nM?X))Q zXAy2?`YL4FbC5CgJu(M&Q|>1st8XXLZ|5MgwgjP$m_2Vt0(J z&Gu7bOlkbGzGm2sh?X`){7w69Y$1#@P@7DF{ZE=4%T0NDS)iH`tiPSKpDNW)zmtn( zw;4$f>k)4$LBc>eBAaTZeCM2(iD+sHlj!qd z2GjRJ>f_Qes(+mnzdA^NH?^NB(^o-%Gmg$c8MNMq&`vm@9Ut;*&$xSD)PKH{wBCEC z4P9%NQ;n2s59ffMn8*5)5AAg4-93gBXBDX`A7S& zH-|%S3Wd%T79fk-e&l`{!?lve8_epXhE{d3Hn$Cg!t=-4D(t$cK~7f&4s?t7wr3ZP z*!SRQ-+tr|e1|hbc__J`k3S!rMy<0PHy&R`v#aJv?`Y?2{avK5sQz%=Us()jcNuZV z*$>auD4cEw>;t`+m>h?f?%VFJZj8D|Y1e_SjxG%J4{-AkFtT2+ZZS5UScS~%;dp!V>)7zi`w(xwSd*FS;Lml=f6hn#jq)2is4nkp+aTrV?)F6N z>DY#SU0IZ;*?Hu%tSj4edd~kYNHMFvS&5}#3-M;mBCOCZL3&;2obdG?qZ>rD|zC|Lu|sny76pn2xl|6sk~Hs{X9{8iBW zwiwgQt+@hi`FYMEhX2 \ No newline at end of file diff --git a/docusaurus-docs/static/img/undraw_docusaurus_mountain.svg b/docusaurus-docs/static/img/undraw_docusaurus_mountain.svg new file mode 100644 index 00000000..af961c49 --- /dev/null +++ b/docusaurus-docs/static/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,171 @@ + + Easy to Use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docusaurus-docs/static/img/undraw_docusaurus_react.svg b/docusaurus-docs/static/img/undraw_docusaurus_react.svg new file mode 100644 index 00000000..94b5cf08 --- /dev/null +++ b/docusaurus-docs/static/img/undraw_docusaurus_react.svg @@ -0,0 +1,170 @@ + + Powered by React + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docusaurus-docs/static/img/undraw_docusaurus_tree.svg b/docusaurus-docs/static/img/undraw_docusaurus_tree.svg new file mode 100644 index 00000000..d9161d33 --- /dev/null +++ b/docusaurus-docs/static/img/undraw_docusaurus_tree.svg @@ -0,0 +1,40 @@ + + Focus on What Matters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docusaurus-docs/tsconfig.json b/docusaurus-docs/tsconfig.json new file mode 100644 index 00000000..920d7a65 --- /dev/null +++ b/docusaurus-docs/tsconfig.json @@ -0,0 +1,8 @@ +{ + // This file is not used in compilation. It is here just for a nice editor experience. + "extends": "@docusaurus/tsconfig", + "compilerOptions": { + "baseUrl": "." + }, + "exclude": [".docusaurus", "build"] +} From 19b4eb92f976252d5d3c8e5c4155deead7222922 Mon Sep 17 00:00:00 2001 From: raphael-istari Date: Wed, 5 Nov 2025 22:02:38 -0800 Subject: [PATCH 02/12] Use Dgraph logo --- docusaurus-docs/docusaurus.config.ts | 5 +-- docusaurus-docs/static/img/dgraph-dark.svg | 31 ++++++++++++++++++ docusaurus-docs/static/img/dgraph-light.svg | 36 +++++++++++++++++++++ 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 docusaurus-docs/static/img/dgraph-dark.svg create mode 100644 docusaurus-docs/static/img/dgraph-light.svg diff --git a/docusaurus-docs/docusaurus.config.ts b/docusaurus-docs/docusaurus.config.ts index 49ef0021..26cdfb3d 100644 --- a/docusaurus-docs/docusaurus.config.ts +++ b/docusaurus-docs/docusaurus.config.ts @@ -98,10 +98,11 @@ const config: Config = { respectPrefersColorScheme: true, }, navbar: { - title: 'Dgraph', + title: '', logo: { alt: 'Dgraph Logo', - src: 'img/logo.svg', + src: 'img/dgraph-light.svg', + srcDark: 'img/dgraph-dark.svg', }, items: [ { diff --git a/docusaurus-docs/static/img/dgraph-dark.svg b/docusaurus-docs/static/img/dgraph-dark.svg new file mode 100644 index 00000000..78b12a8f --- /dev/null +++ b/docusaurus-docs/static/img/dgraph-dark.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/docusaurus-docs/static/img/dgraph-light.svg b/docusaurus-docs/static/img/dgraph-light.svg new file mode 100644 index 00000000..2b11b5cf --- /dev/null +++ b/docusaurus-docs/static/img/dgraph-light.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + From 1b7ea6e9d0afb99236ef9eb7a638181442602487 Mon Sep 17 00:00:00 2001 From: raphael-istari Date: Thu, 6 Nov 2025 10:38:49 -0800 Subject: [PATCH 03/12] Docusaurus corrections --- docusaurus-docs/docs-ratel/backups.md | 18 + docusaurus-docs/docs-ratel/cluster.md | 18 + docusaurus-docs/docs-ratel/connection.md | 51 ++ docusaurus-docs/docs-ratel/console.md | 43 + docusaurus-docs/docs-ratel/index.md | 11 +- docusaurus-docs/docs-ratel/schema.md | 36 + .../docs/admin/data-compression.md | 39 + .../docs/admin/dgraph-administration.md | 116 +++ docusaurus-docs/docs/admin/dgraph-alpha.md | 105 +++ docusaurus-docs/docs/admin/dgraph-zero.md | 282 ++++++ .../access-control-lists.md | 783 ++++++++++++++++ .../enterprise-features/binary-backups.mdx | 737 ++++++++++++++++ .../change-data-capture.md | 123 +++ .../enterprise-features/encryption-at-rest.md | 137 +++ .../docs/admin/enterprise-features/index.md | 4 + .../enterprise-features/learner-nodes.md | 91 ++ .../docs/admin/enterprise-features/license.md | 50 ++ .../admin/enterprise-features/lsbackup.md | 162 ++++ .../admin/enterprise-features/multitenancy.md | 293 ++++++ docusaurus-docs/docs/admin/index.md | 29 + .../docs/admin/observability/audit-logs.md | 145 +++ .../docs/admin/observability/index.md | 3 + .../docs/admin/observability/log-format.md | 115 +++ .../docs/admin/observability/metrics.md | 122 +++ .../docs/admin/observability/monitoring.md | 112 +++ .../docs/admin/observability/tracing.md | 42 + .../admin/security/admin-endpoint-security.md | 105 +++ docusaurus-docs/docs/admin/security/index.md | 21 + .../docs/admin/security/ports-usage.md | 117 +++ .../docs/admin/security/tls-configuration.md | 387 ++++++++ docusaurus-docs/docs/admin/troubleshooting.md | 70 ++ docusaurus-docs/docs/cli/acl.md | 40 + docusaurus-docs/docs/cli/alpha.md | 173 ++++ docusaurus-docs/docs/cli/audit.md | 53 ++ docusaurus-docs/docs/cli/bulk.md | 277 ++++++ docusaurus-docs/docs/cli/cert.md | 30 + docusaurus-docs/docs/cli/completion.md | 109 +++ docusaurus-docs/docs/cli/config.md | 170 ++++ docusaurus-docs/docs/cli/conv.md | 25 + docusaurus-docs/docs/cli/debuginfo.md | 22 + docusaurus-docs/docs/cli/decrypt.md | 71 ++ docusaurus-docs/docs/cli/export_backup.md | 42 + docusaurus-docs/docs/cli/increment.md | 40 + docusaurus-docs/docs/cli/index.md | 60 ++ docusaurus-docs/docs/cli/live.md | 65 ++ docusaurus-docs/docs/cli/migrate.md | 55 ++ docusaurus-docs/docs/cli/restore.md | 90 ++ docusaurus-docs/docs/cli/superflags.md | 183 ++++ docusaurus-docs/docs/cli/upgrade.md | 258 ++++++ docusaurus-docs/docs/cli/zero.md | 105 +++ docusaurus-docs/docs/clients/csharp.md | 176 ++++ docusaurus-docs/docs/clients/go.md | 497 +++++++++++ docusaurus-docs/docs/clients/index.md | 56 ++ docusaurus-docs/docs/clients/java.md | 529 +++++++++++ .../docs/clients/javascript/grpc.md | 404 +++++++++ .../docs/clients/javascript/http.md | 324 +++++++ .../docs/clients/javascript/index.md | 27 + docusaurus-docs/docs/clients/python.md | 427 +++++++++ docusaurus-docs/docs/clients/raw-http.md | 460 ++++++++++ .../docs/clients/unofficial-clients.md | 32 + .../docs/design-concepts/acl-concept.md | 11 + .../docs/design-concepts/badger-concept.md | 10 + .../docs/design-concepts/clients-concept.md | 13 + .../docs/design-concepts/consistency-model.md | 39 + .../docs/design-concepts/discovery-concept.md | 7 + .../docs/design-concepts/dql-concept.md | 5 + .../dql-graphql-layering-concept.md | 15 + .../docs/design-concepts/facets-concept.md | 9 + .../docs/design-concepts/graphql-concept.md | 10 + .../docs/design-concepts/group-concept.md | 22 + .../design-concepts/index-tokenize-concept.md | 13 + docusaurus-docs/docs/design-concepts/index.md | 10 + .../docs/design-concepts/lambda-concept.md | 5 + .../minimizing-network-calls.md | 73 ++ .../namespace-tenant-concept.md | 7 + .../network-call-minimization-concept.md | 7 + .../design-concepts/posting-list-concept.md | 99 +++ .../protocol-buffers-concept.md | 5 + .../docs/design-concepts/queries-process.md | 42 + docusaurus-docs/docs/design-concepts/raft.md | 159 ++++ .../design-concepts/relationships-concept.md | 24 + .../design-concepts/replication-concept.md | 8 + .../transaction-mutation-concept.md | 8 + .../design-concepts/transactions-concept.md | 19 + .../design-concepts/wal-memtable-concept.md | 8 + .../docs/design-concepts/workers-concept.md | 6 + docusaurus-docs/docs/dgraph-glossary.md | 80 ++ docusaurus-docs/docs/dgraph-overview.md | 128 +++ docusaurus-docs/docs/dql/dql-mutation.md | 261 ++++++ docusaurus-docs/docs/dql/dql-rdf.md | 138 +++ docusaurus-docs/docs/dql/dql-schema.md | 433 +++++++++ docusaurus-docs/docs/dql/index.md | 7 + .../docs/dql/indexing-custom-tokenizers.md | 568 ++++++++++++ .../docs/dql/json-mutation-format.md | 460 ++++++++++ .../docs/dql/predicate-indexing.md | 247 ++++++ docusaurus-docs/docs/dql/query/aggregation.md | 215 +++++ docusaurus-docs/docs/dql/query/alias.md | 45 + docusaurus-docs/docs/dql/query/count.md | 73 ++ docusaurus-docs/docs/dql/query/debug.md | 60 ++ .../dql/query/directive/cascade-directive.md | 280 ++++++ .../docs/dql/query/directive/filter.md | 91 ++ .../docs/dql/query/directive/groupby.md | 64 ++ .../query/directive/ignorereflex-directive.md | 30 + .../docs/dql/query/directive/index.md | 30 + .../query/directive/normalize-directive.md | 64 ++ .../docs/dql/query/directive/recurse-query.md | 34 + docusaurus-docs/docs/dql/query/dql-query.md | 317 +++++++ .../docs/dql/query/expand-predicates.md | 87 ++ docusaurus-docs/docs/dql/query/facets.md | 459 ++++++++++ docusaurus-docs/docs/dql/query/fragments.md | 32 + docusaurus-docs/docs/dql/query/functions.md | 834 ++++++++++++++++++ .../docs/dql/query/graphql-variables.md | 99 +++ docusaurus-docs/docs/dql/query/index.md | 9 + .../docs/dql/query/kshortest-path-queries.md | 288 ++++++ .../docs/dql/query/language-support.md | 70 ++ docusaurus-docs/docs/dql/query/pagination.md | 154 ++++ .../docs/dql/query/running-examples.md | 55 ++ docusaurus-docs/docs/dql/query/sorting.md | 89 ++ docusaurus-docs/docs/dql/query/variables.md | 307 +++++++ docusaurus-docs/docs/dql/tips/index.md | 168 ++++ docusaurus-docs/docs/dql/upserts.md | 427 +++++++++ .../docs/howto/commandline/about-cli.md | 22 + .../docs/howto/commandline/create-cli.md | 76 ++ .../docs/howto/commandline/index.md | 3 + docusaurus-docs/docs/howto/completion.md | 95 ++ ...current-modification-java-multithreaded.md | 64 ++ .../docs/howto/dgraph-sentry-integration.md | 59 ++ .../docs/howto/dql-schema-request.md | 63 ++ docusaurus-docs/docs/howto/drop-data.md | 36 + docusaurus-docs/docs/howto/index.md | 3 + docusaurus-docs/docs/howto/jepsen-tests.md | 32 + .../docs/howto/load-balancing-nginx.md | 155 ++++ docusaurus-docs/docs/howto/login-system.md | 58 ++ .../howto/retrieving-debug-information.md | 188 ++++ .../docs/howto/update-dgraph-types.md | 78 ++ .../docs/howto/using-debug-tool.md | 260 ++++++ .../docs/howto/using-increment-tool.md | 102 +++ docusaurus-docs/docs/index.mdx | 97 ++ .../docs/installation/deployment-patterns.mdx | 258 ++++++ .../docs/installation/dgraph-architecture.md | 248 ++++++ docusaurus-docs/docs/installation/download.md | 68 ++ .../docs/installation/ha-cluster.md | 257 ++++++ docusaurus-docs/docs/installation/index.md | 5 + .../docs/installation/lambda-server.md | 90 ++ .../docs/installation/production-checklist.md | 120 +++ .../docs/installation/single-host-setup.md | 134 +++ .../learn/developer/sample-apps/devjokes.md | 30 + .../learn/developer/sample-apps/pokedex.md | 19 + .../learn/developer/sample-apps/surveyo.md | 27 + .../docs/learn/developer/sample-apps/todos.md | 26 + docusaurus-docs/docs/migration/bulk-loader.md | 381 ++++++++ docusaurus-docs/docs/migration/export-data.md | 296 +++++++ docusaurus-docs/docs/migration/import-data.md | 21 + docusaurus-docs/docs/migration/index.md | 3 + docusaurus-docs/docs/migration/live-loader.md | 287 ++++++ .../docs/migration/loading-csv-data.md | 178 ++++ .../docs/migration/migrate-tool.md | 72 ++ docusaurus-docs/docs/quick-start.md | 406 +++++++++ docusaurus-docs/docs/releases/index.md | 25 + docusaurus-docs/sidebars-ratel.ts | 5 + docusaurus-docs/sidebars.ts | 237 +++++ .../src/components/Highlight/index.tsx | 120 +++ .../components/Highlight/styles.module.css | 4 + .../components/RunnableCodeBlock/index.tsx | 212 +++++ .../RunnableCodeBlock/styles.module.css | 16 + .../static/images/deploy/bulk-loader.png | Bin 0 -> 39213 bytes .../dgraph/quickstart/arrows/data-model.json | 200 +++++ .../dgraph/quickstart/create-graph-2.png | Bin 0 -> 174975 bytes .../images/dgraph/quickstart/create-graph.png | Bin 0 -> 50769 bytes .../dgraph/quickstart/create-workspace.png | Bin 0 -> 257149 bytes .../images/dgraph/quickstart/data-model.png | Bin 0 -> 36383 bytes .../dgraph/quickstart/graph-details.png | Bin 0 -> 97097 bytes .../dgraph/quickstart/query-result-1.png | Bin 0 -> 76750 bytes .../dgraph/quickstart/query-result-2.png | Bin 0 -> 74801 bytes .../quickstart/ratel-connection-string.png | Bin 0 -> 84094 bytes .../quickstart/ratel-docker-connection.png | Bin 0 -> 82717 bytes .../quickstart/ratel-docker-overview.png | Bin 0 -> 77243 bytes .../dgraph/quickstart/ratel-overview.png | Bin 0 -> 118989 bytes .../images/dgraph/quickstart/schema-date.png | Bin 0 -> 137489 bytes .../dgraph/quickstart/schema-reverse.png | Bin 0 -> 120957 bytes .../images/dgraph/quickstart/schema-title.png | Bin 0 -> 144331 bytes .../images/dql-syntax/query-syntax-1.png | Bin 0 -> 272824 bytes .../images/dql-syntax/query-syntax-2.png | Bin 0 -> 249404 bytes .../images/dql-syntax/query-syntax-3.png | Bin 0 -> 394264 bytes docusaurus-docs/static/images/jaeger-json.png | Bin 0 -> 12021 bytes .../static/images/jaeger-server-query-2.png | Bin 0 -> 12569 bytes .../static/images/jaeger-server-query.png | Bin 0 -> 12857 bytes docusaurus-docs/static/images/jaeger-ui.png | Bin 0 -> 15277 bytes .../static/images/ratel/ratel_acl.png | Bin 0 -> 40263 bytes .../static/images/ratel/ratel_backup.png | Bin 0 -> 53674 bytes .../static/images/ratel/ratel_console.png | Bin 0 -> 74126 bytes .../static/images/ratel/ratel_extra.png | Bin 0 -> 46192 bytes .../static/images/ratel/ratel_schema.png | Bin 0 -> 87528 bytes .../static/images/ratel/ratel_schema_bulk.png | Bin 0 -> 81151 bytes .../images/ratel/ratel_schema_types.png | Bin 0 -> 65270 bytes .../static/images/ratel/ratel_ui.png | Bin 0 -> 51959 bytes .../static/images/ratel/ratel_zero.png | Bin 0 -> 35885 bytes fix_broken_links.py | 140 +++ fix_figure.py | 103 +++ fix_frontmatter.py | 85 ++ fix_frontmatter_syntax.py | 80 ++ fix_highlight.py | 143 +++ fix_load_img.py | 65 ++ fix_mdx_issues.py | 93 ++ fix_relref.py | 156 ++++ fix_runnable_blocks.py | 160 ++++ fix_tabs.py | 91 ++ fix_tabs_formatting.py | 53 ++ fix_yaml_quotes.py | 73 ++ migrate_docs.py | 120 +++ 210 files changed, 22996 insertions(+), 6 deletions(-) create mode 100644 docusaurus-docs/docs-ratel/backups.md create mode 100644 docusaurus-docs/docs-ratel/cluster.md create mode 100644 docusaurus-docs/docs-ratel/connection.md create mode 100644 docusaurus-docs/docs-ratel/console.md create mode 100644 docusaurus-docs/docs-ratel/schema.md create mode 100644 docusaurus-docs/docs/admin/data-compression.md create mode 100644 docusaurus-docs/docs/admin/dgraph-administration.md create mode 100644 docusaurus-docs/docs/admin/dgraph-alpha.md create mode 100644 docusaurus-docs/docs/admin/dgraph-zero.md create mode 100644 docusaurus-docs/docs/admin/enterprise-features/access-control-lists.md create mode 100644 docusaurus-docs/docs/admin/enterprise-features/binary-backups.mdx create mode 100644 docusaurus-docs/docs/admin/enterprise-features/change-data-capture.md create mode 100644 docusaurus-docs/docs/admin/enterprise-features/encryption-at-rest.md create mode 100644 docusaurus-docs/docs/admin/enterprise-features/index.md create mode 100644 docusaurus-docs/docs/admin/enterprise-features/learner-nodes.md create mode 100644 docusaurus-docs/docs/admin/enterprise-features/license.md create mode 100644 docusaurus-docs/docs/admin/enterprise-features/lsbackup.md create mode 100644 docusaurus-docs/docs/admin/enterprise-features/multitenancy.md create mode 100644 docusaurus-docs/docs/admin/index.md create mode 100644 docusaurus-docs/docs/admin/observability/audit-logs.md create mode 100644 docusaurus-docs/docs/admin/observability/index.md create mode 100644 docusaurus-docs/docs/admin/observability/log-format.md create mode 100644 docusaurus-docs/docs/admin/observability/metrics.md create mode 100644 docusaurus-docs/docs/admin/observability/monitoring.md create mode 100644 docusaurus-docs/docs/admin/observability/tracing.md create mode 100644 docusaurus-docs/docs/admin/security/admin-endpoint-security.md create mode 100644 docusaurus-docs/docs/admin/security/index.md create mode 100644 docusaurus-docs/docs/admin/security/ports-usage.md create mode 100644 docusaurus-docs/docs/admin/security/tls-configuration.md create mode 100644 docusaurus-docs/docs/admin/troubleshooting.md create mode 100644 docusaurus-docs/docs/cli/acl.md create mode 100644 docusaurus-docs/docs/cli/alpha.md create mode 100644 docusaurus-docs/docs/cli/audit.md create mode 100644 docusaurus-docs/docs/cli/bulk.md create mode 100644 docusaurus-docs/docs/cli/cert.md create mode 100644 docusaurus-docs/docs/cli/completion.md create mode 100644 docusaurus-docs/docs/cli/config.md create mode 100644 docusaurus-docs/docs/cli/conv.md create mode 100644 docusaurus-docs/docs/cli/debuginfo.md create mode 100644 docusaurus-docs/docs/cli/decrypt.md create mode 100644 docusaurus-docs/docs/cli/export_backup.md create mode 100644 docusaurus-docs/docs/cli/increment.md create mode 100644 docusaurus-docs/docs/cli/index.md create mode 100644 docusaurus-docs/docs/cli/live.md create mode 100644 docusaurus-docs/docs/cli/migrate.md create mode 100644 docusaurus-docs/docs/cli/restore.md create mode 100644 docusaurus-docs/docs/cli/superflags.md create mode 100644 docusaurus-docs/docs/cli/upgrade.md create mode 100644 docusaurus-docs/docs/cli/zero.md create mode 100644 docusaurus-docs/docs/clients/csharp.md create mode 100644 docusaurus-docs/docs/clients/go.md create mode 100644 docusaurus-docs/docs/clients/index.md create mode 100644 docusaurus-docs/docs/clients/java.md create mode 100644 docusaurus-docs/docs/clients/javascript/grpc.md create mode 100644 docusaurus-docs/docs/clients/javascript/http.md create mode 100644 docusaurus-docs/docs/clients/javascript/index.md create mode 100644 docusaurus-docs/docs/clients/python.md create mode 100644 docusaurus-docs/docs/clients/raw-http.md create mode 100644 docusaurus-docs/docs/clients/unofficial-clients.md create mode 100644 docusaurus-docs/docs/design-concepts/acl-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/badger-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/clients-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/consistency-model.md create mode 100644 docusaurus-docs/docs/design-concepts/discovery-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/dql-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/dql-graphql-layering-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/facets-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/graphql-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/group-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/index-tokenize-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/index.md create mode 100644 docusaurus-docs/docs/design-concepts/lambda-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/minimizing-network-calls.md create mode 100644 docusaurus-docs/docs/design-concepts/namespace-tenant-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/network-call-minimization-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/posting-list-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/protocol-buffers-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/queries-process.md create mode 100644 docusaurus-docs/docs/design-concepts/raft.md create mode 100644 docusaurus-docs/docs/design-concepts/relationships-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/replication-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/transaction-mutation-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/transactions-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/wal-memtable-concept.md create mode 100644 docusaurus-docs/docs/design-concepts/workers-concept.md create mode 100644 docusaurus-docs/docs/dgraph-glossary.md create mode 100644 docusaurus-docs/docs/dgraph-overview.md create mode 100644 docusaurus-docs/docs/dql/dql-mutation.md create mode 100644 docusaurus-docs/docs/dql/dql-rdf.md create mode 100644 docusaurus-docs/docs/dql/dql-schema.md create mode 100644 docusaurus-docs/docs/dql/index.md create mode 100644 docusaurus-docs/docs/dql/indexing-custom-tokenizers.md create mode 100644 docusaurus-docs/docs/dql/json-mutation-format.md create mode 100644 docusaurus-docs/docs/dql/predicate-indexing.md create mode 100644 docusaurus-docs/docs/dql/query/aggregation.md create mode 100644 docusaurus-docs/docs/dql/query/alias.md create mode 100644 docusaurus-docs/docs/dql/query/count.md create mode 100644 docusaurus-docs/docs/dql/query/debug.md create mode 100644 docusaurus-docs/docs/dql/query/directive/cascade-directive.md create mode 100644 docusaurus-docs/docs/dql/query/directive/filter.md create mode 100644 docusaurus-docs/docs/dql/query/directive/groupby.md create mode 100644 docusaurus-docs/docs/dql/query/directive/ignorereflex-directive.md create mode 100644 docusaurus-docs/docs/dql/query/directive/index.md create mode 100644 docusaurus-docs/docs/dql/query/directive/normalize-directive.md create mode 100644 docusaurus-docs/docs/dql/query/directive/recurse-query.md create mode 100644 docusaurus-docs/docs/dql/query/dql-query.md create mode 100644 docusaurus-docs/docs/dql/query/expand-predicates.md create mode 100644 docusaurus-docs/docs/dql/query/facets.md create mode 100644 docusaurus-docs/docs/dql/query/fragments.md create mode 100644 docusaurus-docs/docs/dql/query/functions.md create mode 100644 docusaurus-docs/docs/dql/query/graphql-variables.md create mode 100644 docusaurus-docs/docs/dql/query/index.md create mode 100644 docusaurus-docs/docs/dql/query/kshortest-path-queries.md create mode 100644 docusaurus-docs/docs/dql/query/language-support.md create mode 100644 docusaurus-docs/docs/dql/query/pagination.md create mode 100644 docusaurus-docs/docs/dql/query/running-examples.md create mode 100644 docusaurus-docs/docs/dql/query/sorting.md create mode 100644 docusaurus-docs/docs/dql/query/variables.md create mode 100644 docusaurus-docs/docs/dql/tips/index.md create mode 100644 docusaurus-docs/docs/dql/upserts.md create mode 100644 docusaurus-docs/docs/howto/commandline/about-cli.md create mode 100644 docusaurus-docs/docs/howto/commandline/create-cli.md create mode 100644 docusaurus-docs/docs/howto/commandline/index.md create mode 100644 docusaurus-docs/docs/howto/completion.md create mode 100644 docusaurus-docs/docs/howto/concurrent-modification-java-multithreaded.md create mode 100644 docusaurus-docs/docs/howto/dgraph-sentry-integration.md create mode 100644 docusaurus-docs/docs/howto/dql-schema-request.md create mode 100644 docusaurus-docs/docs/howto/drop-data.md create mode 100644 docusaurus-docs/docs/howto/index.md create mode 100644 docusaurus-docs/docs/howto/jepsen-tests.md create mode 100644 docusaurus-docs/docs/howto/load-balancing-nginx.md create mode 100644 docusaurus-docs/docs/howto/login-system.md create mode 100644 docusaurus-docs/docs/howto/retrieving-debug-information.md create mode 100644 docusaurus-docs/docs/howto/update-dgraph-types.md create mode 100644 docusaurus-docs/docs/howto/using-debug-tool.md create mode 100644 docusaurus-docs/docs/howto/using-increment-tool.md create mode 100644 docusaurus-docs/docs/index.mdx create mode 100644 docusaurus-docs/docs/installation/deployment-patterns.mdx create mode 100644 docusaurus-docs/docs/installation/dgraph-architecture.md create mode 100644 docusaurus-docs/docs/installation/download.md create mode 100644 docusaurus-docs/docs/installation/ha-cluster.md create mode 100644 docusaurus-docs/docs/installation/index.md create mode 100644 docusaurus-docs/docs/installation/lambda-server.md create mode 100644 docusaurus-docs/docs/installation/production-checklist.md create mode 100644 docusaurus-docs/docs/installation/single-host-setup.md create mode 100644 docusaurus-docs/docs/learn/developer/sample-apps/devjokes.md create mode 100644 docusaurus-docs/docs/learn/developer/sample-apps/pokedex.md create mode 100644 docusaurus-docs/docs/learn/developer/sample-apps/surveyo.md create mode 100644 docusaurus-docs/docs/learn/developer/sample-apps/todos.md create mode 100644 docusaurus-docs/docs/migration/bulk-loader.md create mode 100644 docusaurus-docs/docs/migration/export-data.md create mode 100644 docusaurus-docs/docs/migration/import-data.md create mode 100644 docusaurus-docs/docs/migration/index.md create mode 100644 docusaurus-docs/docs/migration/live-loader.md create mode 100644 docusaurus-docs/docs/migration/loading-csv-data.md create mode 100644 docusaurus-docs/docs/migration/migrate-tool.md create mode 100644 docusaurus-docs/docs/quick-start.md create mode 100644 docusaurus-docs/docs/releases/index.md create mode 100644 docusaurus-docs/src/components/Highlight/index.tsx create mode 100644 docusaurus-docs/src/components/Highlight/styles.module.css create mode 100644 docusaurus-docs/src/components/RunnableCodeBlock/index.tsx create mode 100644 docusaurus-docs/src/components/RunnableCodeBlock/styles.module.css create mode 100644 docusaurus-docs/static/images/deploy/bulk-loader.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/arrows/data-model.json create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/create-graph-2.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/create-graph.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/create-workspace.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/data-model.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/graph-details.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/query-result-1.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/query-result-2.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/ratel-connection-string.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/ratel-docker-connection.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/ratel-docker-overview.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/ratel-overview.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/schema-date.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/schema-reverse.png create mode 100644 docusaurus-docs/static/images/dgraph/quickstart/schema-title.png create mode 100644 docusaurus-docs/static/images/dql-syntax/query-syntax-1.png create mode 100644 docusaurus-docs/static/images/dql-syntax/query-syntax-2.png create mode 100644 docusaurus-docs/static/images/dql-syntax/query-syntax-3.png create mode 100644 docusaurus-docs/static/images/jaeger-json.png create mode 100644 docusaurus-docs/static/images/jaeger-server-query-2.png create mode 100644 docusaurus-docs/static/images/jaeger-server-query.png create mode 100644 docusaurus-docs/static/images/jaeger-ui.png create mode 100644 docusaurus-docs/static/images/ratel/ratel_acl.png create mode 100644 docusaurus-docs/static/images/ratel/ratel_backup.png create mode 100644 docusaurus-docs/static/images/ratel/ratel_console.png create mode 100644 docusaurus-docs/static/images/ratel/ratel_extra.png create mode 100644 docusaurus-docs/static/images/ratel/ratel_schema.png create mode 100644 docusaurus-docs/static/images/ratel/ratel_schema_bulk.png create mode 100644 docusaurus-docs/static/images/ratel/ratel_schema_types.png create mode 100644 docusaurus-docs/static/images/ratel/ratel_ui.png create mode 100644 docusaurus-docs/static/images/ratel/ratel_zero.png create mode 100644 fix_broken_links.py create mode 100644 fix_figure.py create mode 100644 fix_frontmatter.py create mode 100644 fix_frontmatter_syntax.py create mode 100644 fix_highlight.py create mode 100644 fix_load_img.py create mode 100644 fix_mdx_issues.py create mode 100644 fix_relref.py create mode 100644 fix_runnable_blocks.py create mode 100644 fix_tabs.py create mode 100644 fix_tabs_formatting.py create mode 100644 fix_yaml_quotes.py create mode 100644 migrate_docs.py diff --git a/docusaurus-docs/docs-ratel/backups.md b/docusaurus-docs/docs-ratel/backups.md new file mode 100644 index 00000000..fb7904aa --- /dev/null +++ b/docusaurus-docs/docs-ratel/backups.md @@ -0,0 +1,18 @@ +--- +title: Backups +--- + +## Backup + +Here you will find options to backup your server. + +:::note +This backup option is an [Enterprise feature](/admin/enterprise-features/binary-backups/). +::: + +![Ratel Backup](/images/ratel/ratel_backup.png) + +### Creating a Backup + +Click on `Create Backup`. On the dialog box, you will choose the destination details. After the successful backup it will be listed on the main panel. + diff --git a/docusaurus-docs/docs-ratel/cluster.md b/docusaurus-docs/docs-ratel/cluster.md new file mode 100644 index 00000000..9dda72d1 --- /dev/null +++ b/docusaurus-docs/docs-ratel/cluster.md @@ -0,0 +1,18 @@ +--- +title: Cluster +--- + +## Cluster Management + +Here you will find the basic information about the cluster. + +The Zero list with license and the list of zeros connected: +- Each card represents a zero node. The card has a green sign which shows the health. It shows the address of the node and a little blue banner indicating that this node is the leader. + +The Alpha list separated into groups: +- You have a list of tablets that exist on that group and their approximate size. The card has the same pattern as the zero ones. + +:::tip +By clicking on the Node Card you can remove that node (Alpha or Zero). +::: + diff --git a/docusaurus-docs/docs-ratel/connection.md b/docusaurus-docs/docs-ratel/connection.md new file mode 100644 index 00000000..c618b4f5 --- /dev/null +++ b/docusaurus-docs/docs-ratel/connection.md @@ -0,0 +1,51 @@ +--- +title: Connection +--- + +## Recent Servers + +This section provides a list of recent connected clusters. You can select any item on the list to connect. + +The list also has an icon which indicates the version of the cluster running: + +- Green icon: Running the latest version. +- Yellow icon: Running a specific version. +- Red icon: No connection found. +- Delete icon: Remove the address form the list. + +![Ratel UI](/images/ratel/ratel_ui.png) + + +## URL Input box + +In this box you add a valid Dgraph Alpha address. When you click on `Connect` Ratel will try to stablish a connection with the cluster. After Ratel has established a connection (all icons are green), click on the `Continue` button. + +Under the input box you have tree icons which gives you the status of the connection. + +- Network Access: Uses an "Energy Plug" icon. +- Server Health: Uses a "Heart" icon. +- Logging in: a "lock" icon. + +:::tip +To connect to a standard Dgraph instance, you only need to click on `Connect`. There's a specific section to [login using ACL](#acl-account) ([Enterprise feature](/admin/enterprise-features/access-control-lists/)). +::: + +## Cluster Settings + +### ACL Account + +The ACL Account login is necessary only when you have ACL features enabled. + +:::note +The default password for a cluster started from scratch is `password` and the user is `groot`. +::: + +### Dgraph Zero + +If you use a custom address for Zero instance, you should inform here. + +### Extra Settings + +- Query timeout (seconds): This is a timeout for queries and mutations. If the operation takes too long, it will be dropped after `X` seconds in the cluster. +- Dgraph Cloud API Key: Used to access Dgraph Cloud services. + diff --git a/docusaurus-docs/docs-ratel/console.md b/docusaurus-docs/docs-ratel/console.md new file mode 100644 index 00000000..f3b28e55 --- /dev/null +++ b/docusaurus-docs/docs-ratel/console.md @@ -0,0 +1,43 @@ +--- +title: Console +--- + +## Query Panel + +You can execute two kinds of operations: Queries and Mutations. The history section holds either queries or mutations. + +![Ratel Console](/images/ratel/ratel_console.png) + +### Query + +On this panel, you can only run DQL (former GraphQL+-). You can use `#` to comment on something. +You also have the DQL Variable; see more at [DQL](/dql/). + +### Mutation + +On this panel, you can run RDF and JSON mutations. + +## Result Panel + +### Graph + +On this tab you can view the query results in a Graph format. This allows you to visualize the Nodes and their relations. + +### JSON + +On this tab you have the JSON response from the cluster. The actual data comes in the `data` key. +You also have the `extensions` key which returns `server_latency`, `txn`, and other metrics. + +### Request + +On this tab you have the actual request sent to the cluster. + +### Geo + +On this tab you can visualize a query that provides Geodata. + +:::note +Your objects must contain a predicate or alias named `location` to use the geo display. +To show a label, use a predicate or alias named `name`. +::: + diff --git a/docusaurus-docs/docs-ratel/index.md b/docusaurus-docs/docs-ratel/index.md index 70dfe1ae..6fd7ebaa 100644 --- a/docusaurus-docs/docs-ratel/index.md +++ b/docusaurus-docs/docs-ratel/index.md @@ -5,13 +5,12 @@ description: Ratel is a web-based tool for data visualization and cluster manage Ratel is a web-based tool for data visualization and cluster management designed to work with Dgraph and DQL. You can use it for: -* **Connect to backend** - Manage cluster settings and connections -* **Run DQL queries** - Execute queries and mutations with result visualization -* **Manage schema** - Update or replace DQL schemas and drop data -* **Monitor cluster** - View cluster nodes and manage node operations -* **Backup operations** - Create and restore database backups +* **[Connect to backend](connection)**: Manage cluster settings and connections +* **[Run DQL queries](console)**: Execute queries and mutations with result visualization +* **[Manage schema](schema)**: Update or replace DQL schemas and drop data +* **[Monitor cluster](cluster)**: View cluster nodes and manage node operations +* **[Backup operations](backups)**: Create and restore database backups ## Getting Started Clone and build Ratel using the [instructions from the Ratel repository on GitHub](https://github.com/dgraph-io/ratel/blob/master/INSTRUCTIONS.md). - diff --git a/docusaurus-docs/docs-ratel/schema.md b/docusaurus-docs/docs-ratel/schema.md new file mode 100644 index 00000000..c7f9f4a9 --- /dev/null +++ b/docusaurus-docs/docs-ratel/schema.md @@ -0,0 +1,36 @@ +--- +title: Schema +--- + +## Predicate Section + +You have two panels: +- The left panel with a predicate list in a table. The table consists of three columns, the name of the `predicate`, the `type`, and the `indices`. +- On the right panel you have the properties related to the selection from the right panel. + +![Ratel Schema](/images/ratel/ratel_schema.png) + +You can add new predicates using the `Add Predicate` button on the top left corner. In the dialog box, you can add the name of the predicate, the type, language if required, and its indices. + +In the predicate's `Properties` panel you can edit the type, the indexation, or drop it. In the tab `Samples & Statistics` you have information about your dataset. It has a sample sneak-peek of the predicate's data. + +## Type Definition Section + +You have two panels: +- The left panel provides you a table with a type list, with two columns: `Type` and `Field Count`. +- On the right panel you have the properties related to the selected `Type`. + +![Ratel Schema](/images/ratel/ratel_schema_types.png) + + You can add new Types using the `Add Type` button on the top left corner. In the dialog box, you can add the name of the Type and select which predicates belong to this Type. The list will show only existing predicates. + +## Bulk Edit Schema & Drop Data + +With this option you can edit the schema directly in plain-text. You also have the option to Drop the data. + +:::note +There are two ways to drop the DB. The default option will drop the data but keep the `Schema`. To drop everything you have to select the check-box `Also drop Schema and Types`. +::: + +![Ratel Schema](/images/ratel/ratel_schema_bulk.png) + diff --git a/docusaurus-docs/docs/admin/data-compression.md b/docusaurus-docs/docs/admin/data-compression.md new file mode 100644 index 00000000..6dedf633 --- /dev/null +++ b/docusaurus-docs/docs/admin/data-compression.md @@ -0,0 +1,39 @@ +--- +title: Data compression on Disk +--- + +Dgraph Alpha lets you configure the compression of data on disk using the `--badger` +superflag's `compression` option. You can choose between the +[Snappy](https://github.com/golang/snappy) and +[Zstandard](https://github.com/facebook/zstd) compression algorithms, or choose +not to compress data on disk. + +:::noteThis option replaces the `--badger.compression_level` and +`--badger.compression` options used in earlier Dgraph versions. ::: + +The following disk compression settings are available: + +| Setting | Notes | +|------------|----------------------------------------------------------------------| +|`none` | Data on disk will not be compressed. | +|`zstd:level`| Use Zstandard compression, with a compression level specified (1-3). | +|`snappy` | Use Snappy compression (this is the default value). | + +For example, you could choose to use Zstandard compression with the highest +compression level using the following command: + +```sh +dgraph alpha --badger compression=zstd:3 +``` + +This compression setting (Zstandard, level 3) is more CPU-intensive than other +options, but offers the highest compression ratio. To change back to the default +compression setting, use the following command: + + +```sh +dgraph alpha --badger compression=snappy +``` + +Using this compression setting (Snappy) provides a good compromise between the +need for a high compression ratio and efficient CPU usage. diff --git a/docusaurus-docs/docs/admin/dgraph-administration.md b/docusaurus-docs/docs/admin/dgraph-administration.md new file mode 100644 index 00000000..7db563f1 --- /dev/null +++ b/docusaurus-docs/docs/admin/dgraph-administration.md @@ -0,0 +1,116 @@ +--- +title: Dgraph Administration +--- + +Dgraph Alpha exposes various administrative endpoints over HTTP and GraphQL for operations like data export and cluster shutdown. + +For security configuration including authentication, IP whitelisting, and token-based access control, see [Admin Endpoint Security](security/admin-endpoint-security). + +## Restrict Mutation Operations + +By default, you can perform mutation operations for any predicate. +If the predicate in mutation doesn't exist in the schema, +the predicate gets added to the schema with an appropriate +[Dgraph Type](/dgraph-overview/dql/dql-schema). + +You can use `--limit "mutations=disallow"` to disable all mutations, +which is set to `allow` by default. + +```sh +dgraph alpha --limit "mutations=disallow;" +``` + +Enforce a strict schema by setting `--limit "mutations=strict`. +This mode allows mutations only on predicates already in the schema. +Before performing a mutation on a predicate that doesn't exist in the schema, +you need to perform an alter operation with that predicate and its schema type. + +```sh +dgraph alpha --limit "mutations=strict; mutations-nquad=1000000" +``` + +## Secure Alter Operations + +Alter operations allow clients to apply schema updates and drop predicates from the database. By default, all clients are allowed to perform alter operations. + +You can secure alter operations using token authentication. See [Admin Endpoint Security](security/admin-endpoint-security#securing-alter-operations) for detailed configuration instructions. + +For enterprise-grade access control, see [Access Control Lists](/dgraph-overview/admin/enterprise-features/access-control-lists). + +## Export database + +As an `Administrator` you might want to export data from Dgraph to: + +* backup your data +* move the data to another Dgraph instance +* share your data + +For more information about exporting your database, see [Export data](/dgraph-overview/migration/export-data) + +## Shut down database + +A clean exit of a single Dgraph node is initiated by running the following GraphQL mutation on /admin endpoint. +:::warningThis won't work if called from outside the server where Dgraph is running. +You can specify a list or range of whitelisted IP addresses from which shutdown or other admin operations +can be initiated using the `--security` superflag's `whitelist` option on `dgraph alpha`. +::: + +```graphql +mutation { + shutdown { + response { + message + code + } + } +} +``` + +This stops the Alpha on which the command is executed and not the entire cluster. + +## Delete database + +To drop all data, you could send a `DropAll` request via `/alter` endpoint. + +Alternatively, you could: + +* [Shutdown Dgraph](#shut-down-database) and wait for all writes to complete, +* Delete (maybe do an export first) the `p` and `w` directories, then +* Restart Dgraph. + +## Upgrade database + +Doing periodic exports is always a good idea. This is particularly useful if you wish to upgrade Dgraph or reconfigure the sharding of a cluster. The following are the right steps to safely export and restart. + +1. Start an [export](#export-database) +2. Ensure it is successful +3. [Shutdown Dgraph](#shut-down-database) and wait for all writes to complete +4. Start a new Dgraph cluster using new data directories (this can be done by passing empty directories to the options `-p` and `-w` for Alphas and `-w` for Zeros) +5. Reload the data via [bulk loader](/dgraph-overview/migration/bulk-loader) +6. Verify the correctness of the new Dgraph cluster. If all looks good, you can delete the old directories (export serves as an insurance) + +These steps are necessary because Dgraph's underlying data format could have changed, and reloading the export avoids encoding incompatibilities. + +Blue-green deployment is a common approach to minimize downtime during the upgrade process. +This approach involves switching your application to read-only mode. To make sure that no mutations are executed during the maintenance window you can +do a rolling restart of all your Alpha using the option `--mutations disallow` when you restart the Alpha nodes. This will ensure the cluster is in read-only mode. + +At this point your application can still read from the old cluster and you can perform the steps 4. and 5. described above. +When the new cluster (that uses the upgraded version of Dgraph) is up and running, you can point your application to it, and shutdown the old cluster. + +### Enterprise Upgrade Notes + +For enterprise customers, specific upgrade procedures may be required depending on your Dgraph version. The general upgrade process uses [binary backups](/dgraph-overview/admin/enterprise-features/binary-backups) for data migration: + +1. Use binary backup to export data from the old cluster +2. Ensure the backup is successful +3. [Shutdown Dgraph](#shut-down-database) and wait for all writes to complete +4. Upgrade the `dgraph` binary to the target version +5. Restore from the backups using the upgraded `dgraph` binary +6. Start a new Dgraph cluster using the restored data directories +7. Run any required upgrade commands using `dgraph upgrade` if needed + +:::note +For specific version-to-version upgrade instructions, consult the release notes for your target Dgraph version. Always test upgrades in a non-production environment first. +::: + diff --git a/docusaurus-docs/docs/admin/dgraph-alpha.md b/docusaurus-docs/docs/admin/dgraph-alpha.md new file mode 100644 index 00000000..06ac7590 --- /dev/null +++ b/docusaurus-docs/docs/admin/dgraph-alpha.md @@ -0,0 +1,105 @@ +--- +title: Dgraph Alpha API Reference +--- + +Dgraph Alpha is the data plane that stores graph data and serves queries. This reference documents Alpha's HTTP and GraphQL endpoints for health monitoring and basic operations. + +For architectural overview, see [Architecture](/dgraph-overview/installation/dgraph-architecture). For comprehensive admin operations like backup, export, and shutdown, see [Dgraph Administration](/dgraph-overview/admin/dgraph-administration). + +## Configuration + +By default, Alpha listens on `localhost` for admin actions (the loopback address only accessible from the same machine). Use the `--bindall=true` option to bind to `0.0.0.0` and allow external connections. + +:::tipSet max file descriptors to a high value like 10000 if you are going to load a lot of data.::: + +## HTTP Endpoints + +Alpha exposes HTTP endpoints on port `8080` for monitoring and administration: + +### Health Check + +**`/health?all`** - Returns information about the health of all servers in the cluster. + +The `/health` endpoint provides basic cluster health status. Use `/health?all` to get detailed information about all nodes. + +## GraphQL Admin API + +The `/admin` GraphQL endpoint provides comprehensive cluster management capabilities. + +### Querying Cluster Health + +You can query the `/admin` GraphQL endpoint to get detailed health information about all servers in the cluster: + +```graphql +query { + health { + instance + address + version + status + lastEcho + group + uptime + ongoing + indexing + } +} +``` + +**Response Example:** + +```json +{ + "data": { + "health": [ + { + "instance": "zero", + "address": "localhost:5080", + "version": "v2.0.0-rc1", + "status": "healthy", + "lastEcho": 1582827418, + "group": "0", + "uptime": 1504 + }, + { + "instance": "alpha", + "address": "localhost:7080", + "version": "v2.0.0-rc1", + "status": "healthy", + "lastEcho": 1582827418, + "group": "1", + "uptime": 1505, + "ongoing": ["opIndexing"], + "indexing": ["name", "age"] + } + ] + } +} +``` + +**Response Fields:** + +- **`instance`**: Name of the instance. Either `alpha` or `zero`. +- **`status`**: Health status of the instance. Either `healthy` or `unhealthy`. +- **`version`**: Version of Dgraph running the Alpha or Zero server. +- **`uptime`**: Time in nanoseconds since the Alpha or Zero server is up and running. +- **`address`**: IP_ADDRESS:PORT of the instance. +- **`group`**: Group assigned based on the replication factor. +- **`lastEcho`**: Last time, in Unix epoch, when the instance was contacted by another Alpha or Zero server. +- **`ongoing`**: List of ongoing operations in the background. +- **`indexing`**: List of predicates for which indexes are built in the background. + +:::note +The same information (except `ongoing` and `indexing`) is available from the `/health` and `/health?all` HTTP endpoints. +::: + +## Additional Admin Operations + +For comprehensive administrative operations including: +- Backup and restore +- Data export +- Cluster shutdown and draining +- Schema management +- Security and authentication + +See [Dgraph Administration](/dgraph-overview/admin/dgraph-administration). diff --git a/docusaurus-docs/docs/admin/dgraph-zero.md b/docusaurus-docs/docs/admin/dgraph-zero.md new file mode 100644 index 00000000..b4a9587a --- /dev/null +++ b/docusaurus-docs/docs/admin/dgraph-zero.md @@ -0,0 +1,282 @@ +--- +title: Dgraph Zero API Reference +--- + +Dgraph Zero is the control plane that manages cluster coordination, membership, and data distribution. This reference documents Zero's HTTP API endpoints and administrative operations. + +For architectural overview, see [Architecture](/dgraph-overview/installation/dgraph-architecture). For comprehensive administrative operations like backup, export, and shutdown, see [Dgraph Administration](/dgraph-overview/admin/dgraph-administration). + +## Configuration + +Before you can run `dgraph alpha`, you must run at least one `dgraph zero` node. +You can see the options available for `dgraph zero` by using the following command: + +```bash +dgraph zero --help +``` + +### Replication Factor + +The `--replicas` option controls the replication factor: the number +of replicas per data shard, including the original shard. For consensus, the +replication factor must be set to an odd number, and the following error will +occur if it is set to an even number (for example, `2`): + +```nix +ERROR: Number of replicas must be odd for consensus. Found: 2 +``` + +When a new Alpha joins the cluster, it is assigned to a group based on the replication factor. If the replication factor is set to `1`, then each Alpha +node will serve a different group. If the replication factor is set to `3` and +you then launch six Alpha nodes, the first three Alpha nodes will serve group 1 +and next three nodes will serve group 2. Zero monitors the space occupied by predicates in each group and moves predicates between groups as-needed to +rebalance the cluster. + +## Endpoints + +Like Alpha, Zero also exposes HTTP on port 6080 (plus any ports specified by +`--port_offset`). You can query this port using a **GET** request to access the +following endpoints: + +* `/state` returns information about the nodes that are part of the cluster. This +includes information about the size of predicates and which groups they belong +to. +* `/assign?what=uids&num=100` allocates a range of UIDs specified +by the `num` argument, and returns a JSON map containing the `startId` and + `endId` that defines the range of UIDs (inclusive). This UID range can be +safely assigned externally to new nodes during data ingestion. +* `/assign?what=timestamps&num=100` requests timestamps from Zero. This is +useful to "fast forward" the state of the Zero node when starting from a +postings directory that already has commits higher than Zero's leased timestamp. +* `/removeNode?id=3&group=2` removes a dead Zero or Alpha node. When a replica +node goes offline and can't be recovered, you can remove it and add a new node to th +quorum. To remove dead Zero nodes, pass `group=0` and the id of the Zero node to +this endpoint. + +:::note +Before using the API ensure that the node is down and ensure that it doesn't +come back up ever again. Do not use the same `idx` of a node that was removed +earlier. +::: + +* `/moveTablet?tablet=name&group=2` Moves a tablet to a group. Zero already +rebalances shards every 8 mins, but this endpoint can be used to force move a +tablet. + +You can also use the following **POST** endpoint on HTTP port 6080: + +* `/enterpriseLicense` applies an enterprise license to the +cluster by supplying it as part of the body. + +### More About the /state Endpoint + +The `/state` endpoint of Dgraph Zero returns a JSON document of the current +group membership info, which includes the following: + +- Instances which are part of the cluster. +- Number of instances in Zero group and each Alpha groups. +- Current leader of each group. +- Predicates that belong to a group. +- Estimated size in bytes of each predicate. +- Enterprise license information. +- Max Leased transaction ID. +- Max Leased UID. +- CID (Cluster ID). + +Here’s an example of JSON for a cluster with three Alpha nodes and three Zero +nodes returned from the `/state` endpoint: + +```json +{ + "counter": "22", + "groups": { + "1": { + "members": { + "1": { + "id": "1", + "groupId": 1, + "addr": "alpha2:7082", + "leader": true, + "amDead": false, + "lastUpdate": "1603350485", + "clusterInfoOnly": false, + "forceGroupId": false + }, + "2": { + "id": "2", + "groupId": 1, + "addr": "alpha1:7080", + "leader": false, + "amDead": false, + "lastUpdate": "0", + "clusterInfoOnly": false, + "forceGroupId": false + }, + "3": { + "id": "3", + "groupId": 1, + "addr": "alpha3:7083", + "leader": false, + "amDead": false, + "lastUpdate": "0", + "clusterInfoOnly": false, + "forceGroupId": false + } + }, + "tablets": { + "dgraph.cors": { + "groupId": 1, + "predicate": "dgraph.cors", + "force": false, + "space": "0", + "remove": false, + "readOnly": false, + "moveTs": "0" + }, + "dgraph.graphql.schema": { + "groupId": 1, + "predicate": "dgraph.graphql.schema", + "force": false, + "space": "0", + "remove": false, + "readOnly": false, + "moveTs": "0" + }, + "dgraph.graphql.schema_created_at": { + "groupId": 1, + "predicate": "dgraph.graphql.schema_created_at", + "force": false, + "space": "0", + "remove": false, + "readOnly": false, + "moveTs": "0" + }, + "dgraph.graphql.schema_history": { + "groupId": 1, + "predicate": "dgraph.graphql.schema_history", + "force": false, + "space": "0", + "remove": false, + "readOnly": false, + "moveTs": "0" + }, + "dgraph.graphql.xid": { + "groupId": 1, + "predicate": "dgraph.graphql.xid", + "force": false, + "space": "0", + "remove": false, + "readOnly": false, + "moveTs": "0" + }, + "dgraph.type": { + "groupId": 1, + "predicate": "dgraph.type", + "force": false, + "space": "0", + "remove": false, + "readOnly": false, + "moveTs": "0" + } + }, + "snapshotTs": "22", + "checksum": "18099480229465877561" + } + }, + "zeros": { + "1": { + "id": "1", + "groupId": 0, + "addr": "zero1:5080", + "leader": true, + "amDead": false, + "lastUpdate": "0", + "clusterInfoOnly": false, + "forceGroupId": false + }, + "2": { + "id": "2", + "groupId": 0, + "addr": "zero2:5082", + "leader": false, + "amDead": false, + "lastUpdate": "0", + "clusterInfoOnly": false, + "forceGroupId": false + }, + "3": { + "id": "3", + "groupId": 0, + "addr": "zero3:5083", + "leader": false, + "amDead": false, + "lastUpdate": "0", + "clusterInfoOnly": false, + "forceGroupId": false + } + }, + "maxUID": "10000", + "maxTxnTs": "10000", + "maxRaftId": "3", + "removed": [], + "cid": "2571d268-b574-41fa-ae5e-a6f8da175d6d", + "license": { + "user": "", + "maxNodes": "18446744073709551615", + "expiryTs": "1605942487", + "enabled": true + } +} +``` + +This JSON provides information that includes the following, with node members +shown with their node name and HTTP port number: + +- Group 1 members: + - alpha2:7082, id: 1, leader + - alpha1:7080, id: 2 + - alpha3:7083, id: 3 +- Group 0 members (Dgraph Zero nodes) + - zero1:5080, id: 1, leader + - zero2:5082, id: 2 + - zero3:5083, id: 3 +- `maxUID` + - The current maximum lease of UIDs used for blank node UID assignment. + - This increments in batches of 10,000 IDs. Once the maximum lease is + reached, another 10,000 IDs are leased. In the event that the Zero + leader is lost, the new leader starts a new lease from + `maxUID`+1. Any UIDs lost between these leases will never be used + for blank-node UID assignment. + - An admin can use the Zero endpoint HTTP GET `/assign?what=uids&num=1000` to + reserve a range of UIDs (in this case, 1000) to use externally. Zero will + **never** use these UIDs for blank node UID assignment, so the user can + use the range to assign UIDs manually to their own data sets. +- `maxTxnTs` + - The current maximum lease of transaction timestamps used to hand out + start timestamps and commit timestamps. This increments in batches of + 10,000 IDs. After the max lease is reached, another 10,000 IDs are + leased. If the Zero leader is lost, then the new leader starts a new + lease from `maxTxnTs`+1 . Any lost transaction IDs between these + leases will never be used. + - An admin can use the Zero endpoint HTTP GET + `/assign?what=timestamps&num=1000` to increase the current transaction + timestamp (in this case, by 1000). This is mainly useful in + special-case scenarios; for example, using an existing `-p directory` to + create a fresh cluster to be able to query the latest data in the DB. +- `maxRaftId` + - The number of Zeros available to serve as a leader node. Used by the + [RAFT](/design-concepts/raft/) consensus algorithm. +- `CID` + - This is a unique UUID representing the *cluster-ID* for this cluster. It + is generated during the initial DB startup and is retained across + restarts. +- Enterprise license + - Enabled + - `maxNodes`: unlimited + - License expiration, shown in seconds since the Unix epoch. + +:::note +The terms "tablet", "predicate", and "edge" are currently synonymous. In future, +Dgraph might improve data scalability to shard a predicate into separate tablets +that can be assigned to different groups. +::: diff --git a/docusaurus-docs/docs/admin/enterprise-features/access-control-lists.md b/docusaurus-docs/docs/admin/enterprise-features/access-control-lists.md new file mode 100644 index 00000000..ccd9e11d --- /dev/null +++ b/docusaurus-docs/docs/admin/enterprise-features/access-control-lists.md @@ -0,0 +1,783 @@ +--- +title: Access Control Lists +--- + + +Access Control List (ACL) provides access protection to your data stored in +Dgraph. When the ACL feature is enabled, a client, e.g. [dgo](https://github.com/dgraph-io/dgo) or [dgraph4j](https://github.com/dgraph-io/dgraph4j), must +authenticate with a username and password before executing any transactions, and +is only allowed to access the data permitted by the ACL rules. + +## Enable enterprise ACL feature + +1. Generate a data encryption key that is 32 bytes long: + + ```bash + tr -dc 'a-zA-Z0-9' < /dev/urandom | dd bs=1 count=32 of=enc_key_file + ``` + :::note + On a macOS you may have to use `LC_CTYPE=C; tr -dc 'a-zA-Z0-9' < /dev/urandom | dd bs=1 count=32 of=enc_key_file`. + ::: + +1. To view the secret key value use `cat enc_key_file`. +1. Create a plain text file named `hmac_secret_file`, and store a randomly generated `` in it. The secret + key is used by Dgraph Alpha nodes to sign JSON Web Tokens (JWT). + + ```bash + echo '' > hmac_secret_file + ``` + +1. Start all the Dgraph Alpha nodes in your cluster with the option `--acl secret-file="/path/to/secret"`, and + make sure that they are all using the same secret key file created in Step 1. Alternatively, you can [store the secret in Hashicorp Vault](#storing-acl-secret-in-hashicorp-vault). + + + ```bash + dgraph alpha --acl "secret-file=/path/to/secret" --security "whitelist=" + ``` + +:::tip +In addition to command line flags `--acl secret-file="/path/to/secret"` and `--security "whitelist="`, you can also configure Dgraph using a configuration file (`config.yaml`, `config.json`). You can also use environment variables, i.e. `DGRAPH_ALPHA_ACL="secret-file="` and `DGRAPH_ALPHA_SECURITY="whitelist="`. See [Config](/dgraph-overview/cli/config) for more information in general about configuring Dgraph. +::: + +### Example using Dgraph CLI + +Here is an example that starts a Dgraph Zero node and a Dgraph Alpha node with the ACL feature turned on. You can run these commands in a separate terminal tab: + +```bash +## Create ACL secret key file with 32 ASCII characters +echo '' > hmac_secret_file + +## Start Dgraph Zero in different terminal tab or window +dgraph zero --my=localhost:5080 --replicas 1 --raft idx=1 + +## Start Dgraph Alpha in different terminal tab or window +dgraph alpha --my=localhost:7080 --zero=localhost:5080 \ + --acl secret-file="./hmac_secret_file" \ + --security whitelist="10.0.0.0/8,172.0.0.0/8,192.168.0.0/16" +``` + +### Example using Docker Compose + +If you are using [Docker Compose](https://docs.docker.com/compose/), you can set up a sample Dgraph cluster using this `docker-compose.yaml` configuration: + +```yaml +version: '3.5' +services: + alpha1: + command: dgraph alpha --my=alpha1:7080 --zero=zero1:5080 + container_name: alpha1 + environment: + DGRAPH_ALPHA_ACL: secret-file=/dgraph/acl/hmac_secret_file + DGRAPH_ALPHA_SECURITY: whitelist=10.0.0.0/8,172.0.0.0/8,192.168.0.0/16 + image: dgraph/dgraph:{{< version >}} + ports: + - "8080:8080" + volumes: + - ./hmac_secret_file:/dgraph/acl/hmac_secret_file + zero1: + command: dgraph zero --my=zero1:5080 --replicas 1 --raft idx=1 + container_name: zero1 + image: dgraph/dgraph:{{< version >}} +``` + +You can run this with: + +```bash +## Create ACL secret key file with 32 ASCII characters +echo '' > hmac_secret_file + +## Start Docker Compose +docker-compose up +``` + +### Example using Kubernetes Helm Chart + +If you deploy Dgraph on [Kubernetes](https://kubernetes.io/), you can configure the ACL feature using the [Dgraph Helm Chart](https://artifacthub.io/packages/helm/dgraph/dgraph). + +The first step is to encode the secret with base64: + +```bash +## encode a secret without newline character and copy to the clipboard +printf '' | base64 +``` + +The next step is that we need to create a [Helm](https://helm.sh/) chart config values file, e.g. `dgraph_values.yaml`. We want to copy the results of encoded secret as paste this into the `hmac_secret_file` like the example below: + +```yaml +## dgraph_values.yaml +alpha: + acl: + enabled: true + file: + hmac_secret_file: + configFile: + config.yaml: | + acl: + secret_file: /dgraph/acl/hmac_secret_file + security: + whitelist: 10.0.0.0/8,172.0.0.0/8,192.168.0.0/16 +``` + +Now with the Helm chart config values created, we can deploy Dgraph: + +```bash +helm repo add "dgraph" https://charts.dgraph.io +helm install "my-release" --values ./dgraph_values.yaml dgraph/dgraph +``` + +## Storing ACL secret in Hashicorp Vault + +You can save the ACL secret on [Hashicorp Vault](https://www.vaultproject.io/) server instead of saving the secret on the local file system. + +### Configuring a Hashicorp Vault Server + +Do the following to set up on the [Hashicorp Vault](https://www.vaultproject.io/) server for use with Dgraph: + +1. Ensure that the Vault server is accessible from Dgraph Alpha and configured using URL `http://fqdn[ip]:port`. +2. Enable [AppRole Auth method](https://www.vaultproject.io/docs/auth/approle) and enable [KV Secrets Engine](https://www.vaultproject.io/docs/secrets/kv). +3. Save the 256-bits (32 ASCII characters) long ACL secret in a KV Secret path ([K/V Version 1](https://www.vaultproject.io/docs/secrets/kv/kv-v1) or [K/V Version 2](https://www.vaultproject.io/docs/secrets/kv/kv-v2)). For example, you can upload this below to KV Secrets Engine Version 2 path of `secret/data/dgraph/alpha`: + ```json + { + "options": { + "cas": 0 + }, + "data": { + "hmac_secret_file": "" + } + } + ``` +4. Create or use a role with an attached policy that grants access to the secret. For example, the following policy would grant access to `secret/data/dgraph/alpha`: + ```hcl + path "secret/data/dgraph/*" { + capabilities = [ "read", "update" ] + } + ``` +5. Using the `role_id` generated from the previous step, create a corresponding `secret_id`, and copy the `role_id` and `secret_id` over to local files, like `./dgraph/vault/role_id` and `./dgraph/vault/secret_id`, that will be used by Dgraph Alpha nodes. + +:::tip +To learn more about the above steps, see [Dgraph Vault Integration: Docker](https://github.com/dgraph-io/dgraph/blob/main/contrib/config/vault/docker/README.md). +::: + +:::note +The key format for the `acl-field` option can be defined using `acl-format` with the values `base64` (default) or `raw`. +::: + +### Example using Dgraph CLI with Hashicorp Vault configuration + +Here is an example of using Dgraph with a Vault server that holds the secret key: + +```bash +## Start Dgraph Zero in different terminal tab or window +dgraph zero --my=localhost:5080 --replicas 1 --raft "idx=1" + +## Start Dgraph Alpha in different terminal tab or window +dgraph alpha \ + --security whitelist="10.0.0.0/8,172.0.0.0/8,192.168.0.0/16" \ + --vault addr="http://localhost:8200";acl-field="hmac_secret_file";acl-format="raw";path="secret/data/dgraph/alpha";role-id-file="./role_id";secret-id-file="./secret_id" + +``` + +### Example using Docker Compose with Hashicorp Vault configuration + +If you are using [Docker Compose](https://docs.docker.com/compose/), you can set up a sample Dgraph cluster using this `docker-compose.yaml` configuration: + +```yaml +version: '3.5' +services: + alpha1: + command: dgraph alpha --my=alpha1:7080 --zero=zero1:5080 + container_name: alpha1 + environment: + DGRAPH_ALPHA_VAULT: addr=http://vault:8200;acl-field=hmac_secret_file;acl-format=raw;path=secret/data/dgraph/alpha;role-id-file=/dgraph/vault/role_id;secret-id-file=/dgraph/vault/secret_id + DGRAPH_ALPHA_SECURITY: whitelist=10.0.0.0/8,172.0.0.0/8,192.168.0.0/16 + image: dgraph/dgraph:{{< version >}} + ports: + - "8080:8080" + volumes: + - ./role_id:/dgraph/vault/role_id + - ./secret_id:/dgraph/vault/secret_id + zero1: + command: dgraph zero --my=zero1:5080 --replicas 1 --raft idx=1 + container_name: zero1 + image: dgraph/dgraph:{{< version >}} +``` + +In this example, you will also need to configure a [Hashicorp Vault](https://www.vaultproject.io/) service named `vault` in the above `docker-compose.yaml`, and then run through this sequence: + +1. Launch `vault` service: `docker-compose up --detach vault` +2. Unseal and Configure `vault` with the required prerequisites (see [Configuring a Hashicorp Vault Server](#configuring-a-hashicorp-vault-server)). +3. Save role-id and secret-id as `./role_id` and `secret_id` +4. Launch Dgraph Zero and Alpha: `docker-compose up --detach` + + +### Example using Kubernetes Helm Chart with Hashicorp Vault configuration + +If you deploy Dgraph on [Kubernetes](https://kubernetes.io/), you can configure the ACL feature using the [Dgraph Helm Chart](https://artifacthub.io/packages/helm/dgraph/dgraph). + +The next step is that we need to create a [Helm](https://helm.sh/) chart config values file, such as `dgraph_values.yaml`. + +```yaml +## dgraph_values.yaml +alpha: + configFile: + config.yaml: | + vault: + addr: http://vault-headless.default.svc.cluster.local:9200 + acl_field: hmac_secret_file + acl_format: raw + path: secret/data/dgraph/alpha + role_id_file: /dgraph/vault/role_id + secret_id_file: /dgraph/vault/secret_id + security: + whitelist: 10.0.0.0/8,172.0.0.0/8,192.168.0.0/16‘ +``` + +To set up this chart, the [Hashicorp Vault](https://www.vaultproject.io/) service must be installed and available. You can use the [Hashicorp Vault Helm Chart](https://www.vaultproject.io/docs/platform/k8s/helm) and configure it to [auto unseal](https://learn.hashicorp.com/collections/vault/auto-unseal) so that the service is immediately available after deployment. + +## Accessing secured Dgraph + +Before managing users and groups and configuring ACL rules, you will need to login in order to get a token that is needed to access Dgraph. You will use this token with the `X-Dgraph-AccessToken` header field. + +### Logging In + +To login, send a POST request to `/admin` with the GraphQL mutation. For example, to log in as the root user `groot`: + +```graphql +mutation { + login(userId: "groot", password: "password") { + response { + accessJWT + refreshJWT + } + } +} +``` + +Response: + +```json +{ + "data": { + "accessJWT": "", + "refreshJWT": "" + } +} +``` + +#### Access Token + +The response includes the access and refresh JWTs which are used for the authentication itself and refreshing the authentication token, respectively. Save the JWTs from the response for later HTTP requests. + +You can run authenticated requests by passing the access JWT to a request via the `X-Dgraph-AccessToken` header. Add the header `X-Dgraph-AccessToken` with the `accessJWT` value which you got in the login response in the GraphQL tool which you're using to make the request. + +For example, if you were using the GraphQL Playground, you would add this in the headers section: + +```json +{ "X-Dgraph-AccessToken" : "" } +``` + +And in the main code section, you can add a mutation, such as: + +```graphql +mutation { + addUser(input: [{ name: "alice", password: "whiterabbit" }]) { + user { + name + } + } +} +``` + +#### Refresh Token + +The refresh token can be used in the `/admin` POST GraphQL mutation to receive new access and refresh JWTs, which is useful to renew the authenticated session once the ACL access TTL expires (controlled by Dgraph Alpha's flag `--acl_access_ttl` which is set to 6h0m0s by default). + +```graphql +mutation { + login( + userId: "groot" + password: "password" + refreshToken: "" + ) { + response { + accessJWT + refreshJWT + } + } +} +``` + + +### Login using a client + +With ACL configured, you need to log in as a user to access data protected by ACL rules. You can do this using the client's `.login(USER_ID, USER_PASSWORD)` method. + +Here are some code samples using a client: + +* **Go** ([dgo client](https://github.com/dgraph-io/dgo)): example `acl_over_tls_test.go` ([here](https://github.com/dgraph-io/dgraph/blob/main/tlstest/acl/acl_over_tls_test.go)) +* **Java** ([dgraph4j](https://github.com/dgraph-io/dgraph4j)): example `AclTest.java` ([here](https://github.com/dgraph-io/dgraph4j/blob/master/src/test/java/io/dgraph/AclTest.java)) + + +### Login using curl + +If you are using `curl` from the command line, you can use the following with the above [login mutation](#logging-in) saved to `login.graphql`: + +```bash +## Login and save results +JSON_RESULT=$(curl http://localhost:8080/admin --silent --request POST \ + --header "Content-Type: application/graphql" \ + --upload-file login.graphql +) + +## Extracting a token using GNU grep, perl, the silver searcher, or jq +TOKEN=$(grep -oP '(?<=accessJWT":")[^"]*' <<< $JSON_RESULT) +TOKEN=$(perl -wln -e '/(?<=accessJWT":")[^"]*/ and print $&;' <<< $JSON_RESULT) +TOKEN=$(ag -o '(?<=accessJWT":")[^"]*' <<< $JSON_RESULT) +TOKEN=$(jq -r '.data.login.response.accessJWT' <<< $JSON_RESULT) + +## Run a GraphQL query using the token +curl http://localhost:8080/admin --silent --request POST \ + --header "Content-Type: application/graphql" \ + --header "X-Dgraph-AccessToken: $TOKEN" \ + --upload-file some_other_query.graphql +``` + +:::tip +Parsing JSON results on the command line can be challenging, so you will find some alternatives to extract the desired data using popular tools, such as [the silver searcher](https://github.com/ggreer/the_silver_searcher) or the json query tool [jq](https://stedolan.github.io/jq), embedded in this snippet. +::: + +## User and group administration + +The default configuration comes with a user `groot`, with a password of `password`. The `groot` user is part of administrative group called `guardians` that have access to everything. You can add more users to the `guardians` group as needed. + +### Reset the root password + +You can reset the root password like this example: + +```graphql +mutation { + updateUser( + input: { + filter: { name: { eq: "groot" } } + set: { password: "$up3r$3cr3t1337p@$$w0rd" } + } + ) { + user { + name + } + } +} +``` + +### Create a regular user + +To create a user `alice`, with password `whiterabbit`, you should execute the following GraphQL mutation: + +```graphql +mutation { + addUser(input: [{name: "alice", password: "whiterabbit"}]) { + user { + name + } + } +} +``` + +### Create a group + +To create a group `dev`, you should execute: + +```graphql +mutation { + addGroup(input: [{name: "dev"}]) { + group { + name + users { + name + } + } + } +} +``` + +### Assign a user to a group + +To assign the user `alice` to both the group `dev` and the group `sre`, the mutation should be + +```graphql +mutation { + updateUser( + input: { + filter: { name: { eq: "alice" } } + set: { groups: [{ name: "dev" }, { name: "sre" }] } + } + ) { + user { + name + groups { + name + } + } + } +} +``` + +### Remove a user from a group + +To remove `alice` from the `dev` group, the mutation should be + +```graphql +mutation { + updateUser( + input: { + filter: { name: { eq: "alice" } } + remove: { groups: [{ name: "dev" }] } + } + ) { + user { + name + groups { + name + } + } + } +} +``` + +### Delete a User + +To delete the user `alice`, you should execute + +```graphql +mutation { + deleteUser(filter: { name: { eq: "alice" } }) { + msg + numUids + } +} +``` + +### Delete a Group + +To delete the group `sre`, the mutation should be + +```graphql +mutation { + deleteGroup(filter: { name: { eq: "sre" } }) { + msg + numUids + } +} +``` + +## ACL rules configuration + +You can set up ACL rules using the Dgraph Ratel UI or by using a GraphQL tool, such as [Insomnia](https://insomnia.rest/), [GraphQL Playground](https://github.com/prisma/graphql-playground), [GraphiQL](https://github.com/skevy/graphiql-app), etc. You can set the permissions on a predicate for the group using a pattern similar to the UNIX file permission conventions shown below: + +| Permission | Value | Binary | +|-----------------------------|-------|--------| +| `READ` | `4` | `100` | +| `WRITE` | `2` | `010` | +| `MODIFY` | `1` | `001` | +| `READ` + `WRITE` | `6` | `110` | +| `READ` + `WRITE` + `MODIFY` | `7` | `111` | + +These permissions represent the following: + +* `READ` - group has permission to read read the predicate +* `WRITE` - group has permission to write or update the predicate +* `MODIFY` - group has permission to change the predicate's schema + +The following examples will grant full permissions to predicates to the group `dev`. If there are no rules for +a predicate, the default behavior is to block all (`READ`, `WRITE` and `MODIFY`) operations. + +### Assign predicate permissions to a group + +Here we assign a permission rule for the `friend` predicate to the group: + +```graphql +mutation { + updateGroup( + input: { + filter: { name: { eq: "dev" } } + set: { rules: [{ predicate: "friend", permission: 7 }] } + } + ) { + group { + name + rules { + permission + predicate + } + } + } +} +``` + +In case you have [reverse edges](/dgraph-overview/dql-schema#reverse-predicates), they have to be given the permission to the group as well + +```graphql +mutation { + updateGroup( + input: { + filter: { name: { eq: "dev" } } + set: { rules: [{ predicate: "~friend", permission: 7 }] } + } + ) { + group { + name + rules { + permission + predicate + } + } + } +} +``` + + +In some cases, it may be desirable to manage permissions for all the predicates together rather than individual ones. This can be achieved using the `dgraph.all` keyword. + +The following example provides `read+write` access to the `dev` group over all the predicates of a given namespace using the `dgraph.all` keyword. + +```graphql +mutation { + updateGroup( + input: { + filter: { name: { eq: "dev" } } + set: { rules: [{ predicate: "dgraph.all", permission: 6 }] } + } + ) { + group { + name + rules { + permission + predicate + } + } + } +} +``` + +:::note +The permissions assigned to a group `dev` is the union of permissions from `dgraph.all` and permissions for a specific predicate `name`. So if the group is assigned `READ` permission for `dgraph.all` and `WRITE` permission for predicate `name` it will have both, `READ` and `WRITE` permissions for the `name` predicate, as a result of the union. +::: + + +### Remove a rule from a group + +To remove a rule or rules from the group `dev`, the mutation should be: + +```graphql +mutation { + updateGroup( + input: { + filter: { name: { eq: "dev" } } + remove: { rules: [ "friend", "~friend" ] } + } + ) { + group { + name + rules { + predicate + permission + } + } + } +} +``` + +## Querying users and groups + +You can set up ACL rules using the Dgraph Ratel UI or by using a GraphQL tool, such as [Insomnia](https://insomnia.rest/), [GraphQL Playground](https://github.com/prisma/graphql-playground), [GraphiQL](https://github.com/skevy/graphiql-app), etc. The permissions can be set on a predicate for the group using using pattern similar to the UNIX file permission convention: + +You can query and get information for users and groups. These sections show output that will show the user `alice` and the `dev` group along with rules for `friend` and `~friend` predicates. + +### Query for users + +Let's query for the user `alice`: + +```graphql +query { + queryUser(filter: { name: { eq: "alice" } }) { + name + groups { + name + } + } +} +``` + +The output should show the groups that the user has been added to, e.g. + +```json +{ + "data": { + "queryUser": [ + { + "name": "alice", + "groups": [ + { + "name": "dev" + } + ] + } + ] + } +} +``` + +### Get user information + +We can obtain information about a user with the following query: + +```graphql +query { + getUser(name: "alice") { + name + groups { + name + } + } +} +``` + +The output should show the groups that the user has been added to, e.g. + +```json +{ + "data": { + "getUser": { + "name": "alice", + "groups": [ + { + "name": "dev" + } + ] + } + } +} +``` + +### Query for groups + +Let's query for the `dev` group: + +```graphql +query { + queryGroup(filter: { name: { eq: "dev" } }) { + name + users { + name + } + rules { + permission + predicate + } + } +} +``` + +The output should include the users in the group as well as the permissions, the +group's ACL rules, e.g. + +```json +{ + "data": { + "queryGroup": [ + { + "name": "dev", + "users": [ + { + "name": "alice" + } + ], + "rules": [ + { + "permission": 7, + "predicate": "friend" + }, + { + "permission": 7, + "predicate": "~friend" + } + ] + } + ] + } +} +``` + +### Get group information + +To check the `dev` group information: + +```graphql +query { + getGroup(name: "dev") { + name + users { + name + } + rules { + permission + predicate + } + } +} +``` + +The output should include the users in the group as well as the permissions, the +group's ACL rules, e.g. + +```json +{ + "data": { + "getGroup": { + "name": "dev", + "users": [ + { + "name": "alice" + } + ], + "rules": [ + { + "permission": 7, + "predicate": "friend" + }, + { + "permission": 7, + "predicate": "~friend" + } + ] + } + } +} +``` + +## Reset Groot Password + +If you have forgotten the password to the `groot` user, then you may reset the `groot` password (or +the password for any user) by following these steps. + +1. Stop Dgraph Alpha. +2. Turn off ACLs by removing the `--acl_hmac_secret` config flag in the Alpha config. This leaves + the Alpha open with no ACL rules, so be sure to restrict access, including stopping request + traffic to this Alpha. +3. Start Dgraph Alpha. +4. Connect to Dgraph Alpha using Ratel and run the following upsert mutation to update the `groot` password + to `newpassword` (choose your own secure password): + ```graphql + upsert { + query { + groot as var(func: eq(dgraph.xid, "groot")) + } + mutation { + set { + uid(groot) "newpassword" . + } + } + } + ``` +5. Restart Dgraph Alpha with ACLs turned on by setting the `--acl_hmac_secret` config flag. +6. Login as groot with your new password. diff --git a/docusaurus-docs/docs/admin/enterprise-features/binary-backups.mdx b/docusaurus-docs/docs/admin/enterprise-features/binary-backups.mdx new file mode 100644 index 00000000..f501b732 --- /dev/null +++ b/docusaurus-docs/docs/admin/enterprise-features/binary-backups.mdx @@ -0,0 +1,737 @@ +--- +title: Binary Backups +--- + +:::note +This feature was introduced in [v1.1.0](https://github.com/dgraph-io/dgraph/releases/tag/v1.1.0). +::: + +Binary backups are full backups of Dgraph that are backed up directly to cloud +storage such as Amazon S3 or any Minio storage backend. Backups can also be +saved to an on-premise network file system shared by all Alpha servers. These +backups can be used to restore a new Dgraph cluster to the previous state from +the backup. Unlike [exports](/dgraph-overview/dgraph-administration#export-database), +binary backups are Dgraph-specific and can be used to restore a cluster quickly. + + +## Configure Backup + +Backup is only enabled when a valid license file is supplied to a Zero server OR within the thirty +(30) day trial period, no exceptions. + + +### Configure Amazon S3 Credentials + +To backup to Amazon S3, the Alpha server must have the following AWS credentials set +via environment variables: + + Environment Variable | Description + -------------------- | ----------- + `AWS_ACCESS_KEY_ID` or `AWS_ACCESS_KEY` | AWS access key with permissions to write to the destination bucket. + `AWS_SECRET_ACCESS_KEY` or `AWS_SECRET_KEY` | AWS access key with permissions to write to the destination bucket. + `AWS_SESSION_TOKEN` | AWS session token (if required). + + +Starting with [v20.07.0](https://github.com/dgraph-io/dgraph/releases/tag/v20.07.0) if the system has access to the S3 bucket, you no longer need to explicitly include these environment variables. + +In AWS, you can accomplish this by doing the following: +1. Create an [IAM Role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) with an IAM Policy that grants access to the S3 bucket. +2. Depending on whether you want to grant access to an EC2 instance, or to a pod running on [EKS](https://aws.amazon.com/eks/), you can do one of these options: + * [Instance Profile](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) can pass the IAM Role to an EC2 Instance + * [IAM Roles for Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) to attach the IAM Role to a running EC2 Instance + * [IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) to associate the IAM Role to a [Kubernetes Service Account](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/). + + +### Configure Minio Credentials + +To backup to Minio, the Alpha server must have the following Minio credentials set via +environment variables: + + Environment Variable | Description + -------------------- | ----------- + `MINIO_ACCESS_KEY` | Minio access key with permissions to write to the destination bucket. + `MINIO_SECRET_KEY` | Minio secret key with permissions to write to the destination bucket. + + +## Create a Backup + +To create a backup, make an HTTP POST request to `/admin` to a Dgraph +Alpha HTTP address and port (default, "localhost:8080"). Like with all `/admin` +endpoints, this is only accessible on the same machine as the Alpha server unless +[whitelisted for admin operations](/dgraph-overview/dgraph-administration#whitelisting-admin-operations). +You can look at `BackupInput` given below for all the possible options. + +```graphql +input BackupInput { + + """ + Destination for the backup: e.g. Minio or S3 bucket. + """ + destination: String! + + """ + Access key credential for the destination. + """ + accessKey: String + + """ + Secret key credential for the destination. + """ + secretKey: String + + """ + AWS session token, if required. + """ + sessionToken: String + + """ + Set to true to allow backing up to S3 or Minio bucket that requires no credentials. + """ + anonymous: Boolean + + """ + Force a full backup instead of an incremental backup. + """ + forceFull: Boolean + } +``` + +Execute the following mutation on /admin endpoint using any GraphQL compatible client like Insomnia, GraphQL Playground or GraphiQL. + +### Backup to Amazon S3 + +```graphql +mutation { + backup(input: {destination: "s3://s3.us-west-2.amazonaws.com/"}) { + response { + message + code + } + taskId + } +} +``` + + +### Backup to Minio + +```graphql +mutation { + backup(input: {destination: "minio://127.0.0.1:9000/"}) { + response { + message + code + } + taskId + } +} +``` + +### Backup using a MinIO Gateway + +#### Azure Blob Storage + +You can use [Azure Blob Storage](https://azure.microsoft.com/services/storage/blobs/) through the [MinIO Azure Gateway](https://docs.min.io/docs/minio-gateway-for-azure.html). You need to configure a [storage account](https://docs.microsoft.com/azure/storage/common/storage-account-overview) and a[container](https://docs.microsoft.com/azure/storage/blobs/storage-blobs-introduction#containers) to organize the blobs. + +For MinIO configuration, you will need to [retrieve storage accounts keys](https://docs.microsoft.com/azure/storage/common/storage-account-keys-manage). The [MinIO Azure Gateway](https://docs.min.io/docs/minio-gateway-for-azure.html) will use `MINIO_ACCESS_KEY` and `MINIO_SECRET_KEY` to correspond to Azure Storage Account `AccountName` and `AccountKey`. + +Once you have the `AccountName` and `AccountKey`, you can access Azure Blob Storage locally using one of these methods: + +* Run [MinIO Azure Gateway](https://docs.min.io/docs/minio-gateway-for-azure.html) using Docker + ```bash + docker run --publish 9000:9000 --name gateway \ + --env "MINIO_ACCESS_KEY=" \ + --env "MINIO_SECRET_KEY=" \ + minio/minio gateway azure + ``` +* Run [MinIO Azure Gateway](https://docs.min.io/docs/minio-gateway-for-azure.html) using the MinIO Binary + ```bash + export MINIO_ACCESS_KEY="" + export MINIO_SECRET_KEY="" + minio gateway azure + ``` + +#### Google Cloud Storage + +You can use [Google Cloud Storage](https://cloud.google.com/storage) through the [MinIO GCS Gateway](https://docs.min.io/docs/minio-gateway-for-gcs.html). You will need to [create storage buckets](https://cloud.google.com/storage/docs/creating-buckets), create a Service Account key for GCS and get a credentials file. See [Create a Service Account key](https://github.com/minio/minio/blob/master/docs/gateway/gcs.md#11-create-a-service-account-ey-for-gcs-and-get-the-credentials-file) for further information. + +Once you have a `credentials.json`, you can access GCS locally using one of these methods: + +* Run [MinIO GCS Gateway](https://docs.min.io/docs/minio-gateway-for-gcs.html) using Docker + ```bash + docker run --publish 9000:9000 --name gateway \ + --volume /path/to/credentials.json:/credentials.json \ + --env "GOOGLE_APPLICATION_CREDENTIALS=/credentials.json" \ + --env "MINIO_ACCESS_KEY=minioaccountname" \ + --env "MINIO_SECRET_KEY=minioaccountkey" \ + minio/minio gateway gcs + ``` +* Run [MinIO GCS Gateway](https://docs.min.io/docs/minio-gateway-for-gcs.html) using the MinIO Binary + ```bash + export GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json + export MINIO_ACCESS_KEY=minioaccesskey + export MINIO_SECRET_KEY=miniosecretkey + minio gateway gcs + ``` + +#### Test Using MinIO Browser + +MinIO Gateway comes with an embedded web-based object browser. After using one of the aforementioned methods to run the MinIO Gateway, you can test that MinIO Gateway is running, open a web browser, navigate to http://127.0.0.1:9000, and ensure that the object browser is displayed and can access the remote object storage. + +### Disabling HTTPS for S3 and Minio backups + +By default, Dgraph assumes the destination bucket is using HTTPS. If that is not +the case, the backup will fail. To send a backup to a bucket using HTTP +(insecure), set the query parameter `secure=false` with the destination +endpoint in the `destination` field: + +```graphql +mutation { + backup(input: {destination: "minio://127.0.0.1:9000/?secure=false"}) { + response { + message + code + } + taskId + } +} +``` + + +### Overriding Credentials + +The `accessKey`, `secretKey`, and `sessionToken` parameters can be used to +override the default credentials. Please note that unless HTTPS is used, the +credentials will be transmitted in plain text so use these parameters with +discretion. The environment variables should be used by default but these +options are there to allow for greater flexibility. + +The `anonymous` parameter can be set to "true" to allow backing up to S3 or +MinIO bucket that requires no credentials (i.e a public bucket). + + +### Backup to NFS + +```graphql +mutation { + backup(input: {destination: "/path/to/local/directory"}) { + response { + message + code + } + taskId + } +} +``` + +A local filesystem will work only if all the Alpha servers have access to it (e.g all +the Alpha servers are running on the same filesystems as a normal process, not a Docker +container). However, an NFS is recommended so that backups work seamlessly across +multiple machines and/or containers. + + +### Forcing a Full Backup + +By default, an incremental backup will be created if there's another full backup +in the specified location. To create a full backup, set the `forceFull` field +to `true` in the mutation. Each series of backups can be +identified by a unique ID and each backup in the series is assigned a monotonically increasing number. The following section contains more details on how to restore a backup series. + +```graphql +mutation { + backup(input: {destination: "/path/to/local/directory", forceFull: true}) { + response { + message + code + } + taskId + } +} +``` + +## Listing Backups + +The GraphQL admin interface includes the `listBackups` endpoint that lists the +backups in the given location along with the information included in the +`manifest.json` file. An example of a request to list the backups in the +`/data/backup` location is included below: + +``` +query backup() { + listBackups(input: {location: "/data/backup"}) { + backupId + backupNum + encrypted + groups { + groupId + predicates + } + path + since + type + } +} +``` + +The listBackups input can contain the following fields. Only the `location` +field is required. + +``` +input ListBackupsInput { + """ + Destination for the backup: e.g. Minio or S3 bucket. + """ + location: String! + + """ + Access key credential for the destination. + """ + accessKey: String + + """ + Secret key credential for the destination. + """ + secretKey: String + + """ + AWS session token, if required. + """ + sessionToken: String + + """ + Whether the destination doesn't require credentials (e.g. S3 public bucket). + """ + anonymous: Boolean +} +``` + +The output is of `[Manifest]` type. The fields inside the `Manifest` type corresponds to the fields in the `manifest.json` file. + +``` +type Manifest { + """ + Unique ID for the backup series. + """ + backupId: String + + """ + Number of this backup within the backup series. The full backup always has a value of one. + """ + backupNum: Int + + """ + Whether this backup was encrypted. + """ + encrypted: Boolean + + """ + List of groups and the predicates they store in this backup. + """ + groups: [BackupGroup] + + """ + Path to the manifest file. + """ + path: String + + """ + The timestamp at which this backup was taken. The next incremental backup will + start from this timestamp. + """ + since: Int + + """ + The type of backup, either full or incremental. + """ + type: String +} + +type BackupGroup { + """ + The ID of the cluster group. + """ + groupId: Int + + """ + List of predicates assigned to the group. + """ + predicates: [String] +} +``` + +### Automating Backups + +You can use the provided endpoint to automate backups, however, there are a few +things to keep in mind. + +- The requests should go to a single Alpha server. The Alpha server that receives the request +is responsible for looking up the location and determining from which point the +backup should resume. + +- Versions of Dgraph starting with v20.07.1, v20.03.5, and v1.2.7 have a way to +block multiple backup requests going to the same Alpha server. For previous versions, +keep this in mind and avoid sending multiple requests at once. This is for the +same reason as the point above. + +- You can have multiple backup series in the same location although the feature +still works if you set up a unique location for each series. + +## Export Backups + +The `export_backup` tool lets you convert a binary backup into an exported folder. + +If you need to upgrade between two major Dgraph versions that have incompatible changes, +you can use the `export_backup` tool to apply changes (either to the exported `.rdf` file or to the schema file), +and then import back the dataset into the new Dgraph version. + +### Using exports instead of binary backups + + + +For example, for the following schema: + +``` +name: string . +friend: uid . +``` + +becomes + +``` +name: string . +friend: [uid] . +``` + +Because you have to do a modification to the schema itself, you need an export. +You can use the `export_backup` tool to convert your binary backup into an export folder. + +### Binary Backups and Exports folders + +A Binary Backup directory has the following structure: + +```sh +backup +├── dgraph.20210102.204757.509 +│ └── r9-g1.backup +├── dgraph.20210104.224757.707 +│ └── r9-g1.backup +└── manifest.json +``` + +An Export directory has the following structure: + +```sh +dgraph.r9.u0108.1621 +├── g01.gql_schema.gz +├── g01.rdf.gz +└── g01.schema.gz +``` + +If you want to do the changes cited above, you need to edit the `g01.schema.gz` file. + +### Benefits + +With the `export_backup` tool you get the speed benefit from the binary backups, which are faster than regular exports. +So if you have a big dataset, you don't need to wait a long time until an export is completed. +Instead, just take a binary backup and convert it to an export only when needed. + +### How to use it + +Ensure that you have created a binary backup. The directory tree of a binary backup usually looks like this: + +```sh +backup +├── dgraph.20210104.224757.709 +│ └── r9-g1.backup +└── manifest.json +``` + +Then run the following command: + +```sh +dgraph export_backup --location "" --destination "" +``` + +Once completed you will find your export folder (in this case `dgraph.r9.u0108.1621`). +The tree of the directory should look like this: + +```sh +dgraph.r9.u0108.1621 +├── g01.gql_schema.gz +├── g01.rdf.gz +└── g01.schema.gz +``` + +## Encrypted Backups + +Encrypted backups are an Enterprise feature that are available from `v20.03.1` and `v1.2.3` and allow you to encrypt your backups and restore them. This +documentation describes how to implement encryption into your binary backups. + +Starting with` v20.07.0`, we also added support for Encrypted Backups using encryption keys sitting on [Hashicorp Vault](https://www.vaultproject.io/). + + +### New `Encrypted` flag in manifest.json + +A new `Encrypted` flag is added to the `manifest.json`. This flag indicates if the corresponding binary backup is encrypted or not. To be backward compatible, if this flag is absent, it is presumed that the corresponding backup is not encrypted. + +For a series of full and incremental backups, per the current design, we don't allow the mixing of encrypted and unencrypted backups. As a result, all full and incremental backups in a series must either be encrypted fully or not at all. This flag helps with checking this restriction. + + +### AES And Chaining with Gzip + +If encryption is turned on an Alpha server, then we use the configured encryption key. The key size (16, 24, 32 bytes) determines AES-128/192/256 cipher chosen. We use the AES CTR mode. Currently, the binary backup is already gzipped. With encryption, we will encrypt the gzipped data. + +During **backup**: the 16 bytes IV is prepended to the Cipher-text data after encryption. + + +### Backup + +Backup is an online tool, meaning it is available when Dgraph Alpha server is running. For encrypted backups, the Dgraph Alpha server must be configured with the `--encryption key-file=value`. Starting with v20.07.0, the Dgraph Alpha server can alternatively be configured to interface with a [Hashicorp Vault](https://www.vaultproject.io/) server to obtain keys. + +:::note +`encryption key-file=value` flag or `vault` superflag was used for encryption-at-rest and will now also be used for encrypted backups. +::: + +## Online restore + +To restore from a backup to a live cluster, execute a mutation on the `/admin` +endpoint with the following format: + +```graphql +mutation{ + restore(input:{ + location: "/path/to/backup/directory", + backupId: "id_of_backup_to_restore" + }){ + message + code + } +} +``` + +Online restores only require you to send this request. The `UID` and timestamp +leases are updated accordingly. The latest backup to be restored should contain +the same number of groups in its `manifest.json` file as the cluster to which it +is being restored. + +:::note +When using backups made from a Dgraph cluster that uses encryption (so backups are encrypted), +you need to use the same key from that original cluster when doing a restore process. +Dgraph's [Encryption at Rest](/dgraph-overview/admin/enterprise-features/encryption-at-rest) uses a symmetric-key +algorithm where the same key is used for both encryption and decryption, so the encryption key from that +cluster is needed for the restore process. +::: + +Online restore can be performed from Amazon S3 / Minio or from a local directory. Below is the documentation for the fields inside `RestoreInput` that can be passed into +the mutation. + +```graphql +input RestoreInput { + + """ + Destination for the backup: e.g. Minio or S3 bucket. + """ + location: String! + + """ + Backup ID of the backup series to restore. This ID is included in the manifest.json file. + If missing, it defaults to the latest series. + """ + backupId: String + + """ + Number of the backup within the backup series to be restored. Backups with a greater value + will be ignored. If the value is zero or is missing, the entire series will be restored. + """ + backupNum: Int + + """ + Path to the key file needed to decrypt the backup. This file should be accessible + by all Alpha servers in the group. The backup will be written using the encryption key + with which the cluster was started, which might be different than this key. + """ + encryptionKeyFile: String + + """ + Vault server address where the key is stored. This server must be accessible + by all Alpha servers in the group. Default "http://localhost:8200". + """ + vaultAddr: String + + """ + Path to the Vault RoleID file. + """ + vaultRoleIDFile: String + + """ + Path to the Vault SecretID file. + """ + vaultSecretIDFile: String + + """ + Vault kv store path where the key lives. Default "secret/data/dgraph". + """ + vaultPath: String + + """ + Vault kv store field whose value is the key. Default "enc_key". + """ + vaultField: String + + """ + Vault kv store field's format. Must be "base64" or "raw". Default "base64". + """ + vaultFormat: String + + """ + Access key credential for the destination. + """ + accessKey: String + + """ + Secret key credential for the destination. + """ + secretKey: String + + """ + AWS session token, if required. + """ + sessionToken: String + + """ + Set to true to allow backing up to S3 or Minio bucket that requires no credentials. + """ + anonymous: Boolean + + """ + All the backups with num >= incrementalFrom will be restored. + """ + incrementalFrom: Int + + """ + If `isPartial` is set to true then the cluster is kept in draining mode after + restore to ensure that the database is not corrupted by any mutations or tablet moves in + between two restores. + """ + isPartial: Boolean + +} +``` + +Restore requests returns immediately without waiting for the operation to finish. + +## Incremental Restore + +You can use incremental restore to restore a set of incremental backups on a cluster with a part of the backup already restored. +The system does not accept any mutations made between a normal restore and an incremental restore, because the cluster is in the draining mode. When the cluster is in a draining mode only an admin request to bring the cluster back to normal mode is accepted. + +Note: Before you start an incremental restore ensure that you set `isPartial` to `true` in your normal restore. + +To incrementally restore from a backup to a live cluster, execute a mutation on the `/admin` +endpoint with the following format: + +```graphql +mutation{ + restore(input:{ + incrementalFrom:"incremental_backup_from", + location: "/path/to/backup/directory", + backupId: "id_of_backup_to_restore"' + }){ + message + code + } +} +``` + +## Namespace Aware Restore + +You can use namespace-aware restore to restore a single namespace from a backup that contains multiple namespaces. +The created restore will be available in the default namespace. For example, if you restore namespace 2 using the +restoreTenant API, then after the restore operation is completed, the cluster will have only the default namespace, +and it will contain the data from namespace 2. Namespace aware restore supports incremental restore. + +To restore from a backup to a live cluster, execute a mutation on the `/admin` endpoint with the following format: + +```graphql +mutation { + restoreTenant( + input: { + restoreInput: { + incrementalFrom: "incremental_backup_from" + location: "/path/to/backup/directory" + backupId: "id_of_backup_to_restore" + } + fromNamespace: namespaceToBeRestored + } + ) { + message + code + } +} +``` + +Documentation of restoreTenant inputs + +``` +input RestoreTenantInput { + """ + restoreInput contains fields that are required for the restore operation, + i.e., location, backupId, and backupNum + """ + restoreInput: RestoreInput + + """ + fromNamespace is the namespace of the tenant that needs to be restored into namespace 0 of the new cluster. + """ + fromNamespace: Int! +} +``` + +## Offline restore (DEPRECATED) + +The restore utility is now a standalone tool. A new flag, `--encryption key-file=value`, is now part of the restore utility, so you can use it to decrypt the backup. The file specified using this flag must contain the same key that was used for encryption during backup. Alternatively, starting with `v20.07.0`, the `vault` superflag can be used to restore a backup. + +You can use the `dgraph restore` command to restore the postings directory from a previously-created backup to a directory in the local filesystem. This command restores a backup to a new Dgraph cluster, so it is not designed to restore a backup to a Dgraph cluster that is currently live. During a restore operation, a new Dgraph Zero server might run to fully restore the backup state. + +You can use the `--location` (`-l`) flag to specify a source URI with Dgraph backup objects. This URI supports all the schemes used for backup. + +You can use the `--postings` (`-p`) flag to set the directory where restored posting directories are saved. This directory contains a posting directory for each group in the restored backup. + +You can use the `--zero` (`-z`) flag to specify a Dgraph Zero server address to update the start timestamp and UID lease using the restored version. If no Dgraph Zero server address is passed, the command will complain unless you set the value of the `--force_zero` flag to false. If do not pass a zero value to this command, you need to manually update the timestamp and UID lease using the Dgraph Zero server's HTTP 'assign' endpoint. The updated values should be those that are printed near the end of the command's output. + +You use the `--backup_id` optional flag to specify the ID of the backup series to restore. A backup series consists of a full backup and all of the incremental backups built on top of it. Each time a new full backup is created, a new backup series with a different ID is started. The backup series ID is stored in each `manifest.json` file stored in each backup folder. + +You use the `--encryption key-file=value` flag in cases where you took the backup in an encrypted cluster. The string for this flag must point to the location of the same key file used to run the cluster. + +You use the `--vault` [superflag](/dgraph-overview/cli/superflags) to specify the [Hashicorp Vault](https://www.vaultproject.io/) server address (`addr`), role id (`role-id-file`), secret id (`secret-id-file`) and the field that contains the encryption key (`enc-field`) that was used to encrypt the backup. + +The restore feature creates a cluster with as many groups as the original cluster had at the time of the last backup. For each group, `dgraph restore` creates a posting directory (`p`) that corresponds to the backup group ID. For example, a backup for Dgraph Alpha group 2 would have the name `.../r32-g2.backup` and would be loaded to posting directory `p2`. + +After running the restore command, the directories inside the `postings` directory need to be manually copied over to the machines/containers running the Dgraph Alpha servers before running the `dgraph alpha` command. For example, in a database cluster with two Dgraph Alpha groups and one replica each, `p1` needs to be moved to the location of the first Dgraph Alpha node and `p2` needs to be moved to the location of the second Dgraph Alpha node. + +By default, Dgraph will look for a posting directory with the name `p`, so make sure to rename the directories after moving them. You can also use the `-p` option of the `dgraph alpha` command to specify a different path from the default. + +### Restore from Amazon S3 + +```sh +dgraph restore --postings "/var/db/dgraph" --location "s3://s3..amazonaws.com/" +``` + +### Restore from MinIO + +```sh +dgraph restore --postings "/var/db/dgraph" --location "minio://127.0.0.1:9000/" +``` + +### Restore from Local Directory or NFS + +```sh +dgraph restore --postings "/var/db/dgraph" --location "/var/backups/dgraph" +``` + +### Restore and Update Timestamp + +Specify the Zero server address and port for the new cluster with `--zero`/`-z` to update the timestamp. +```sh +dgraph restore --postings "/var/db/dgraph" --location "/var/backups/dgraph" --zero "localhost:5080" +``` diff --git a/docusaurus-docs/docs/admin/enterprise-features/change-data-capture.md b/docusaurus-docs/docs/admin/enterprise-features/change-data-capture.md new file mode 100644 index 00000000..7468e61f --- /dev/null +++ b/docusaurus-docs/docs/admin/enterprise-features/change-data-capture.md @@ -0,0 +1,123 @@ +--- +title: Change Data Capture +description: With a Dgraph enterprise license, you can use Dgraph's change data capture (CDC) capabilities to track data changes over time. +--- + +With a Dgraph [enterprise license](/dgraph-overview/admin/enterprise-features/license), +you can use change data capture (CDC) to track data changes over time; including +mutations and drops in your database. Dgraph's CDC implementation lets you use +Kafka or a local file as a *sink* to store CDC updates streamed by Dgraph Alpha +leader nodes. + +When CDC is enabled, Dgraph streams events for all `set` and `delete` mutations, +except those that affect password fields; along with any drop events. Live +Loader events are recorded by CDC, but Bulk Loader events aren't. + +CDC events are based on changes to Raft logs. So, if the sink is not reachable +by the Alpha leader node, then Raft logs expand as events are collected on +that node until the sink is available again. You should enable CDC on all Dgraph +Alpha nodes to avoid interruptions in the stream of CDC events. + +## Enable CDC with Kafka sink + +Kafka records CDC events under the `dgraph-cdc` topic. The topic must be created before events +are sent to the broker. To enable CDC and sink events to Kafka, start Dgraph Alpha with the `--cdc` +command and the sub-options shown below, as follows: + +```bash +dgraph alpha --cdc "kafka=kafka-hostname:port; sasl-user=tstark; sasl-password=m3Ta11ic" +``` + +If you use Kafka on the localhost without SASL authentication, you can just +specify the hostname and port used by Kafka, as follows: + +```bash +dgraph alpha --cdc "localhost:9092" +``` + +If the Kafka cluster to which you are connecting requires TLS, the `ca-cert` option is required. +Note that this certificate can be self-signed. + +## Enable CDC with file sink + +To enable CDC and sink results to a local unencrypted file, start Dgraph Alpha +with the `--cdc` command and the sub-option shown below, as follows: + +```bash +dgraph alpha --cdc "file=local-file-path" +``` + +## CDC command reference + +The `--cdc` option includes several sub-options that you can use to configure +CDC when running the `dgraph alpha` command: + +| Sub-option | Example `dgraph alpha` command option | Notes | +|------------------|-------------------------------------------|----------------------------------------------------------------------| +| `tls` | `--tls=false` | boolean flag to enable/disable TLS while connecting to Kafka. | +| `ca-cert` | `--cdc "ca-cert=/cert-dir/ca.crt"` | Path and filename of the CA root certificate used for TLS encryption, if not specified, Dgraph uses system certs if `tls=true` | +| `client-cert` | `--cdc "client-cert=/c-certs/client.crt"` | Path and filename of the client certificate used for TLS encryption | +| `client-key` | `--cdc "client-cert=/c-certs/client.key"` | Path and filename of the client certificate private key | +| `file` | `--cdc "file=/sink-dir/cdc-file"` | Path and filename of a local file sink (alternative to Kafka sink) | +| `kafka` | `--cdc "kafka=kafka-hostname; sasl-user=tstark; sasl-password=m3Ta11ic"` | Hostname(s) of the Kafka hosts. May require authentication using the `sasl-user` and `sasl-password` sub-options | +| `sasl-user` | `--cdc "kafka=kafka-hostname; sasl-user=tstark; sasl-password=m3Ta11ic"` | SASL username for Kafka. Requires the `kafka` and `sasl-password` sub-options | +| `sasl-password` | `--cdc "kafka=kafka-hostname; sasl-user=tstark; sasl-password=m3Ta11ic"` | SASL password for Kafka. Requires the `kafka` and `sasl-username` sub-options | +| `sasl-mechanism` | `--cdc "kafka=kafka-hostname; sasl-mechanism=PLAIN"` | The SASL mechanism for Kafka (PLAIN, SCRAM-SHA-256 or SCRAM-SHA-512). The default is PLAIN | + +## CDC data format + + +CDC events are in JSON format. Most CDC events look like the following example: + +```json +{ "key": "0", "value": {"meta":{"commit_ts":5},"type":"mutation","event":{"operation":"set","uid":2,"attr":"counter.val","value":1,"value_type":"int"}}} +``` + +The `Meta.Commit_Ts` value (shown above as `"meta":{"commit_ts":5}`) will increase +with each CDC event, so you can use this value to find duplicate events if those +occur due to Raft leadership changes in your Dgraph Alpha group. + +### Mutation event examples + +A set mutation event updating `counter.val` to 10 would look like the following: + +```json +{"meta":{"commit_ts":29},"type":"mutation","event":{"operation":"set","uid":3,"attr":"counter.val","value":10,"value_type":"int"}} +``` + +Similarly, a delete mutation event that removes all values for the `Author.name` +field for a specified node would look like the following: + +```json +{"meta":{"commit_ts":44},"type":"mutation","event":{"operation":"del","uid":7,"attr":"Author.name","value":"_STAR_ALL","value_type":"default"}} +``` + +### Drop event examples + +CDC drop events look like the following example event for "drop all": + +```json +{"meta":{"commit_ts":13},"type":"drop","event":{"operation":"all"}} +``` + +The `operation` field specifies which drop operation (`attribute`, `type`, +specified `data`, or `all` data) is tracked by the CDC event. + +## CDC and multi-tenancy + +When you enable CDC in a [multi-tenant environment](/dgraph-overview/admin/enterprise-features/multitenancy), +CDC events streamed to Kafka are distributed by the Kafka client. It distributes +events between the available Kafka partitions based on their multi-tenancy +namespace. + +## Known limitations + +CDC has the following known limitations: + +* CDC events do not track old values that are updated or removed by mutation or + drop operations; only new values are tracked +* CDC does not currently track schema updates +* You can only configure or enable CDC when starting Alpha nodes using the + `dgraph alpha` command +* If a node crashes or the leadership of a Raft group changes, CDC might have + duplicate events, but no data loss diff --git a/docusaurus-docs/docs/admin/enterprise-features/encryption-at-rest.md b/docusaurus-docs/docs/admin/enterprise-features/encryption-at-rest.md new file mode 100644 index 00000000..6ef48802 --- /dev/null +++ b/docusaurus-docs/docs/admin/enterprise-features/encryption-at-rest.md @@ -0,0 +1,137 @@ +--- +title: Encryption at Rest +--- + +:::note +This feature was introduced in [v1.1.1](https://github.com/dgraph-io/dgraph/releases/tag/v1.1.1). +For migrating unencrypted data to a new Dgraph cluster with encryption enabled, you need to +[export the database](/dgraph-overview/dgraph-administration#export-database) and [import data](/dgraph-overview/migration/import-data), +preferably using the [bulk loader](/dgraph-overview/migration/bulk-loader). +::: + +Encryption at rest refers to the encryption of data that is stored physically in any +digital form. It ensures that sensitive data on disks is not readable by any user +or application without a valid key that is required for decryption. Dgraph provides +encryption at rest as an enterprise feature. If encryption is enabled, Dgraph uses +[Advanced Encryption Standard (AES)](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) +algorithm to encrypt the data and secure it. + +Prior to v20.07.0, the encryption key file must be present on the local file system. +Starting with [v20.07.0](https://github.com/dgraph-io/dgraph/releases/tag/v20.07.0), +we have added support for encryption keys sitting on Vault servers. This allows an alternate +way to configure the encryption keys needed for encrypting the data at rest. + +## Set up Encryption + +To enable encryption, we need to pass a file that stores the data encryption key with the option +`--encryption key-file=value`. The key size must be 16, 24, or 32 bytes long, and the key size determines +the corresponding block size for AES encryption ,i.e. AES-128, AES-192, and AES-256, respectively. + +You can use the following command to create the encryption key file (set _count_ to the +desired key size): + +```bash +tr -dc 'a-zA-Z0-9' < /dev/urandom | dd bs=1 count=32 of=enc_key_file +``` +:::note +On a macOS you may have to use `LC_CTYPE=C; tr -dc 'a-zA-Z0-9' < /dev/urandom | dd bs=1 count=32 of=enc_key_file`. To view the key use `cat enc_key_file`. +::: +Alternatively, you can use the `--vault` [superflag's](/dgraph-overview/cli/superflags) options to enable encryption, as [explained below](#example-using-dgraph-cli-with-hashicorp-vault-configuration). + +## Turn on Encryption + +Here is an example that starts one Zero server and one Alpha server with the encryption feature turned on: + +```bash +dgraph zero --my="localhost:5080" --replicas 1 --raft "idx=1" +dgraph alpha --encryption key-file="./enc_key_file" --my="localhost:7080" --zero="localhost:5080" +``` + +If multiple Alpha nodes are part of the cluster, you will need to pass the `--encryption key-file` option to +each of the Alphas. + +Once an Alpha has encryption enabled, the encryption key must be provided in order to start the Alpha server. +If the Alpha server restarts, the `--encryption key-file` option must be set along with the key in order to +restart successfully. + +### Storing encryption key secret in Hashicorp Vault + +You can save the encryption key secret in [Hashicorp Vault](https://www.vaultproject.io/) K/V Secret instead of as file on Dgraph Alpha. + +To use [Hashicorp Vault](https://www.vaultproject.io/), meet the following prerequisites for the Vault Server. + +1. Ensure that the Vault server is accessible from Dgraph Alpha and configured using URL `http://fqdn[ip]:port`. +2. Enable [AppRole Auth method](https://www.vaultproject.io/docs/auth/approle) and enable [KV Secrets Engine](https://www.vaultproject.io/docs/secrets/kv). +3. Save the value of the key (16, 24, or 32 bytes long) that Dgraph Alpha will use in a KV Secret path ([K/V Version 1](https://www.vaultproject.io/docs/secrets/kv/kv-v1) or [K/V Version 2](https://www.vaultproject.io/docs/secrets/kv/kv-v2)). For example, you can upload this below to KV Secrets Engine Version 2 path of `secret/data/dgraph/alpha`: + ```json + { + "options": { + "cas": 0 + }, + "data": { + "enc_key": "qIvHQBVUpzsOp74PmMJjHAOfwIA1e6zm%" + } + } + ``` +4. Create or use a role with an attached policy that grants access to the secret. For example, the following policy would grant access to `secret/data/dgraph/alpha`: + ```hcl + path "secret/data/dgraph/*" { + capabilities = [ "read", "update" ] + } + ``` +5. Using the `role_id` generated from the previous step, create a corresponding `secret_id`, and copy the `role_id` and `secret_id` over to local files, like `./dgraph/vault/role_id` and `./dgraph/vault/secret_id`, that will be used by Dgraph Alpha nodes. + +:::tip +To learn more about the above steps, see [Dgraph Vault Integration: Docker](https://github.com/dgraph-io/dgraph/blob/main/contrib/config/vault/docker/README.md). +::: + +:::note +The key format for the `enc-field` option can be defined using `enc-format` with the values `base64` (default) or `raw`. +::: + +### Example using Dgraph CLI with Hashicorp Vault configuration + +The following example shows how to use Dgraph with a Vault server that holds the encryption key: + +```bash +## Start Dgraph Zero in different terminal tab or window +dgraph zero --my=localhost:5080 --replicas 1 --raft "idx=1" + +## Start Dgraph Alpha in different terminal tab or window +dgraph alpha --my="localhost:7080" --zero="localhost:5080" \ + --vault addr="http://localhost:8200";enc-field="enc_key";enc-format="raw";path="secret/data/dgraph/alpha";role-id-file="./role_id";secret-id-file="./secret_id" + +``` + +If multiple Dgraph Alpha nodes are part of the cluster, you must pass the `--encryption key-file` flag or the `--vault` superflag with appropriate superflag options to each of the Dgraph Alpha nodes. + +After an Alpha node has encryption enabled, you must provide the encryption key to start the Alpha server. +If the Alpha server restarts, the `--encryption key-file` or the `--vault` superflag's options must be set along with the key to restart successfully. + +## Turn off Encryption + +You can use [live loader](/dgraph-overview/migration/live-loader) or [bulk loader](/dgraph-overview/migration/bulk-loader) to decrypt the data while importing. + + +## Change Encryption Key + +The master encryption key set by the `--encryption key-file` option (or one used in Vault KV store) does not change automatically. The master +encryption key encrypts underlying *data keys* which are changed on a regular basis automatically (more info +about this is covered on the encryption-at-rest [blog][encblog] post). + +[encblog]: https://dgraph.io/blog/post/encryption-at-rest-dgraph-badger#one-key-to-rule-them-all-many-keys-to-find-them + +Changing the existing key to a new one is called key rotation. You can rotate the master encryption key by +using the `badger rotate` command on both p and w directories for each Alpha. To maintain availability in HA +cluster configurations, you can do this rotate the key one Alpha at a time in a rolling manner. + +You'll need both the current key and the new key in two different files. Specify the directory you +rotate ("p" or "w") for the `--dir` flag, the old key for the `--old-key-path` flag, and the new key with the +`--new-key-path` flag. + +``` +badger rotate --dir p --old-key-path enc_key_file --new-key-path new_enc_key_file +badger rotate --dir w --old-key-path enc_key_file --new-key-path new_enc_key_file +``` + +Then, you can start Alpha with the `new_enc_key_file` key file to use the new key. diff --git a/docusaurus-docs/docs/admin/enterprise-features/index.md b/docusaurus-docs/docs/admin/enterprise-features/index.md new file mode 100644 index 00000000..1e3377f5 --- /dev/null +++ b/docusaurus-docs/docs/admin/enterprise-features/index.md @@ -0,0 +1,4 @@ +--- +title: Advanced Features +--- + diff --git a/docusaurus-docs/docs/admin/enterprise-features/learner-nodes.md b/docusaurus-docs/docs/admin/enterprise-features/learner-nodes.md new file mode 100644 index 00000000..b1db74da --- /dev/null +++ b/docusaurus-docs/docs/admin/enterprise-features/learner-nodes.md @@ -0,0 +1,91 @@ +--- +title: Learner Nodes +description: Learner nodes let you spin-up read-only replica instance to serve best-effort queries faster +--- + +A Learner node is an enterprise-only feature that allows a user to spin-up a read-only replica instance across the world without paying a latency cost. +When enabled, a Dgraph cluster using learner nodes can serve best-effort queries faster. + +A "learner node" can still accept write operations. The node forwards them over to the Alpha group leader and does the writing just like a typical Alpha node. It will just be slower, depending on the latency between the Alpha node and the learner node. + +:::note +A learner node instance can forward `/admin` operations and perform both read and write operations, +but writing will incur in network call latency to the main cluster. +::: + + +## Set up a Learner node + +The learner node feature works at the Dgraph Alpha group level. +To use it, first you need to set up an Alpha instance as a learner node. +Once the learner instance is up, this replica can be used to run best-effort queries +with zero latency overhead. Because it's an Enterprise feature, a learner node +won't be able to connect to a Dgraph Zero node until the Zero node has a valid +license. + +To spin up a learner node, first make sure that you start all the nodes, including the Dgraph Zero +leader and the Dgraph Alpha leader, with the `--my` flag so that these nodes will +be accessible to the learner node. Then, start an Alpha instance as follows: + +```sh +dgraph alpha --raft="learner=true; group=N" --my :5080 +``` + +This allows the new Alpha instance to get all the updates from the group "N" leader without participating in the Raft elections. + +:::note +You must specify the `--my` flag to set the IP address and port of Dgraph Zero, +the Dgraph Alpha leader node, and the learner node. If you don't, you will get +an error similar to the following: `Error during SubscribeForUpdates` +::: + +## Best-effort Queries + +Regular queries use the strict consistency model, and any write operation to the cluster anywhere would be read immediately. + +Best-effort queries apply the eventual consistency model. A write to the cluster will be seen eventually to the node. +In regular conditions, the eventual consistency is usually achieved quickly. + +A best-effort query to a learner node returns any data that is already available in that learner node. +The response is still a valid data snapshot, but at a timestamp which is not the latest one. + +:::note +Best-effort queries won't be forwarded to a Zero node to get the latest timestamp. +::: + +You can still send typical read queries (strict consistency) to a learner node. +They would just incur an extra latency cost due to having to reach out the Zero leader. + +:::note +If the learner node needs to serve normal queries, at least one Alpha leader must be available. +::: + +## Use-case examples + +### Geographic distribution + +Consider this scenario: + +*You want to achieve low latency for clients in a remote geographical region, +distant from your Dgraph cluster.* + +You can address this need by using a learner node to run best-effort queries. +This read-only replica instance can be across distant geographies and you can +use best-effort queries to get instant responses. + +Because learner nodes support read and write operations, users in the remote +location can do everything with this learner node, as if they were working with +the full cluster. + + diff --git a/docusaurus-docs/docs/admin/enterprise-features/license.md b/docusaurus-docs/docs/admin/enterprise-features/license.md new file mode 100644 index 00000000..b60d8e3c --- /dev/null +++ b/docusaurus-docs/docs/admin/enterprise-features/license.md @@ -0,0 +1,50 @@ +--- +title: License +--- + +Dgraph enterprise features are proprietary licensed under the [Dgraph Community +License][dcl]. All Dgraph releases contain proprietary code for enterprise features. +Enabling these features requires an enterprise contract from +[contact@dgraph.io](/dgraph-overview/mailto:contact@dgraph.io) or the [discuss +forum](https://discuss.dgraph.io). + +**Dgraph enterprise features are enabled by default for 30 days in a new cluster**. +After the trial period of thirty (30) days, the cluster must obtain a license from Dgraph to +continue using the enterprise features released in the proprietary code. + +:::note +At the conclusion of your 30-day trial period if a license has not been applied to the cluster, +access to the enterprise features will be suspended. The cluster will continue to operate without +enterprise features. +::: + +When you have an enterprise license key, the license can be applied to the cluster by including it +as the body of a POST request and calling `/enterpriseLicense` HTTP endpoint on any Zero server. + +```sh +curl -X POST localhost:6080/enterpriseLicense --upload-file ./licensekey.txt +``` + +It can also be applied by passing the path to the enterprise license file (using the flag +`--enterprise_license`) to the `dgraph zero` command used to start the server. The second option is +useful when the process needs to be automated. + +```sh +dgraph zero --enterprise_license ./licensekey.txt +``` + +**Warning messages related to license expiry** + +Dgraph will print a warning message in the logs when your license is about to expire. If you are planning to implement any log monitoring solution, you may note this pattern and configure suitable alerts for yourself. You can find an example of this message below: + +```sh +Your enterprise license will expire in 6 days from now. To continue using enterprise features after 6 days from now, apply a valid license. To get a new license, contact us at https://dgraph.io/contact. +``` + +Once your license has expired, you will see the following warning message in the logs. + +```sh +Your enterprise license has expired and enterprise features are disabled. To continue using enterprise features, apply a valid license. To receive a new license, contact us at https://dgraph.io/contact. +``` + +[dcl]: https://github.com/dgraph-io/dgraph/blob/main/licenses/DCL.txt diff --git a/docusaurus-docs/docs/admin/enterprise-features/lsbackup.md b/docusaurus-docs/docs/admin/enterprise-features/lsbackup.md new file mode 100644 index 00000000..c92dfeab --- /dev/null +++ b/docusaurus-docs/docs/admin/enterprise-features/lsbackup.md @@ -0,0 +1,162 @@ +--- +title: Backup List Tool +--- + +The `lsbackup` command-line tool prints information about the stored backups in a user-defined location. + +## Parameters + +The `lsbackup` command has two flags: + +```txt +Flags: + -h, --help help for lsbackup + -l, --location string Sets the source location URI (required). + --verbose Outputs additional info in backup list. +``` + +- `--location`: indicates a [source URI](#source-uri) with Dgraph backup objects. This URI supports all the schemes used for backup. +- `--verbose`: if enabled will print additional information about the selected backup. + +For example, you can execute the `lsbackup` command as follows: + +```sh +dgraph lsbackup -l +``` + +### Source URI + +Source URI formats: + +- `[scheme]://[host]/[path]?[args]` +- `[scheme]:///[path]?[args]` +- `/[path]?[args]` (only for local or NFS) + +Source URI parts: + +- `scheme`: service handler, one of: `s3`, `minio`, `file` +- `host`: remote address; e.g.: `dgraph.s3.amazonaws.com` +- `path`: directory, bucket or container at target; e.g.: `/dgraph/backups/` +- `args`: specific arguments that are ok to appear in logs + +## Output + +The following snippet is an example output of `lsbackup`: + +```json +[ + { + "path": "/home/user/Dgraph/20.11/backup/manifest.json", + "since": 30005, + "backup_id": "reverent_vaughan0", + "backup_num": 1, + "encrypted": false, + "type": "full" + }, +] +``` + +If the `--verbose` flag was enabled, the output would look like this: + +```json +[ + { + "path": "/home/user/Dgraph/20.11/backup/manifest.json", + "since": 30005, + "backup_id": "reverent_vaughan0", + "backup_num": 1, + "encrypted": false, + "type": "full", + "groups": { + "1": [ + "dgraph.graphql.schema_created_at", + "dgraph.graphql.xid", + "dgraph.drop.op", + "dgraph.type", + "dgraph.cors", + "dgraph.graphql.schema_history", + "score", + "dgraph.graphql.p_query", + "dgraph.graphql.schema", + "dgraph.graphql.p_sha256hash", + "series" + ] + } + }, +] +``` + +### Return values + +- `path`: Name of the backup + +- `since`: is the timestamp at which this backup was taken. It's called Since because it will become the timestamp from which to backup in the next incremental backup. + +- `groups`: is the map of valid groups to predicates at the time the backup was created. This is printed only if `--verbose` flag is enabled + +- `encrypted`: Indicates whether this backup is encrypted or not + +- `type`: Indicates whether this backup is a full or incremental one + +- `drop_operation`: lists the various DROP operations that took place since the last backup. These are used during restore to redo those operations before applying the backup. (This is printed only if `--verbose` flag is enabled) + +- `backup_num`: is a monotonically increasing number assigned to each backup in a series. The full backup as BackupNum equal to one and each incremental backup gets assigned the next available number. This can be used to verify the integrity of the data during a restore. + +- `backup_id`: is a unique ID assigned to all the backups in the same series. + + +## Examples + +### S3 + +Checking information about backups stored in an AWS S3 bucket: + +```sh +dgraph lsbackup -l s3:///s3.us-west-2.amazonaws.com/dgraph_backup +``` + +You might need to set up access and secret key environment variables in the shell (or session) you are going to run the `lsbackup` command. For example: +``` +AWS_SECRET_ACCESS_KEY= +AWS_ACCESS_ID= +``` + +### MinIO + +Checking information about backups stored in a MinIO bucket: + +```sh +dgraph lsbackup -l minio://localhost:9000/dgraph_backup +``` + +In case the MinIO server is started without `tls`, you must specify that `secure=false` as it set to `true` by default. You also need to set the environment variables for the access key and secret key. + +In order to get the `lsbackup` running, you should following these steps: + +- Set `MINIO_ACCESS_KEY` as an environment variable for the running shell this can be done with the following command: + (`minioadmin` is the default access key, unless is changed by the user) + + ``` + export MINIO_ACCESS_KEY=minioadmin + ``` + +- Set MINIO_SECRET_KEY as an environment variable for the running shell this can be done with the following command: + (`minioadmin` is the default secret key, unless is changed by the user) + + ``` + export MINIO_SECRET_KEY=minioadmin + ``` + +- Add the argument `secure=false` to the `lsbackup command`, that means the command will look like: (the double quotes `"` are required) + + ```sh + dgraph lsbackup -l "minio://localhost:9000/?secure=false" + ``` + +### Local + +Checking information about backups stored locally (on disk): + +```sh +dgraph lsbackup -l ~/dgraph_backup +``` diff --git a/docusaurus-docs/docs/admin/enterprise-features/multitenancy.md b/docusaurus-docs/docs/admin/enterprise-features/multitenancy.md new file mode 100644 index 00000000..8ee8454a --- /dev/null +++ b/docusaurus-docs/docs/admin/enterprise-features/multitenancy.md @@ -0,0 +1,293 @@ +--- +title: Multi-Tenancy +--- + +Multi-tenancy is an enterprise-only feature that allows various tenants to co-exist in the same Dgraph +Cluster using `uint64` namespaces. With multi-tenancy, each tenant can only log into their own +namespace and operate in their own namespace. + +:::note +Multi-tenancy is an enterprise feature and needs [Access Control Lists](/dgraph-overview/admin/enterprise-features/access-control-lists) (ACL) enabled to work. +::: + +## Overview + +Multi-tenancy is built upon [Access Control Lists](/dgraph-overview/admin/enterprise-features/access-control-lists) (ACL), +and enables multiple tenants to share a Dgraph Cluster using unique namespaces. +The tenants are logically separated, and their data lies in the same `p` directory. +Each namespace has a group guardian, which has root access to that namespace. + +The default namespace is called a `galaxy`. [Guardians of the Galaxy](#guardians-of-the-galaxy) get +special access to create or delete namespaces and change passwords of +users of other namespaces. + +:::note +Dgraph provides a timeout limit per query that's configurable using the `--limit` superflag's `query-limit` option. +There's no time limit for queries by default, but you can override it when running Dgraph Alpha. +For multi-tenant environments a suggested `query-limit` value is 500ms. +::: + +## FAQ + +- How access controls and policies are handled among different tenants? + + In previous versions of Dgraph, the [Access Control Lists](/dgraph-overview/admin/enterprise-features/access-control-lists) (ACL) feature + offered a unified control solution across the entire database. + With the new multi-tenancy feature, the ACL policies are now scoped down to individual tenants in the database. + +:::note +Only super-admins ([Guardians of the galaxy](#guardians-of-the-galaxy)) have access across tenants. +The super admin is used only for database administration operations, such as exporting data of all tenants. _Guardian_ of the _Galaxy_ group cannot read across tenants. +::: + +- What's the ACL granularity in a multi-tenancy environment? Is it per tenant? + + The access controls are applied per tenant to either specific predicates or all predicates that exist for the tenant. + For example, the user `John Smith` belonging to the group `Data Approvers` for a tenant `Accounting` may only have read-only access over predicates while user `Jane Doe`, belonging to the group `Data Editors` within that same tenant, may have access to modify those predicates. + All the ACL rules need to be defined for each tenant in your backend. The level of granularity available allows for defining rules over specific predicates or all predicates belonging to that tenant. + +- Are tenants a physical separation or a logical one? + + Tenants are a logical separation. In this example, data needs to be written twice for 2 different tenants. + Each client must authenticate within a tenant, and can only modify data within the tenant as allowed by the configured ACLs. + +- Can data be copied from one tenant to the other? + + Yes, but not by breaking any ACL or tenancy constraints. + This can be done by exporting data from one tenant and importing data to another. + +## Namespace + +A multi-tenancy Namespace acts as a logical silo, so data stored in one namespace is not accessible from another namespace. +Each namespace has a group guardian (with root access to that namespace), and a unique `uint64` identifier. +Users are members of a single namespace, and cross-namespace queries are not allowed. + +:::note +If a user wants to access multiple namespaces, the user needs to be created separately for each namespace. +::: + +The default namespace (`0x00`) is called a `galaxy`. A [Guardian of the Galaxy](#guardians-of-the-galaxy) has +special access to create or delete namespaces and change passwords of +users of other namespaces. + +## Access Control Lists + +Multi-tenancy defines certain ACL roles for the shared Cluster: + +- [Guardians of the Galaxy](#guardians-of-the-galaxy) (Super Admins) +- Guardians of the namespace can perform the following operations: + - create users and groups within the namespace + - assign users to groups within the namespace + - assign predicates to groups within the namespace + - add users to groups within the namespace + - export namespace + - drop data within the namespace + - query and mutate within the namespace + + :::note + Guardians of the namespace cannot query or mutate across namespaces. +::: + +- Normal users can perform the following operations: + - login into a namespace + - query within the namespace + - mutate within the namespace + + :::note +Normal users cannot query or mutate across namespaces. +::: + +### Guardians of the Galaxy + +A _Guardian of the Galaxy_ is a Super Admin of the default namespace (`0x00`). + +As a super-admin, a _Guardian of the Galaxy_ can: +- [Create](#create-a-namespace) and [delete](#delete-a-namespace) namespaces +- Reset the passwords +- Query and mutate the default namespace (`0x00`) +- Trigger Cluster-wide [backups](#backups) (no namespace-specific backup) +- Trigger Cluster-wide or namespace-specific [exports](#exports) (exports contain information about the namespace) + +For example, if the user `rocket` is part of the _Guardians of the Galaxy_ group (namespace `0x00`), +he can only read/write on namespace `0x00`. + +## Create a Namespace + +Only members of the [Guardians of the Galaxy](#guardians-of-the-galaxy) group can create a namespace. +A namespace can be created by calling `/admin` with the `addNamespace` mutation, +and will return the assigned number for the new namespace. + +:::note +To create a namespace, the _Guardian_ must send the JWT access token in the `X-Dgraph-AccessToken` header. +::: + +For example, to create a new namespace: + +```graphql +mutation { + addNamespace(input: {password: "mypass"}) + { + namespaceId + message + } +} +``` + +By sending the mutation above, a namespace is created. A _Guardian group_ is also automatically created for that namespace. +A `groot` user with password `mypass` (default is `password`) is created in the guardian group. +You can then use these credentials to login into the namespace and perform operations like [`addUser`](/dgraph-overview/access-control-lists#create-a-regular-user). + +## List Namespaces + +Only members of the [Guardians of the Galaxy](#guardians-of-the-galaxy) group can list active namespaces. +You can check available namespaces using the `/state` endpoint. + +For example, if you have a multi-tenant Cluster with multiple namespaces, as a _Guardian of the Galaxy_ you can query `state` from GraphQL: + +```graphql +query { + state { + namespaces + } +} +``` + +In the response, namespaces that are available and active are listed. + +```json +{ + "data": { + "state": { + "namespaces": [ + 2, + 1, + 0 + ] + } + } +} +``` + +## Delete a Namespace + +Only members of the [Guardians of the Galaxy](#guardians-of-the-galaxy) group can delete a namespace. +A namespace can be dropped by calling `/admin` with the `deleteNamespace` mutation. + +:::note +To delete a namespace, the _Guardian_ must send the JWT access token in the `X-Dgraph-AccessToken` header. +::: + +For example, to drop the namespace `123`: + +```graphql +mutation { + deleteNamespace(input: {namespaceId: 123}) + { + namespaceId + message + } +} +``` + +:::note +Members of `namespace-guardians` can't delete namespaces, they can only perform queries and mutations. +::: + +## Reset passwords + +Only members of the _Guardians of the Galaxy_ can reset passwords across namespaces. +A password can be reset by calling `/admin` with the `resetPassword` mutation. + +For example, to reset the password for user `groot` from the namespace `100`: + +```graphql +mutation { + resetPassword(input: {userId: "groot", password:"newpassword", namespace: 100}) { + userId + message + } +} +``` + +## Drop Operations + +The `drop all` operations can be triggered only by a [Guardian of the Galaxy](#guardians-of-the-galaxy). +They're executed at Cluster level and delete data across namespaces. +All other `drop` operations run at namespace level and are namespace specific. For information about other drop operations, see [Alter the database](/dgraph-overview/raw-http#alter-the-dql-schema). + + +:::note +`drop all` operation is executed at Cluster level and the operation deletes data and schema across namespaces. Guardian of the namespace can trigger `drop data` operation within the namespace. The `drop data` operation deletes all the data but retains the schema only. +::: + +For example: + +``` +curl 'http://localhost:8080/alter' \ + -H 'X-Dgraph-AccessToken: ' \ + --data-raw '{"drop_op":"DATA"}' \ + --compressed +``` + +## Backups + +Backups are currently Cluster-wide only, but [exports](#exports) can be created by namespace. +Only a [Guardian of the Galaxy](#guardians-of-the-galaxy) can trigger a backup. + +### Data import + +[Initial import](/dgraph-overview/migration/bulk-loader) and [Live import](/dgraph-overview/migration/live-loader) tools support multi-tenancy. + + +## Exports + +Exports can be generated Cluster-wide or at namespace level. +These exported sets of `.rdf` or `.json` files and schemas include the multi-tenancy namespace information. + +If a _Guardian of the Galaxy_ exports the whole Cluster, a single folder containing the export data of all the namespaces in a single `.rdf` or `.json` file and a single schema will be generated. + +:::note +Guardians of a Namespace can trigger an Export for their namespace. +::: + +A namespace-specific export will contain the namespace value in the generated `.rdf` file: + +```rdf +<0x01> "name" "ibrahim" <0x12> . -> this belongs to namespace 0x12 +<0x01> "name" "ibrahim" <0x0> . -> this belongs to namespace 0x00 +``` + +For example, when the _Guardian of the Galaxy_ user is used to export the namespace `0x1234` to a folder in the export directory (by default this directory is `export`): + +```graphql +mutation { + export(input: {format: "rdf", namespace: 1234}) { + response { + message + } + } +} +``` +When using the _Guardian of the Namespace_, there's no need to specify the namespace in the GraphQL mutation, as they can only export within their own namespace: + +```graphql +mutation { + export(input: {format: "rdf") { + response { + message + } + } +} +``` + +To export all the namespaces: (this is only valid for _Guardians of the Galaxy_) + +```graphql +mutation { + export(input: {format: "rdf", namespace: -1}) { + response { + message + } + } +} +``` diff --git a/docusaurus-docs/docs/admin/index.md b/docusaurus-docs/docs/admin/index.md new file mode 100644 index 00000000..4fdc6e62 --- /dev/null +++ b/docusaurus-docs/docs/admin/index.md @@ -0,0 +1,29 @@ +--- +title: Administration +--- + +Dgraph administration covers the operational tasks needed to manage, monitor, and maintain your Dgraph cluster. + +## Core Administration Tasks + +**[Dgraph Administration](/dgraph-overview/admin/dgraph-administration)** - Main administrative operations including data export, cluster shutdown, database deletion, and upgrade procedures. Also covers basic security configuration like IP whitelisting and authentication tokens. + +**[Dgraph Alpha API Reference](/dgraph-overview/admin/dgraph-alpha)** - Alpha node HTTP and GraphQL endpoints for health monitoring, cluster management, and basic operations. + +**[Dgraph Zero API Reference](/dgraph-overview/admin/dgraph-zero)** - Zero node configuration, cluster coordination, and administrative endpoints for managing cluster membership and data distribution. + +## Security & Access Control + +**[Security Configuration](/dgraph-overview/admin/security)** - TLS configuration, port usage, and network security settings. + +For enterprise security features including Access Control Lists (ACL), audit logging, and encryption at rest, see [Enterprise Features](/dgraph-overview/admin/enterprise-features). + +## Monitoring & Observability + +**[Observability](/dgraph-overview/admin/observability)** - Monitoring with Prometheus/Grafana, metrics collection, distributed tracing, and log format documentation. + +**[Troubleshooting](/dgraph-overview/admin/troubleshooting)** - Common issues, OOM handling, file descriptor limits, and cluster setup verification. + +## Configuration + +**[Data Compression](/dgraph-overview/admin/data-compression)** - Configure disk compression algorithms (Snappy, Zstandard) for Alpha data storage. \ No newline at end of file diff --git a/docusaurus-docs/docs/admin/observability/audit-logs.md b/docusaurus-docs/docs/admin/observability/audit-logs.md new file mode 100644 index 00000000..89920bfa --- /dev/null +++ b/docusaurus-docs/docs/admin/observability/audit-logs.md @@ -0,0 +1,145 @@ +--- +title: Audit Logging +description: Track and audit all requests (queries and mutations) with Dgraph audit logging. +--- + +:::note +**Enterprise Feature**: Audit logging requires a Dgraph Enterprise license. See [License](/dgraph-overview/admin/enterprise-features/license) for details. +::: + +Audit logging tracks all requests (queries and mutations) sent to your Dgraph cluster. When enabled, audit logs record the following information for each request: + +* **Endpoint** - The API endpoint used for the request +* **User Name** - The logged-in user (if ACL is enabled) +* **Server address** - The Dgraph server host address +* **Client address** - The client host address +* **Request Body** - The request payload (truncated at 4KB) +* **Timestamp** - When the request was received +* **Namespace** - The namespace ID (for multi-tenant clusters) +* **Query Parameters** - Any query parameters provided +* **Response status** - The HTTP/gRPC response status + +## Audit Log Scope + +Audit logging captures most queries and mutations sent to Dgraph Alpha and Dgraph Zero nodes. + +### Logged Requests + +* HTTP requests sent to Dgraph Zero's port 6080 and Dgraph Alpha's port 8080 (except health/monitoring endpoints) +* gRPC requests sent to Dgraph Zero's port 5080 and Dgraph Alpha's port 9080 (except internal cluster endpoints) + +### Excluded Requests + +The following requests are not logged: + +* Response payloads (only requests are logged) +* HTTP requests to `/health`, `/state`, and `/jemalloc` endpoints +* gRPC requests to Raft endpoints (internal cluster consensus) +* gRPC requests to health check endpoints (`Check` and `Watch`) +* gRPC requests to Dgraph Zero stream endpoints (`StreamMembership`, `UpdateMembership`, `Oracle`, `Timestamps`, `ShouldServe`, `Connect`) + +## Audit Log Files + +Audit logs are written in JSON format. Dgraph uses a rolling-file policy: + +* The current log file is used until it reaches a configurable size (default: 100MB) +* When the size limit is reached, Dgraph creates a new current log file +* Older audit log files are retained for a configurable number of days (default: 10 days) + + +### Example Audit Log Entry + +For this GraphQL query: + +```graphql +{ + q(func: has(actor.film)){ + count(uid) + } +} +``` + +The corresponding audit log entry is: + +```json +{ + "ts":"2021-03-22T15:03:19.165Z", + "endpoint":"/query", + "level":"AUDIT", + "user":"", + "namespace":0, + "server":"localhost:7080", + "client":"[::1]:60118", + "req_type":"Http", + "req_body":"{\"query\":\"{\\n q(func: has(actor.film)){\\n count(uid)\\n }\\n}\",\"variables\":{}}", + "query_param":{ + "timeout":[ + "20s" + ] + }, + "status":"OK" +} +``` + +## Configuration + +Enable audit logging on Dgraph Alpha or Dgraph Zero nodes using the `--audit` flag with semicolon-separated options. + +### Configuration Options + +| Option | Description | Default | +|--------|-------------|---------| +| `output=` | Directory path for storing audit logs | Required | +| `size=` | Maximum size per log file in MB | 100 | +| `days=` | Number of days to retain log files | 10 | +| `compress=true` | Enable compression for older log files | false | +| `encrypt-file=` | Path to encryption key file for log encryption | disabled | + +### Enable Audit Logging + +The simplest configuration specifies only the output directory: + +```bash +dgraph alpha --audit output=audit-log-dir +``` + +### Customize Log File Size and Retention + +Configure larger log files and extended retention: + +```bash +dgraph alpha --audit "output=audit-log-dir;size=200;days=15" +``` + +This sets log files to 200 MB and retains them for 15 days. + +### Enable Compression + +Compress older audit logs to reduce storage space: + +```bash +dgraph alpha --audit "output=audit-log-dir;compress=true" +``` + +### Enable Encryption + +Encrypt audit logs to protect sensitive information in logged requests: + +```bash +dgraph alpha --audit "output=audit-log-dir;compress=true;encrypt-file=/path/to/encrypt/key/file" +``` + +### Decrypt Audit Logs + +Decrypt encrypted audit logs using the `dgraph audit decrypt` command: + +```bash +dgraph audit decrypt \ + --encryption_key_file=/path/encrypt/key/file \ + --in /path/to/encrypted/log/file \ + --out /path/to/output/file +``` + +## Related Documentation + +For general logging and log format information, see [Log Format](/dgraph-overview/admin/observability/log-format). diff --git a/docusaurus-docs/docs/admin/observability/index.md b/docusaurus-docs/docs/admin/observability/index.md new file mode 100644 index 00000000..6371a628 --- /dev/null +++ b/docusaurus-docs/docs/admin/observability/index.md @@ -0,0 +1,3 @@ +--- +title: Observability +--- \ No newline at end of file diff --git a/docusaurus-docs/docs/admin/observability/log-format.md b/docusaurus-docs/docs/admin/observability/log-format.md new file mode 100644 index 00000000..5aff7e14 --- /dev/null +++ b/docusaurus-docs/docs/admin/observability/log-format.md @@ -0,0 +1,115 @@ +--- +title: Logging +description: Dgraph logs requests for queries and mutations, and also provides audit logging capabilities with a Dgraph Enterprise license. +--- + +Dgraph logs requests for queries and mutations, and also provides audit logging +capabilities with a Dgraph [enterprise license](/dgraph-overview/admin/enterprise-features/license). + +Dgraph's log format comes from the glog library and is [formatted](https://github.com/golang/glog/blob/23def4e6c14b4da8ac2ed8007337bc5eb5007998/glog.go#L523-L533) as follows: + +``` +Lmmdd hh:mm:ss.uuuuuu threadid file:line] msg... +``` + +The fields shown above are defined as follows: + + + +| Field | Definition | +|-------|------------| +| `L` | A single character, representing the log level (eg 'I' for INFO) | +| `mm` | Month (zero padded; ie May is '05') | +| `dd` | Day (zero padded) | +| `hh:mm:ss.uuuuuu` | Time in hours, minutes and fractional seconds | +| `threadid` | Space-padded thread ID as returned by GetTID() | +| `file` | Filename | +| `line` | Line number | +| `msg` | User-supplied message | + +## Log verbosity + +To increase log verbosity, set the flag `-v=3` (or `-v=2`) which will enable verbose logging for everything. You can set this flag on both Zero and Alpha nodes. +:::note +Changing log verbosity requires a restart of the node. +::: + +## Request logging + +Request logging, sometimes called *query logging*, lets you log queries and mutations. +You can dynamically turn request logging on or off. To toggle request logging on, send the following GraphQL mutation to the `/admin` endpoint of an Alpha node (e.g. `localhost:8080/admin`): + +```graphql +mutation { + config(input: {logDQLRequest: true}) { + response { + code + message + } + } +} +``` +Note this input flag was named logRequest until Dgraph version v23. + +The response should look like the following: + +```json +{ + "data": { + "config": { + "response": { + "code": "Success", + "message": "Config updated successfully" + } + } + }, + "extensions": { + "tracing": { + "version": 1, + "startTime": "2020-12-07T14:53:28.240420495Z", + "endTime": "2020-12-07T14:53:28.240569604Z", + "duration": 149114 + } + } +} +``` +Also, the Alpha node will print the following INFO message to confirm that the mutation has been applied: +``` +I1207 14:53:28.240516 20143 config.go:39] Got config update through GraphQL admin API +``` + +When enabling request logging this prints the requests that Dgraph Alpha receives from Ratel or other clients. In this case, the Alpha log will print something similar to: + +``` +I1201 13:06:26.686466 10905 server.go:908] Got a query: query:"{\n query(func: allofterms(name@en, \"Marc Caro\")) {\n uid\n name@en\n director.film\n }\n}" +``` +As you can see, we got the query that Alpha received. To read it in the original DQL format just replace every `\n` with a new line, any `\t` with a tab character and `\"` with `"`: + +``` +{ + query(func: allofterms(name@en, "Marc Caro")) { + uid + name@en + director.film + } +} +``` + +Similarly, you can turn off request logging by setting `logRequest` to `false` in the `/admin` mutation. + +```graphql +mutation { + config(input: {logRequest: false}) { + response { + code + message + } + } +} +``` + +## Audit logging (enterprise feature) + +With a Dgraph enterprise license, you can enable audit logging so that all +requests are tracked and available for use in security audits. To learn more, see +[Audit Logging](/dgraph-overview/admin/observability/audit-logs). diff --git a/docusaurus-docs/docs/admin/observability/metrics.md b/docusaurus-docs/docs/admin/observability/metrics.md new file mode 100644 index 00000000..fa13ed94 --- /dev/null +++ b/docusaurus-docs/docs/admin/observability/metrics.md @@ -0,0 +1,122 @@ +--- +title: Metrics +description: Dgraph database helps administrators by providing metrics on Dgraph instance activity, disk activity, server node health, memory, and Raft leadership. +--- + + +Dgraph database provides metrics on Dgraph instance activity, disk activity, +server node health, memory, and Raft leadership. It also provides built-in +metrics provided by Go. Dgraph metrics follow the +[metric and label conventions for the Prometheus](https://prometheus.io/docs/practices/naming/) +monitoring and alerting toolkit. + +## Activity Metrics + +Activity metrics let you track the mutations, queries, and proposals of a Dgraph +instance. + + Metric | Description + ------- | ----------- + `go_goroutines` | Total number of Goroutines currently running in Dgraph. + `dgraph_active_mutations_total` | Total number of mutations currently running. + `dgraph_pending_proposals_total` | Total pending Raft proposals. + `dgraph_pending_queries_total` | Total number of queries in progress. + `dgraph_num_queries_total{method="Server.Mutate"}` | Total number of mutations run in Dgraph. + `dgraph_num_queries_total{method="Server.Query"}` | Total number of queries run in Dgraph. + +## Disk metrics + +Disk metrics let you track the disk activity of the Dgraph process. Dgraph does +not interact directly with the filesystem. Instead it relies on +[Badger](https://github.com/dgraph-io/badger) to read from and write to disk. + + Metric | Description + ------- | ----------- + `badger_read_num_vlog` | Total count of reads by badger in vlog, + `badger_write_num_vlog` | Total count of writes by Badger in vlog, + `badger_read_bytes_vlog` | Total bytes read by Badger, + `badger_write_bytes_vlog` | Total bytes written by Badger, + `badger_read_bytes_lsm` | Total bytes read by Badger, + `badger_write_bytes_l0` | Total bytes written by Badger, + `badger_write_bytes_compaction` | Total bytes written by Badger, + `badger_get_num_lsm` | Total count of LSM gets, + `badger_get_num_memtable` | Total count of LSM gets from memtable, + `badger_hit_num_lsm_bloom_filter` | Total count of LSM bloom hits, + `badger_get_num_user` | Total count of calls to Badger's `get`, + `badger_put_num_user` | Total count of calls to Badger's `put`, + `badger_write_bytes_user` | Total bytes written by user, + `badger_get_with_result_num_user` | Total count of calls to Badger's `get` that returned value, + `badger_iterator_num_user` | Total count of iterators made in badger, + `badger_size_bytes_lsm` | Size of the LSM in bytes, + `badger_size_bytes_vlog` | Size of the value log in bytes, + `badger_write_pending_num_memtable` | Total count of pending writes, + `badger_compaction_current_num_lsm` | Number of tables being actively compacted, + + Old Metrics (Pre 23.1.0) + + `badger_disk_reads_total` | Total count of disk reads in Badger. + `badger_disk_writes_total` | Total count of disk writes in Badger. + `badger_gets_total` | Total count of calls to Badger's `get`. + `badger_memtable_gets_total` | Total count of memtable accesses to Badger's `get`. + `badger_puts_total` | Total count of calls to Badger's `put`. + `badger_read_bytes` | Total bytes read from Badger. + `badger_lsm_bloom_hits_total` | Total number of LSM tree bloom hits. + `badger_written_bytes` | Total bytes written to Badger. + `badger_lsm_size_bytes` | Total size in bytes of the LSM tree. + `badger_vlog_size_bytes` | Total size in bytes of the value log. + +## Go Metrics + +Go's built-in metrics may also be useful to measure memory usage and garbage +collection time. + +Metric | Description +------- | ----------- +`go_memstats_gc_cpu_fraction` | The fraction of this program's available CPU time used by the GC since the program started. +`go_memstats_heap_idle_bytes` | Number of heap bytes waiting to be used. +`go_memstats_heap_inuse_bytes` | Number of heap bytes that are in use. + +## Health Metrics + +Health metrics let you check the health of a server node. + +:::note +Health metrics are only available for Dgraph Alpha server nodes. +::: + + Metric | Description + ------- | ----------- + `dgraph_alpha_health_status` | Value is 1 when the Alpha node is ready to accept requests; otherwise 0. + `dgraph_max_assigned_ts` | This shows the latest max assigned timestamp. All Alpha nodes within the same Alpha group should show the same timestamp if they are in sync. + `dgraph_txn_aborts_total` | Shows the total number of server-initiated transaction aborts that have occurred on the Alpha node. + `dgraph_txn_commits_total` | Shows the total number of successful commits that have occurred on the Alpha node. + `dgraph_txn_discards_total` | Shows the total number of client-initiated transaction discards that have occurred on the Alpha node. This is incremented when the client calls for a transaction discard, such as using the Dgraph Go client's `txn.Discard` function. + +## Memory metrics + +Memory metrics let you track the memory usage of the Dgraph process. The `idle` +and `inuse` metrics give you a better sense of the active memory usage of the +Dgraph process. The process memory metric shows the memory usage as measured by +the operating system. + +By looking at all three metrics you can see how much memory a Dgraph process is +holding from the operating system and how much is actively in use. + + Metric | Description + ------- | ----------- + `dgraph_memory_idle_bytes` | Estimated amount of memory that is being held idle that could be reclaimed by the OS. + `dgraph_memory_inuse_bytes` | Total memory usage in bytes (sum of heap usage and stack usage). + `dgraph_memory_proc_bytes` | Total memory usage in bytes of the Dgraph process. This metric is equivalent to resident set size on Linux. + +## Raft leadership metrics + +Raft leadership metrics let you track changes in Raft leadership for Dgraph +Alpha and Dgraph Zero nodes in your Cluster. These metrics include a group label +along with the node name, so that you can determine which metrics apply to which +Raft groups. + +Metric | Description +------- | ----------- +`dgraph_raft_has_leader` | Value is 1 when the node has a leader; otherwise 0. +`dgraph_raft_is_leader` | Value is 1 when the node is the leader of its group; otherwise 0. +`dgraph_raft_leader_changes_total` | The total number of leader changes seen by this node. diff --git a/docusaurus-docs/docs/admin/observability/monitoring.md b/docusaurus-docs/docs/admin/observability/monitoring.md new file mode 100644 index 00000000..9b330795 --- /dev/null +++ b/docusaurus-docs/docs/admin/observability/monitoring.md @@ -0,0 +1,112 @@ +--- +title: Monitoring +--- + +Dgraph exposes metrics via the `/debug/vars` endpoint in json format and the `/debug/prometheus_metrics` endpoint in Prometheus's text-based format. Dgraph doesn't store the metrics and only exposes the value of the metrics at that instant. You can either poll this endpoint to get the data in your monitoring systems or install **[Prometheus](https://prometheus.io/docs/introduction/install/)**. Replace targets in the below config file with the ip of your Dgraph instances and run prometheus using the command `prometheus --config.file my_config.yaml`. + +```sh +scrape_configs: + - job_name: "dgraph" + metrics_path: "/debug/prometheus_metrics" + scrape_interval: "2s" + static_configs: + - targets: + - 172.31.9.133:6080 # For Dgraph zero, 6080 is the http endpoint exposing metrics. + - 172.31.15.230:8080 # For Dgraph alpha, 8080 is the http endpoint exposing metrics. + - 172.31.0.170:8080 + - 172.31.8.118:8080 +``` + +:::note +Raw data exported by Prometheus is available via `/debug/prometheus_metrics` endpoint on Dgraph alphas. +::: + +Install **[Grafana](http://docs.grafana.org/installation/)** to plot the metrics. Grafana runs at port 3000 in default settings. Create a prometheus datasource by following these **[steps](https://prometheus.io/docs/visualization/grafana/#creating-a-prometheus-data-source)**. Import **[grafana_dashboard.json](https://github.com/dgraph-io/benchmarks/blob/master/scripts/grafana_dashboard.json)** by following this **[link](http://docs.grafana.org/reference/export_import/#importing-a-dashboard)**. + + +## CloudWatch + +Route53's health checks can be leveraged to create standard CloudWatch alarms to notify on change in the status of the `/health` endpoints of Alpha and Zero. + +Considering that the endpoints to monitor are publicly accessible and you have the AWS credentials and [awscli](https://aws.amazon.com/cli/) setup, we’ll go through an example of setting up a simple CloudWatch alarm configured to alert via email for the Alpha endpoint `alpha.acme.org:8080/health`. Dgraph Zero's `/health` endpoint can also be monitored in a similar way. + + + +### Create the Route53 Health Check +```sh +aws route53 create-health-check \ + --caller-reference $(date "+%Y%m%d%H%M%S") \ + --health-check-config file:///tmp/create-healthcheck.json \ + --query 'HealthCheck.Id' +``` +The file `/tmp/create-healthcheck.json` would need to have the values for the parameters required to create the health check as such: +```sh +{ + "Type": "HTTPS", + "ResourcePath": "/health", + "FullyQualifiedDomainName": "alpha.acme.org", + "Port": 8080, + "RequestInterval": 30, + "FailureThreshold": 3 +} +``` +The reference for the values one can specify while creating or updating a health check can be found on the AWS [documentation](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-values.html). + +The response to the above command would be the ID of the created health check. +```sh +"29bdeaaa-f5b5-417e-a5ce-7dba1k5f131b" +``` +Make a note of the health check ID. This will be used to integrate CloudWatch alarms with the health check. + +:::note +Currently, Route53 metrics are only (available)[https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/monitoring-health-checks.html] in the **US East (N. Virginia)** region. The Cloudwatch Alarm (and the SNS Topic) should therefore be created in `us-east-1`. +::: + +### [Optional] Creating an SNS Topic +SNS topics are used to create message delivery channels. If you do not have any SNS topics configured, one can be created by running the following command: + +```sh +aws sns create-topic --region=us-east-1 --name ops --query 'TopicArn' +``` + +The response to the above command would be as follows: +```sh +"arn:aws:sns:us-east-1:123456789012:ops" +``` +Be sure to make a note of the topic ARN. This would be used to configure the CloudWatch alarm's action parameter. + +Run the following command to subscribe your email to the SNS topic: +```sh +aws sns subscribe \ + --topic-arn arn:aws:sns:us-east-1:123456789012:ops \ + --protocol email \ + --notification-endpoint ops@acme.org +``` +The subscription will need to be confirmed through *AWS Notification - Subscription Confirmation* sent through email. Once the subscription is confirmed, CloudWatch can be configured to use the SNS topic to trigger the alarm notification. + + + +### Creating a CloudWatch Alarm +The following command creates a CloudWatch alarm with `--alarm-actions` set to the ARN of the SNS topic and the `--dimensions` of the alarm set to the health check ID. +```sh +aws cloudwatch put-metric-alarm \ + --region=us-east-1 \ + --alarm-name dgraph-alpha \ + --alarm-description "Alarm for when Alpha is down" \ + --metric-name HealthCheckStatus \ + --dimensions "Name=HealthCheckId,Value=29bdeaaa-f5b5-417e-a5ce-7dba1k5f131b" \ + --namespace AWS/Route53 \ + --statistic Minimum \ + --period 60 \ + --threshold 1 \ + --comparison-operator LessThanThreshold \ + --evaluation-periods 1 \ + --treat-missing-data breaching \ + --alarm-actions arn:aws:sns:us-east-1:123456789012:ops +``` + +One can verify the alarm status from the CloudWatch or Route53 consoles. + +#### Internal Endpoints +If the Alpha endpoint is internal to the VPC network - one would need to create a Lambda function that would periodically (triggered using CloudWatch Event Rules) request the `/health` path and create CloudWatch metrics which could then be used to create the required CloudWatch alarms. +The architecture and the CloudFormation template to achieve the same can be found [here](https://aws.amazon.com/blogs/networking-and-content-delivery/performing-route-53-health-checks-on-private-resources-in-a-vpc-with-aws-lambda-and-amazon-cloudwatch/). diff --git a/docusaurus-docs/docs/admin/observability/tracing.md b/docusaurus-docs/docs/admin/observability/tracing.md new file mode 100644 index 00000000..80cd261a --- /dev/null +++ b/docusaurus-docs/docs/admin/observability/tracing.md @@ -0,0 +1,42 @@ +--- +title: Tracing +--- + +Dgraph is integrated with [OpenCensus](https://opencensus.io/zpages/) to collect distributed traces from the Dgraph cluster. + +Trace data is always collected within Dgraph. You can adjust the trace sampling rate for Dgraph queries using the `--trace` [superflag's](/dgraph-overview/cli/superflags) `ratio` option when running Dgraph Alpha nodes. By default, `--trace ratio` is set to 0.01 to trace 1% of queries. + +## Examining Traces with zPages + +The most basic way to view traces is with the integrated trace pages. + +OpenCensus's [zPages](https://opencensus.io/zpages/) are accessible via the Zero or Alpha HTTP port at `/z/tracez`. + +## Examining Traces with Jaeger + +Jaeger collects distributed traces and provides a UI to view and query traces across different services. This provides the necessary observability to figure out what is happening in the system. + +Dgraph can be configured to send traces directly to a Jaeger collector with the `trace` superflag's `jaeger` option. For example, if the Jaeger collector is running on `http://localhost:14268`, then pass this option to the Dgraph Zero and Dgraph Alpha instances as `--trace jaeger=http://localhost:14268`. + +See [Jaeger's Getting Started docs](https://www.jaegertracing.io/docs/getting-started/) to get up and running with Jaeger. + +### Setting up multiple Dgraph clusters with Jaeger + +Jaeger allows you to examine traces from multiple Dgraph clusters. To do this, use the `--collector.tags` on a Jaeger collector to set custom trace tags. For example, run one collector with `--collector.tags env=qa` and then another collector with `--collector.tags env=dev`. In Dgraph, set the `--trace jaeger` option in the Dgraph QA cluster to the first collector and set this option in the Dgraph Dev cluster to the second collector. +You can run multiple Jaeger collector components for the same single Jaeger backend (e.g., many Jaeger collectors to a single Cassandra backend). This is still a single Jaeger installation but with different collectors customizing the tags per environment. + +Once you have this configured, you can filter by tags in the Jaeger UI. Filter traces by tags matching `env=dev`: + +![Jaeger UI](/images/jaeger-ui.png) + +Every trace has your custom tags set under the “Process” section of each span: + +![Jaeger Query](/images/jaeger-server-query.png) + +Filter traces by tags matching `env=qa`: + +![Jaeger JSON](/images/jaeger-json.png) + +![Jaeger Query Result](/images/jaeger-server-query-2.png) + +To learn more about Jaeger, see [Jaeger's Deployment Guide](https://www.jaegertracing.io/docs/deployment/). \ No newline at end of file diff --git a/docusaurus-docs/docs/admin/security/admin-endpoint-security.md b/docusaurus-docs/docs/admin/security/admin-endpoint-security.md new file mode 100644 index 00000000..30ec5685 --- /dev/null +++ b/docusaurus-docs/docs/admin/security/admin-endpoint-security.md @@ -0,0 +1,105 @@ +--- +title: Admin Endpoint Security +--- + +Dgraph Alpha exposes various administrative endpoints over HTTP and GraphQL for operations like data export and cluster shutdown. All admin endpoints are protected by three layers of authentication. + +## Authentication Layers + +Admin endpoints require authentication through three layers: + +1. **IP Whitelisting** - Use the `--security` superflag's `whitelist` option on Dgraph Alpha to whitelist IP addresses other than localhost. +2. **Token Authentication** - If Dgraph Alpha is started with the `--security` superflag's `token` option, you must pass the token as an `X-Dgraph-AuthToken` header when making HTTP requests. +3. **ACL Guardian Access** - If ACL is enabled, you must pass the ACL-JWT of a Guardian user using the `X-Dgraph-AccessToken` header when making HTTP requests. + +## Admin Endpoints + +An admin endpoint is any HTTP endpoint which provides admin functionality. Admin endpoints usually start with the `/admin` path. The current list of admin endpoints includes: + +* `/admin` +* `/admin/config/cache_mb` +* `/admin/draining` +* `/admin/shutdown` +* `/admin/schema` +* `/admin/schema/validate` +* `/alter` +* `/login` + +### Special Endpoints + +There are exceptions to the general authentication rule: + +* **`/login`**: This endpoint logs-in an ACL user and provides them with a JWT. Only IP Whitelisting and token authentication checks are performed for this endpoint. +* **`/admin`**: This GraphQL endpoint provides queries/mutations corresponding to the HTTP admin endpoints. All queries/mutations on `/admin` have all three layers of authentication, except for `login (mutation)`, which has the same behavior as the HTTP `/login` endpoint. + +## IP Whitelisting + +By default, admin operations can only be initiated from the machine on which the Dgraph Alpha runs. + +You can use the `--security` superflag's `whitelist` option to specify a comma-separated whitelist of IP addresses, IP ranges, CIDR ranges, or hostnames for hosts from which admin operations can be initiated. + +**Examples:** + +```sh +# Allow localhost only +dgraph alpha --security whitelist=127.0.0.1 ... + +# Allow IP range and specific IP +dgraph alpha --security whitelist=172.17.0.0:172.20.0.0,192.168.1.1 ... + +# Allow CIDR ranges +dgraph alpha --security whitelist=172.17.0.0/16,192.168.1.1/32 ... + +# Allow hostnames +dgraph alpha --security whitelist=admin-bastion,host.docker.internal ... + +# Allow all IPs (not recommended for production) +dgraph alpha --security whitelist=0.0.0.0/0 ... +``` + +For detailed network security configuration including TLS and port usage, see [Ports Usage](/dgraph-overview/admin/security/ports-usage) and [TLS Configuration](/dgraph-overview/admin/security/tls-configuration). + +## Token Authentication + +Token authentication provides a simple way to secure admin endpoints without full ACL. This is sometimes called "poor-man's auth" and is useful for basic protection. + +### Setting Up Token Authentication + +Specify the auth token with the `--security` superflag's `token` option for each Dgraph Alpha in the cluster: + +```sh +dgraph alpha --security token= +``` + +### Using Token Authentication + +Clients must include the same auth token in the `X-Dgraph-AuthToken` header when making admin requests: + +```sh +# Without token - will be denied +curl -s localhost:8080/alter -d '{ "drop_all": true }' +# Permission denied. No token provided. + +# With wrong token - will be denied +curl -s -H 'X-Dgraph-AuthToken: ' localhost:8080/alter -d '{ "drop_all": true }' +# Permission denied. Incorrect token. + +# With correct token - will succeed +curl -H 'X-Dgraph-AuthToken: ' localhost:8080/alter -d '{ "drop_all": true }' +# Success. Token matches. +``` + +:::note +To fully secure admin operations in the cluster, the authentication token must be set for every Alpha node. +::: + +## Securing Alter Operations + +Alter operations allow clients to apply schema updates and drop predicates from the database. By default, all clients are allowed to perform alter operations, which can be a security risk. + +You can configure Dgraph to only allow alter operations when the client provides a specific token. This prevents clients from making unintended or accidental schema updates or predicate drops. + +See the [Token Authentication](#token-authentication) section above for setup instructions. Once configured, all alter operations require the `X-Dgraph-AuthToken` header. + +For enterprise-grade access control, see [Access Control Lists](/dgraph-overview/admin/enterprise-features/access-control-lists). + diff --git a/docusaurus-docs/docs/admin/security/index.md b/docusaurus-docs/docs/admin/security/index.md new file mode 100644 index 00000000..dcd9443c --- /dev/null +++ b/docusaurus-docs/docs/admin/security/index.md @@ -0,0 +1,21 @@ +--- +title: Security +--- + +Dgraph security configuration covers authentication, network security, and access control for your cluster. + +## Security Configuration + +**[Admin Endpoint Security](/dgraph-overview/admin/security/admin-endpoint-security)** - Authentication layers for admin endpoints, IP whitelisting, and token-based authentication. + +**[Ports Usage](/dgraph-overview/admin/security/ports-usage)** - Understanding Dgraph's port configuration and network security requirements. + +**[TLS Configuration](/dgraph-overview/admin/security/tls-configuration)** - Encrypting communications between Dgraph nodes and clients using TLS/mTLS. + +## Enterprise Security Features + +For advanced security features, see [Enterprise Features](/dgraph-overview/admin/enterprise-features): + +- [Access Control Lists (ACL)](/dgraph-overview/admin/enterprise-features/access-control-lists) - Fine-grained access control +- [Audit Logging](/dgraph-overview/admin/observability/audit-logs) - Track and audit all requests +- [Encryption at Rest](/dgraph-overview/admin/enterprise-features/encryption-at-rest) - Encrypt data on disk \ No newline at end of file diff --git a/docusaurus-docs/docs/admin/security/ports-usage.md b/docusaurus-docs/docs/admin/security/ports-usage.md new file mode 100644 index 00000000..f6dc1453 --- /dev/null +++ b/docusaurus-docs/docs/admin/security/ports-usage.md @@ -0,0 +1,117 @@ +--- +title: Ports Usage +--- + +Dgraph cluster nodes use a range of ports to communicate over gRPC and HTTP. +Choose these ports carefully based on your topology and mode of deployment, as +this will impact the access security rules or firewall configurations required +for each port. + +## Types of ports + +Dgraph Alpha and Dgraph Zero nodes use a variety of gRPC and HTTP ports, as +follows: + +- **gRPC-internal-private**: Used between the cluster nodes for internal + communication and message exchange. Communication using these ports is + TLS-encrypted. +- **gRPC-external-private**: Used by Dgraph Live Loader and Dgraph Bulk loader + to access APIs over gRPC. +- **gRPC-external-public**: Used by Dgraph clients to access APIs in a session + that can persist after a query. +- **HTTP-external-private**: Used for monitoring and administrative tasks. +- **HTTP-external-public:** Used by clients to access APIs over HTTP. + +## Default ports used by different nodes + + Dgraph Node Type | gRPC-internal-private | gRPC-external-private | gRPC-external-public | HTTP-external-private | HTTP-external-public +------------------|------------------------|-----------------------|----------------------|-----------------------|--------------------- + zero | 50801 | 50801 | | 60802 | + alpha | 7080 | | 9080 | | 8080 + ratel | | | | | 8000 + + +1: Dgraph Zero uses port 5080 for internal communication within the + cluster, and to support the [data import](/dgraph-overview/migration/import-data) + tools: Dgraph Live Loader and Dgraph Bulk Loader. + +2: Dgraph Zero uses port 6080 for +[administrative](/dgraph-overview/admin/dgraph-zero) operations. Dgraph +clients cannot access this port. + +Users must modify security rules or open firewall ports depending upon their +underlying network to allow communication between cluster nodes, between the +Dgraph instances, and between Dgraph clients. In general, you should configure +the gRPC and HTTP `external-public` ports for open access by Dgraph clients, +and configure the gRPC-internal ports for open access by the cluster nodes. + +**Ratel UI** accesses Dgraph Alpha on the `HTTP-external-public port` (which defaults to localhost:8080) and can be configured to talk to a remote Dgraph cluster. This +way you can run Ratel on your local machine and point to a remote cluster. But, +if you are deploying Ratel along with Dgraph cluster, then you may have to +expose port 8000 to the public. + +**Port Offset** To make it easier for users to set up a cluster, Dgraph has +default values for the ports used by Dgraph nodes. To support multiple nodes +running on a single machine or VM, you can set a node to use different ports +using an offset (using the command option `--port_offset`). This command +increments the actual ports used by the node by the offset value provided. You +can also use port offsets when starting multiple Dgraph Zero nodes in a +development environment. + +For example, when a user runs Dgraph Alpha with the `--port_offset 2` setting, +then the Alpha node binds to port 7082 (`gRPC-internal-private`), 8082 +(`HTTP-external-public`) and 9082 (`gRPC-external-public`), respectively. + +**Ratel UI** by default listens on port 8000. You can use the `-port` flag to +configure it to listen on any other port. + +## High Availability (HA) cluster configuration + +In a HA cluster configuration, you should run three or five +replicas for the Zero node, and three or five replicas for the Alpha node. A +Dgraph cluster is divided into Raft groups, where Dgraph Zero is group 0 and +each shard of Dgraph Alpha is a subsequent numbered group (group 1, group 2, etc.). +The number of replicas in each Raft group must be an odd number for the group +to have consensus, which will exist when the majority of nodes in a group are +available. + +:::tip +If the number of replicas in a Raft group is **2N + 1**, up to **N** nodes can +go offline without any impact on reads or writes. So, if there are five +replicas, three must be online to avoid an impact to reads or writes. +::: + +### Dgraph Zero + +Run three Dgraph Zero instances, assigning a unique integer ID to each using the +`--raft` superflag's `idx` option, and passing the address of any healthy Dgraph +Zero instance using the `--peer` flag. + +To run three replicas for the Alpha nodes, set `--replicas=3`. Each time a new +Alpha node is added, the Zero node will check the existing groups and assign +them as appropriate. + +### Dgraph Alpha +You can run as many Dgraph Alpha nodes as you want. You can manually set the +`--raft` superflag's `idx` option, or you can leave that flag empty, and the Zero node will +auto-assign an id to the Alpha node. This id persists in the write-ahead log, so +be careful not to delete it. + +The new Alpha nodes will automatically detect each other by communicating with +Dgraph Zero and establish connections to each other. If you don't have a proxy +or load balancer for the Zero nodes, you can provide a list of Zero node +addresses for Alpha nodes to use at startup with the `--zero` flag. The Alpha +node will try to connect to one of the Zero nodes starting from the first Zero +node address in the list. For example: +`--zero=zero1,zero2,zero3` where `zero1` is the `host:port` of a zero instance. + +Typically, a Zero node would first attempt to replicate a group, by assigning a +new Alpha node to run the same group previously assigned to another. After the +group has been replicated per the `--replicas` flag, Dgraph Zero creates a new +group. + +Over time, the data will be evenly split across all of the groups. So, it's +important to ensure that the number of Alpha nodes is a multiple of the +replication setting. For example, if you set `--replicas=3` in for a Zero node, +and then run three Alpha nodes for no sharding, but 3x replication. Or, if you +run six Alpha nodes, sharding the data into two groups, with 3x replication. diff --git a/docusaurus-docs/docs/admin/security/tls-configuration.md b/docusaurus-docs/docs/admin/security/tls-configuration.md new file mode 100644 index 00000000..840a407b --- /dev/null +++ b/docusaurus-docs/docs/admin/security/tls-configuration.md @@ -0,0 +1,387 @@ +--- +title: TLS Configuration +--- + +Connections between Dgraph database and its clients can be secured using TLS. In +addition, Dgraph can now secure gRPC communications between Dgraph Alpha and +Dgraph Zero server nodes using mutual TLS (mTLS). Dgraph can now also secure +communications over the Dgraph Zero `gRPC-external-private` port used by +Dgraph's Live Loader and Bulk Loader clients. To learn more about the HTTP and +gRPC ports used by Dgraph Alpha and Dgraph Zero, see [Ports Usage](/dgraph-overview/admin/security/ports-usage). +Password-protected private keys are **not supported**. + +To further improve TLS security, only TLS v1.2 cypher suites that use 128-bit or +greater RSA or AES encryption are supported. + +:::tipIf you're generating encrypted private keys with `openssl`, +be sure to specify the encryption algorithm explicitly (like `-aes256`). This will +force `openssl` to include `DEK-Info` header in private key, which is required +to decrypt the key by Dgraph. When default encryption is used, `openssl` doesn't +write that header and key can't be decrypted.::: + +## Dgraph Certificate Management Tool + +:::note +This section refers to the `dgraph cert` command which was introduced in v1.0.9. +For previous releases, see the previous [TLS configuration documentation](https://github.com/dgraph-io/dgraph/blob/release/v1.0.7/wiki/content/deploy/index.md#tls-configuration). +::: + +The `dgraph cert` program creates and manages CA-signed certificates and private +keys using a generated Dgraph Root CA. There are three types of certificate/key +pairs: +1. Root CA certificate/key pair: This is used to sign and verify node and client + certificates. If the root CA certificate is changed then you must regenerate + all certificates, and this certificate must be accessible to the Alpha nodes. +2. Node certificate/key pair: This is shared by the Dgraph Alpha nodes and used + for accepting TLS connections. +3. Client certificate/key pair: This is used by the clients (like live loader + and Ratel) to communicate with Dgraph Alpha server nodes where client + authentication with mTLS is required. + +```sh +# To see the available flags. +$ dgraph cert --help + +# Create Dgraph Root CA, used to sign all other certificates. +$ dgraph cert + +# Create node certificate and private key +$ dgraph cert -n localhost + +# Create client certificate and private key for mTLS (mutual TLS) +$ dgraph cert -c dgraphuser + +# Combine all in one command +$ dgraph cert -n localhost -c dgraphuser + +# List all your certificates and keys +$ dgraph cert ls +``` + +The default location where the _cert_ command stores certificates (and keys) is +`tls` under the Dgraph working directory. The default directory path can be overridden +using the `--dir` option. For example: + +```sh +$ dgraph cert --dir ~/mycerts +``` + +### File naming conventions + +The following file naming conventions are used by Dgraph for proper TLS setup. + +| File name | Description | Use | +|-----------|-------------|-------| +| ca.crt | Dgraph Root CA certificate | Verify all certificates | +| ca.key | Dgraph CA private key | Validate CA certificate | +| node.crt | Dgraph node certificate | Shared by all nodes for accepting TLS connections | +| node.key | Dgraph node private key | Validate node certificate | +| client._name_.crt | Dgraph client certificate | Authenticate a client _name_ | +| client._name_.key | Dgraph client private key | Validate _name_ client certificate | + +For client authentication, each client must have their own certificate and key. +These are then used to connect to the Dgraph server nodes. + +The node certificate `node.crt` can support multiple node names using multiple +host names and/or IP address. Just separate the names with commas when +generating the certificate. + +```sh +$ dgraph cert -n localhost,104.25.165.23,dgraph.io,2400:cb00:2048:1::6819:a417 +``` + +:::tipYou must delete the old node cert and key before you can generate a new pair.::: + +:::noteWhen using host names for node certificates, including _localhost_, your clients must connect to the matching host name -- such as _localhost_ not 127.0.0.1. If you need to use IP addresses, then add them to the node certificate.::: + +### Certificate inspection + +The command `dgraph cert ls` lists all certificates and keys in the `--dir` +directory (default `dgraph-tls`), along with details to inspect and validate +cert/key pairs. + +Example of command output: + +```sh +-rw-r--r-- ca.crt - Dgraph Root CA certificate + Issuer: Dgraph Labs, Inc. + S/N: 043c4d8fdd347f06 + Expiration: 02 Apr 29 16:56 UTC +SHA-256 Digest: 4A2B0F0F 716BF5B6 C603E01A 6229D681 0B2AFDC5 CADF5A0D 17D59299 116119E5 + +-r-------- ca.key - Dgraph Root CA key +SHA-256 Digest: 4A2B0F0F 716BF5B6 C603E01A 6229D681 0B2AFDC5 CADF5A0D 17D59299 116119E5 + +-rw-r--r-- client.admin.crt - Dgraph client certificate: admin + Issuer: Dgraph Labs, Inc. + CA Verify: PASSED + S/N: 297e4cb4f97c71f9 + Expiration: 03 Apr 24 17:29 UTC +SHA-256 Digest: D23EFB61 DE03C735 EB07B318 DB70D471 D3FE8556 B15D084C 62675857 788DF26C + +-rw------- client.admin.key - Dgraph Client key +SHA-256 Digest: D23EFB61 DE03C735 EB07B318 DB70D471 D3FE8556 B15D084C 62675857 788DF26C + +-rw-r--r-- node.crt - Dgraph Node certificate + Issuer: Dgraph Labs, Inc. + CA Verify: PASSED + S/N: 795ff0e0146fdb2d + Expiration: 03 Apr 24 17:00 UTC + Hosts: 104.25.165.23, 2400:cb00:2048:1::6819:a417, localhost, dgraph.io +SHA-256 Digest: 7E243ED5 3286AE71 B9B4E26C 5B2293DA D3E7F336 1B1AFFA7 885E8767 B1A84D28 + +-rw------- node.key - Dgraph Node key +SHA-256 Digest: 7E243ED5 3286AE71 B9B4E26C 5B2293DA D3E7F336 1B1AFFA7 885E8767 B1A84D28 +``` + +Important points: + +* The cert/key pairs should always have matching SHA-256 digests. Otherwise, the cert(s) must be + regenerated. If the Root CA pair differ, all cert/key must be regenerated; the flag `--force` + can help. +* All certificates must pass Dgraph CA verification. +* All key files should have the least access permissions, especially the `ca.key`, but be readable. +* Key files won't be overwritten if they have limited access, even with `--force`. +* Node certificates are only valid for the hosts listed. +* Client certificates are only valid for the named client/user. + +## TLS options + +Starting in release v21.03, pre-existing TLS configuration options have been +replaced by the `--tls` [superflag](/dgraph-overview/cli/superflags) +and its options. The following `--tls` configuration options are available for +Dgraph Alpha and Dgraph Zero nodes: + +* `ca-cert ` - Path and filename of the Dgraph Root CA (for + example, `ca.crt`) +* `server-cert ` - Path and filename of the node certificate (for + example, `node.crt`) +* `server-key ` - Path and filename of the node certificate private + key (for example, `node.key`) +* `use-system-ca` - Include System CA with Dgraph Root CA. +* `client-auth-type ` - TLS client authentication used to validate client + connections from external ports. To learn more, see + [Client Authentication Options](#client-authentication-options). + +:::note +Dgraph now allows you to specify the path and filename of the CA root +certificate, the node certificate, and the node certificate private key. So, +these files do not need to have specific filenames or exist in the same +directory, as in previous Dgraph versions that used the `--tls_dir` flag. +::: + +You can configure Dgraph Live Loader with the following `--tls` options: + +* `ca-cert ` - Dgraph root CA, such as `./tls/ca.crt` +* `use-system-ca` - Include System CA with Dgraph Root CA. +* `client-cert` - User cert file provided by the client to Alpha +* `client-key` - User private key file provided by the client to Alpha +* `server-name ` - Server name, used for validating the server's TLS host name. + + +### Using TLS with only external ports encrypted + +To encrypt communication between Dgraph server nodes and clients over external +ports, you can configure certificates and run Dgraph Alpha and Dgraph Zero using +the following commands: + +Dgraph Alpha: + +```sh +# First, create the root CA, Alpha node certificate and private keys, if not already created. +# Note that you must specify in node.crt the host name or IP addresses that clients use connect: +$ dgraph cert -n localhost,104.25.165.23,104.25.165.25,104.25.165.27 +# Set up Dgraph Alpha nodes using the following default command (after generating certificates and private keys) +$ dgraph alpha --tls "ca-cert=/dgraph-tls/ca.crt; server-cert=/dgraph-tls/node.crt; server-key=/dgraph-tls/node.key" +``` + +Dgraph Zero: + +```sh +# First, copy the root CA, node certificates and private keys used to set up Dgraph Alpha (above) to the Dgraph Zero node. +# Optionally, you can generate and use a separate Zero node certificate, where you specify the host name or IP addresses used by Live Loader and Bulk Loader to connect to Dgraph Zero. +# Next, set up Dgraph Zero nodes using the following default command: +$ dgraph zero --tls "ca-cert=/dgraph-tls/ca.crt; server-cert=/dgraph-tls/node.crt; server-key=/dgraph-tls/node.key" +``` + +You can then run Dgraph Live Loader on a Dgraph Alpha node using the following command: + +```sh +# Now, connect to server using TLS +$ dgraph live --tls "ca-cert=./dgraph-tls/ca.crt; server-name=localhost" -s 21million.schema -f 21million.rdf.gz +``` + +### Using TLS with internal and external ports encrypted + +If you require client authentication (mutual TLS, or mTLS), you can configure +certificates and run Dgraph Alpha and Dgraph Zero with settings that encrypt +both internal ports (those used within the cluster) as well as external ports +(those used by clients that connect to the cluster, including Bulk Loader and +Live Loader). + +The following example shows how to encrypt both internal and external ports: + +Dgraph Alpha: + +```sh +# First create the root CA, node certificates and private keys, if not already created. +# Note that you must specify the host name or IP address for other nodes that will share node.crt. +$ dgraph cert -n localhost,104.25.165.23,104.25.165.25,104.25.165.27 +# Set up Dgraph Alpha nodes using the following default command (after generating certificates and private keys) +$ dgraph alpha + --tls "ca-cert=/dgraph-tls/ca.crt; server-cert=/dgraph-tls/node.crt; server-key=/dgraph-tls/node.key; +internal-port=true; client-cert=/dgraph-tls/client.alpha1.crt; client-key=/dgraph-tls/client.alpha1.key" +``` + +Dgraph Zero: + +```sh +# First, copy the certificates and private keys used to set up Dgraph Alpha (above) to the Dgraph Zero node. +# Next, set up Dgraph Zero nodes using the following default command: +$ dgraph zero + --tls "ca-cert=/dgraph-tls/ca.crt; server-cert=/dgraph-tls/node.crt; server-key=/dgraph-tls/node.key; internal-port=true; client-cert=/dgraph-tls/client.zero1.crt; client-key=/dgraph-tls/client.zero1.key" +``` + +You can then run Dgraph Live Loader using the following: + +```sh +# Now, connect to server using mTLS (mutual TLS) +$ dgraph live + --tls "ca-cert=./tls/ca.crt; client-cert=./tls/client.dgraphuser.crt; client-key=./tls/client.dgraphuser.key; server-name=localhost; internal-port=true" \ + -s 21million.schema \ + -f 21million.rdf.gz +``` + +### Client Authentication Options + +The server will always **request** client authentication. There are four +different values for the `client-auth-type` option that change the security +policy of the client certificate. + +| Value | Client Cert/Key | Client Certificate Verified | +|--------------------|-----------------|--------------------| +| `REQUEST` | optional | Client certificate is not VERIFIED if provided. (least secure) | +| `REQUIREANY` | required | Client certificate is never VERIFIED | +| `VERIFYIFGIVEN` | optional | Client certificate is VERIFIED if provided (default) | +| `REQUIREANDVERIFY` | required | Client certificate is always VERIFIED (most secure) | + +`REQUIREANDVERIFY` is the most secure but also the most difficult to configure +for clients. When using this value, the value of `server-name` is matched +against the certificate SANs values and the connection host. + +:::noteIf mTLS is enabled using `internal-port=true`, +internal ports (by default, 5080 and 7080) use the `REQUIREANDVERIFY` setting. +Unless otherwise configured, external ports (by default, 9080, 8080 and 6080) +use the `VERIFYIFGIVEN` setting. Changing the `client-auth-type` option to +another setting only affects client authentication on external ports.::: + +## Using Ratel UI with Client authentication + +Ratel UI (and any other JavaScript clients built on top of `dgraph-js-http`) +connect to Dgraph servers via HTTP, when TLS is enabled servers begin to expect +HTTPS requests only. + +If you haven't already created the CA certificate and the node certificate for alpha servers from the earlier instructions (see [Dgraph Certificate Management Tool](#dgraph-certificate-management-tool)), the first step would be to generate these certificates, it can be done by the following command: +```sh +# Create rootCA and node certificates/keys +$ dgraph cert -n localhost +``` + +If Dgraph Alpha's `client-auth-type` option is set to `REQUEST` or `VERIFYIFGIVEN` +(default), then client certificate is not mandatory. The steps after generating +CA/node certificate are as follows: + +### Step 1. Install Dgraph Root CA into System CA +##### Linux (Debian/Ubuntu) +```sh +# Copy the generated CA to the ca-certificates directory +$ cp /path/to/ca.crt /usr/local/share/ca-certificates/ca.crt +# Update the CA store +$ sudo update-ca-certificates` +``` + +### Step 2. Install Dgraph Root CA into Web Browsers Trusted CA List + +##### Firefox + +* Choose Preferences -> Privacy & Security -> View Certificates -> Authorities +* Click on Import and import the `ca.crt` + +##### Chrome + +* Choose Settings -> Privacy and Security -> Security -> Manage Certificates -> Authorities +* Click on Import and import the `ca.crt` + +### Step 3. Point Ratel to the `https://` endpoint of alpha server. + +* Change the Dgraph Alpha server address to `https://` instead of `http://`, for example `https://localhost:8080`. + +For `REQUIREANY` and `REQUIREANDVERIFY` as `client-auth-type` option, you need to follow the steps above and you +also need to install client certificate on your browser: + +1. Generate a client certificate: `dgraph cert -c laptopuser`. +2. Convert it to a `.p12` file: + ```sh + openssl pkcs12 -export \ + -out laptopuser.p12 \ + -in tls/client.laptopuser.crt \ + -inkey tls/client.laptopuser.key + ``` + Use any password you like for export, it is used to encrypt the p12 file. + +3. Import the client certificate to your browser. It can be done in Chrome as follows: + * Choose Settings -> Privacy and Security -> Security -> Manage Certificates -> Your Certificates + * Click on Import and import the `laptopuser.p12`. + +:::note +Mutual TLS may not work in Firefox because Firefox is unable to send privately-signed client certificates, this issue is filed [here](https://bugzilla.mozilla.org/show_bug.cgi?id=1662607). +::: + + +Next time you use Ratel to connect to an alpha with Client authentication +enabled the browser will prompt you for a client certificate to use. Select the client's +certificate you've imported in the step above and queries/mutations will +succeed. + +## Using Curl with Client authentication + +When TLS is enabled, `curl` requests to Dgraph will need some specific options to work. +For instance (for changing draining mode): + +``` +curl --silent https://localhost:8080/admin/draining +``` + +If you are using `curl` with [Client Authentication](#client-authentication-options) set to `REQUIREANY` or `REQUIREANDVERIFY`, you will need to provide the client certificate and private key. For instance (for an export request): + +``` +curl --silent --cacert ./tls/ca.crt --cert ./tls/client.dgraphuser.crt --key ./tls/client.dgraphuser.key https://localhost:8080/admin/draining +``` + +Refer to the `curl` documentation for further information on its TLS options. + +## Access Data Using a Client + +Some examples of connecting via a [Client](/clients) when TLS is in use can be found below: + +- [dgraph4j](https://github.com/dgraph-io/dgraph4j#creating-a-secure-client-using-tls) +- [dgraph-js](https://github.com/dgraph-io/dgraph-js/tree/master/examples/tls) +- [dgo](https://github.com/dgraph-io/dgraph/blob/main/tlstest/acl/acl_over_tls_test.go) +- [pydgraph](https://github.com/dgraph-io/pydgraph/tree/master/examples/tls) + +## Troubleshooting Ratel's Client authentication + +If you are getting errors in Ratel when TLS is enabled, try opening your Dgraph +Alpha URL as a web page. + +Assuming you are running Dgraph on your local machine, opening +`https://localhost:8080/` in the browser should produce a message `Dgraph browser is available for running separately using the dgraph-ratel binary`. + +In case you are getting a connection error, try not passing the +`client-auth-type` flag when starting an alpha. If you are still getting an +error, check that your hostname is correct and the port is open; then make sure +that "Dgraph Root CA" certificate is installed and trusted correctly. + +After that, if things work without passing `client-auth-type` but stop working when +`REQUIREANY` and `REQUIREANDVERIFY` are set, make sure the `.p12` file is +installed correctly. diff --git a/docusaurus-docs/docs/admin/troubleshooting.md b/docusaurus-docs/docs/admin/troubleshooting.md new file mode 100644 index 00000000..f3c95bda --- /dev/null +++ b/docusaurus-docs/docs/admin/troubleshooting.md @@ -0,0 +1,70 @@ +--- +title: Troubleshooting +--- + +This page provides tips on how to troubleshoot issues with running Dgraph. + +## Cluster Setup Checklist + +When setting up a cluster, verify the following requirements are met: + +* Is at least one Dgraph Zero node running? +* Is each Dgraph Alpha instance in the cluster set up correctly? +* Will each Dgraph Alpha instance be accessible to all peers on 7080 (+ any port offset)? +* Does each instance have a unique ID on startup? +* Has `--bindall=true` been set for networked communication? + +See the [Production Checklist](installation/production-checklist) for comprehensive deployment requirements. + +## Running out of memory (OOM) + +When you [bulk load](/dgraph-overview/migration/bulk-loader) +or [backup](/dgraph-overview/admin/enterprise-features/binary-backups) your data, +Dgraph can consume more memory than usual due to a high volume of writes. This +can cause OOM crashes. + +You can take the following steps to help avoid OOM crashes: + +* **Increase the amount of memory available**: If you run Dgraph with insufficient +memory, that can result in OOM crashes. The recommended minimum RAM to run Dgraph +on desktops and laptops (single-host deployment) is 16GB. For servers in a +cluster deployment, the recommended minimum is 8GB per server. This applies to +EC2 and GCE instances, as well as on-premises servers. +* **Reduce the number of Go routines**: You can troubleshoot OOM issues by reducing +the number of Go routines (`goroutines`) used by Dgraph from the default value +of eight. For example, you can reduce the `goroutines` that Dgraph uses to four +by calling the `dgraph alpha` command with the following option: + + `--badger "goroutines=4"` + +## "Too many open files" errors + +If Dgraph logs "too many open files" errors, you should increase the per-process +open file descriptor limit to permit more open files. During normal operations, +Dgraph must be able to open many files. Your operating system may have an open +file descriptor limit with a low default value that isn't adequate for a database +like Dgraph. If so, you might need to increase this limit. + +On Linux and Mac, you can get file descriptor limit settings with the `ulimit` +command, as follows: + +* Get hard limit: `ulimit -n -H` +* Get soft limit: `ulimit -n -S` + +A soft limit of `1048576` open files is the recommended minimum to use Dgraph in +production, but you can try increasing this soft limit if you continue to see +this error. To learn more, see the `ulimit` documentation for your operating +system. + +:::note +Depending on your OS, your shell session limits might not be the same as the Dgraph process limits. +::: + +For example, to properly set up the `ulimit` values on Ubuntu 20.04 systems: + +```sh +sudo sed -i 's/#DefaultLimitNOFILE=/DefaultLimitNOFILE=1048576/' /etc/systemd/system.conf +sudo sed -i 's/#DefaultLimitNOFILE=/DefaultLimitNOFILE=1048576/' /etc/systemd/user.conf +``` + +This affects the base limits for all processes. After a reboot, your OS will pick up the new values. diff --git a/docusaurus-docs/docs/cli/acl.md b/docusaurus-docs/docs/cli/acl.md new file mode 100644 index 00000000..c8a614be --- /dev/null +++ b/docusaurus-docs/docs/cli/acl.md @@ -0,0 +1,40 @@ +--- +title: dgraph acl +--- + +#### `dgraph acl` + +This command runs the Dgraph Enterprise Edition ACL tool. The following replicates +the help listing shown when you run `dgraph acl --help`: + +```shell +Run the Dgraph Enterprise Edition ACL tool +Usage: + dgraph acl [command] + +Available Commands: + add Run Dgraph acl tool to add a user or group + del Run Dgraph acl tool to delete a user or group + info Show info about a user or group + mod Run Dgraph acl tool to modify a user's password, a user's group list, or agroup's predicate permissions + +Flags: + -a, --alpha string Dgraph Alpha gRPC server address (default "127.0.0.1:9080") + --guardian-creds string Login credentials for the guardian + user defines the username to login. + password defines the password of the user. + namespace defines the namespace to log into. + Sample flag could look like --guardian-creds user=username;password=mypass;namespace=2 + -h, --help help for acl + --tls string TLS Client options + ca-cert=; The CA cert file used to verify server certificates. Required for enabling TLS. + client-cert=; (Optional) The Cert file provided by the client to the server. + client-key=; (Optional) The private Key file provided by the clients to the server. + internal-port=false; (Optional) Enable inter-node TLS encryption between cluster nodes. + server-name=; Used to verify the server hostname. + use-system-ca=true; Includes System CA into CA Certs. + (default "use-system-ca=true; internal-port=false;") + +Use "dgraph acl [command] --help" for more information about a command. +``` + diff --git a/docusaurus-docs/docs/cli/alpha.md b/docusaurus-docs/docs/cli/alpha.md new file mode 100644 index 00000000..a75fd74b --- /dev/null +++ b/docusaurus-docs/docs/cli/alpha.md @@ -0,0 +1,173 @@ +--- +title: dgraph alpha +--- + +The `dgraph alpha` command runs Dgraph Alpha database nodes, which store data and serve queries in your deployment. + +## Overview + +A Dgraph Alpha instance stores the data. Each Dgraph Alpha is responsible for storing and serving one data group. If multiple Alphas serve the same group, they form a Raft group and provide synchronous replication. + +## Usage + +```bash +dgraph alpha [flags] +``` + +## Key Flags + +| Flag | Description | Default | +|------|-------------|---------| +| `-p, --postings` | Directory to store posting lists | `"p"` | +| `-w, --wal` | Directory to store raft write-ahead logs | `"w"` | +| `--tmp` | Directory to store temporary buffers | `"t"` | +| `-z, --zero` | Comma separated list of Dgraph Zero addresses | `"localhost:5080"` | +| `--my` | Address:port of this server for cluster communication | | +| `-o, --port_offset` | Value added to all listening port numbers [Internal=7080, HTTP=8080, Grpc=9080] | `0` | +| `--export` | Folder in which to store exports | `"export"` | +| `--custom_tokenizers` | Comma separated list of tokenizer plugins for custom indices | | + +## Superflags + +Alpha uses several [superflags](/dgraph-overview/cli/superflags) for advanced configuration: + +- `--acl` - Access Control List settings (Enterprise) +- `--audit` - Audit logging configuration +- `--badger` - Badger database options +- `--cache` - Cache configuration +- `--cdc` - Change Data Capture options +- `--encryption` - Encryption at rest (Enterprise) +- `--graphql` - GraphQL settings +- `--limit` - Query and mutation limits +- `--raft` - Raft consensus options +- `--security` - Security settings (token, whitelist) +- `--telemetry` - Telemetry and crash reporting +- `--tls` - TLS configuration +- `--trace` - Distributed tracing +- `--vault` - HashiCorp Vault integration + +## Full Reference + +```shell +A Dgraph Alpha instance stores the data. Each Dgraph Alpha is responsible for +storing and serving one data group. If multiple Alphas serve the same group, +they form a Raft group and provide synchronous replication. + +Usage: + dgraph alpha [flags] + +Flags: + --acl string [Enterprise Feature] ACL options + access-ttl=6h; The TTL for the access JWT. + refresh-ttl=30d; The TTL for the refresh JWT. + secret-file=; The file that stores the HMAC secret, which is used for signing the JWT and should have at least 32 ASCII characters. Required to enable ACLs. + (default "access-ttl=6h; refresh-ttl=30d; secret-file=;") + --audit string Audit options + compress=false; Enables the compression of old audit logs. + days=10; The number of days audit logs will be preserved. + encrypt-file=; The path to the key file to be used for audit log encryption. + output=; [stdout, /path/to/dir] This specifies where audit logs should be output to. + "stdout" is for standard output. You can also specify the directory where audit logs + will be saved. When stdout is specified as output other fields will be ignored. + size=100; The audit log max size in MB after which it will be rolled over. + (default "compress=false; days=10; size=100; dir=; output=; encrypt-file=;") + --badger string Badger options + compression=snappy; [none, zstd:level, snappy] Specifies the compression algorithm and + compression level (if applicable) for the postings directory."none" would disable + compression, while "zstd:1" would set zstd compression at level 1. + numgoroutines=8; The number of goroutines to use in badger.Stream. + max-retries=-1; Commits to disk will give up after these number of retries to prevent locking the worker in a failed state. Use -1 to retry infinitely. + (default "compression=snappy; numgoroutines=8; max-retries=-1;") + --cache string Cache options + percentage=0,65,35; Cache percentages summing up to 100 for various caches (FORMAT: PostingListCache,PstoreBlockCache,PstoreIndexCache) + size-mb=1024; Total size of cache (in MB) to be used in Dgraph. + (default "size-mb=1024; percentage=0,65,35;") + --cdc string Change Data Capture options + ca-cert=; The path to CA cert file for TLS encryption. + client-cert=; The path to client cert file for TLS encryption. + client-key=; The path to client key file for TLS encryption. + file=; The path where audit logs will be stored. + kafka=; A comma separated list of Kafka hosts. + sasl-password=; The SASL password for Kafka. + sasl-user=; The SASL username for Kafka. + (default "file=; kafka=; sasl_user=; sasl_password=; ca_cert=; client_cert=; client_key=;") + --custom_tokenizers string Comma separated list of tokenizer plugins for custom indices. + --encryption string [Enterprise Feature] Encryption At Rest options + key-file=; The file that stores the symmetric key of length 16, 24, or 32 bytes. The key size determines the chosen AES cipher (AES-128, AES-192, and AES-256 respectively). + (default "key-file=;") + --export string Folder in which to store exports. (default "export") + --graphql string GraphQL options + debug=false; Enables debug mode in GraphQL. This returns auth errors to clients, and we do not recommend turning it on for production. + extensions=true; Enables extensions in GraphQL response body. + introspection=true; Enables GraphQL schema introspection. + lambda-url=; The URL of a lambda server that implements custom GraphQL Javascript resolvers. + poll-interval=1s; The polling interval for GraphQL subscription. + (default "introspection=true; debug=false; extensions=true; poll-interval=1s; lambda-url=;") + -h, --help help for alpha + --limit string Limit options + disallow-drop=false; Set disallow-drop to true to block drop-all and drop-data operation. It still allows dropping attributes and types. + mutations-nquad=1000000; The maximum number of nquads that can be inserted in a mutation request. + mutations=allow; [allow, disallow, strict] The mutations mode to use. + normalize-node=10000; The maximum number of nodes that can be returned in a query that uses the normalize directive. + query-edge=1000000; The maximum number of edges that can be returned in a query. This applies to shortest path and recursive queries. + query-timeout=0ms; Maximum time after which a query execution will fail. If set to 0, the timeout is infinite. + txn-abort-after=5m; Abort any pending transactions older than this duration. The liveness of a transaction is determined by its last mutation. + max-pending-queries=10000; Number of maximum pending queries before we reject them as too many requests. + (default "mutations=allow; query-edge=1000000; normalize-node=10000; mutations-nquad=1000000; disallow-drop=false; query-timeout=0ms; txn-abort-after=5m; max-pending-queries=10000") + --my string addr:port of this server, so other Dgraph servers can talk to this. + -o, --port_offset int Value added to all listening port numbers. [Internal=7080, HTTP=8080, Grpc=9080] + -p, --postings string Directory to store posting lists. (default "p") + --raft string Raft options + group=; Provides an optional Raft Group ID that this Alpha would indicate to Zero to join. + idx=; Provides an optional Raft ID that this Alpha would use to join Raft groups. + learner=false; Make this Alpha a "learner" node. In learner mode, this Alpha will not participate in Raft elections. This can be used to achieve a read-only replica. + pending-proposals=256; Number of pending mutation proposals. Useful for rate limiting. + snapshot-after-duration=30m; Frequency at which we should create a new raft snapshots. Set to 0 to disable duration based snapshot. + snapshot-after-entries=10000; Create a new Raft snapshot after N number of Raft entries. The lower this number, the more frequent snapshot creation will be. Snapshots are created only if both snapshot-after-duration and snapshot-after-entries threshold are crossed. + (default "learner=false; snapshot-after-entries=10000; snapshot-after-duration=30m; pending-proposals=256; idx=; group=;") + --security string Security options + token=; If set, all Admin requests to Dgraph will need to have this token. The token can be passed as follows: for HTTP requests, in the X-Dgraph-AuthToken header. For Grpc, in auth-token key in the context. + whitelist=; A comma separated list of IP addresses, IP ranges, CIDR blocks, or hostnames you wish to whitelist for performing admin actions (i.e., --security "whitelist=144.142.126.254,127.0.0.1:127.0.0.3,192.168.0.0/16,host.docker.internal"). + (default "token=; whitelist=;") + --survive string Choose between "process" or "filesystem". + If set to "process", there would be no data loss in case of process crash, but the behavior would be nondeterministic in case of filesystem crash. + If set to "filesystem", blocking sync would be called after every write, hence guaranteeing no data loss in case of hard reboot. + Most users should be OK with choosing "process". (default "process") + --telemetry string Telemetry (diagnostic) options + reports=true; Send anonymous telemetry data to Dgraph devs. + sentry=true; Send crash events to Sentry. + (default "reports=true; sentry=true;") + --tls string TLS Server options + ca-cert=; The CA cert file used to verify server certificates. Required for enabling TLS. + client-auth-type=VERIFYIFGIVEN; The TLS client authentication method. + client-cert=; (Optional) The client Cert file which is needed to connect as a client with the other nodes in the cluster. + client-key=; (Optional) The private client Key file which is needed to connect as a client with the other nodes in the cluster. + internal-port=false; (Optional) Enable inter-node TLS encryption between cluster nodes. + server-cert=; The server Cert file which is needed to initiate the server in the cluster. + server-key=; The server Key file which is needed to initiate the server in the cluster. + use-system-ca=true; Includes System CA into CA Certs. + (default "use-system-ca=true; client-auth-type=VERIFYIFGIVEN; internal-port=false;") + --tmp string Directory to store temporary buffers. (default "t") + --trace string Trace options + datadog=; URL of Datadog to send OpenCensus traces. As of now, the trace exporter does not support annotation logs and discards them. + jaeger=; URL of Jaeger to send OpenCensus traces. + ratio=0.01; The ratio of queries to trace. + (default "ratio=0.01; jaeger=; datadog=;") + --vault string Vault options + acl-field=; Vault field containing ACL key. + acl-format=base64; ACL key format, can be 'raw' or 'base64'. + addr=http://localhost:8200; Vault server address (format: http://ip:port). + enc-field=; Vault field containing encryption key. + enc-format=base64; Encryption key format, can be 'raw' or 'base64'. + path=secret/data/dgraph; Vault KV store path (e.g. 'secret/data/dgraph' for KV V2, 'kv/dgraph' for KV V1). + role-id-file=; Vault RoleID file, used for AppRole authentication. + secret-id-file=; Vault SecretID file, used for AppRole authentication. + (default "addr=http://localhost:8200; role-id-file=; secret-id-file=; path=secret/data/dgraph; acl-field=; acl-format=base64; enc-field=; enc-format=base64") + -w, --wal string Directory to store raft write-ahead logs. (default "w") + -z, --zero string Comma separated list of Dgraph Zero addresses of the form IP_ADDRESS:PORT. (default "localhost:5080") + +Use "dgraph alpha [command] --help" for more information about a command. +``` + + + diff --git a/docusaurus-docs/docs/cli/audit.md b/docusaurus-docs/docs/cli/audit.md new file mode 100644 index 00000000..02d51ac6 --- /dev/null +++ b/docusaurus-docs/docs/cli/audit.md @@ -0,0 +1,53 @@ +--- +title: Dgraph CLI Reference +--- + +#### `dgraph audit` + +This command decrypts audit files. These files are created using the `--audit` +when you run the `dgraph alpha` command. The following replicates the help listing +shown when you run `dgraph audit --help`: + +```shell +Dgraph audit tool +Usage: + dgraph audit [command] + +Available Commands: + decrypt Run Dgraph Audit tool to decrypt audit files + +Flags: + -h, --help help for audit + +Use "dgraph audit [command] --help" for more information about a command. +``` + +#### `dgraph cert` + +This command lets you manage [TLS certificates](/dgraph-overview/admin/security/tls-configuration). +The following replicates the help listing shown when you run `dgraph cert --help`: + +```shell +Dgraph TLS certificate management +Usage: + dgraph cert [flags] + dgraph cert [command] + +Available Commands: + ls lists certificates and keys + +Flags: + -k, --ca-key string path to the CA private key (default "ca.key") + -c, --client string create cert/key pair for a client name + -d, --dir string directory containing TLS certs and keys (default "tls") + --duration int duration of cert validity in days (default 365) + -e, --elliptic-curve string ECDSA curve for private key. Values are: "P224", "P256", "P384", "P521". + --force overwrite any existing key and cert + -h, --help help for cert + -r, --keysize int RSA key bit size for creating new keys (default 2048) + -n, --nodes strings creates cert/key pair for nodes + --verify verify certs against root CA when creating (default true) + +Use "dgraph cert [command] --help" for more information about a command. +``` + diff --git a/docusaurus-docs/docs/cli/bulk.md b/docusaurus-docs/docs/cli/bulk.md new file mode 100644 index 00000000..6d5fdd43 --- /dev/null +++ b/docusaurus-docs/docs/cli/bulk.md @@ -0,0 +1,277 @@ +--- +title: dgraph bulk +--- + +The `dgraph bulk` command runs the Dgraph Bulk Loader, which efficiently imports large datasets into Dgraph by bypassing the Alpha server and directly creating posting list files. + +## Overview + +The Bulk Loader is designed for initial data import of large datasets (millions or billions of triples). It's significantly faster than the Live Loader because it: +- Processes data in parallel using MapReduce-like operations +- Creates posting list files directly without going through a running Alpha +- Shards data across multiple output directories for distributed deployment + +:::note +The Bulk Loader should be used for initial import only. For incremental updates on a running cluster, use the [Live Loader](/dgraph-overview/cli/live). +::: + +## Usage + +```bash +dgraph bulk [flags] +``` + +## Key Flags + +| Flag | Description | Default | +|------|-------------|---------| +| `-f, --files` | Location of *.rdf(.gz) or *.json(.gz) file(s) to load | | +| `-s, --schema` | Location of schema file | | +| `-g, --graphql_schema` | Location of the GraphQL schema file | | +| `--out` | Location to write the final dgraph data directories | `"./out"` | +| `--reduce_shards` | Number of reduce shards (determines number of Alpha nodes) | `1` | +| `--map_shards` | Number of map output shards | `1` | +| `-j, --num_go_routines` | Number of worker threads to use | `1` | +| `--tmp` | Temp directory for on-disk scratch space | `"tmp"` | +| `-z, --zero` | gRPC address for Dgraph Zero | `"localhost:5080"` | +| `--format` | Specify file format (rdf or json) | | +| `--replace_out` | Replace out directory if it exists | `false` | + +## Superflags + +Bulk uses several [superflags](/dgraph-overview/cli/superflags): + +- `--badger` - Badger database options (compression, numgoroutines) +- `--encryption` - Encryption at rest +- `--tls` - TLS configuration +- `--vault` - HashiCorp Vault integration + +## Examples + +### Basic RDF Import + +```bash +dgraph bulk --files data.rdf.gz --schema schema.txt --out ./out +``` + +### Import Multiple Files + +```bash +dgraph bulk --files "data1.rdf.gz,data2.rdf.gz,data3.rdf.gz" \ + --schema schema.txt \ + --out ./out +``` + +### Import with Multiple Shards + +For a 3-node Alpha cluster with replication factor of 3: + +```bash +dgraph bulk --files data.rdf.gz \ + --schema schema.txt \ + --reduce_shards 1 \ + --out ./out +``` + +For a 6-node Alpha cluster (2 groups with 3 replicas each): + +```bash +dgraph bulk --files data.rdf.gz \ + --schema schema.txt \ + --reduce_shards 2 \ + --out ./out +``` + +### Improve Performance + +Increase parallelism for faster loading: + +```bash +dgraph bulk --files data.rdf.gz \ + --schema schema.txt \ + --num_go_routines 8 \ + --map_shards 4 \ + --reduce_shards 2 \ + --out ./out +``` + +### JSON Format + +```bash +dgraph bulk --files data.json.gz \ + --schema schema.txt \ + --format json \ + --out ./out +``` + +### With GraphQL Schema + +```bash +dgraph bulk --files data.rdf.gz \ + --schema schema.txt \ + --graphql_schema graphql_schema.graphql \ + --out ./out +``` + +### Encrypted Output + +```bash +dgraph bulk --files data.rdf.gz \ + --schema schema.txt \ + --encryption "key-file=./enc-key" \ + --encrypted_out \ + --out ./out +``` + +## Full Reference + +```shell + Run Dgraph Bulk Loader +Usage: + dgraph bulk [flags] + +Flags: + --badger string Badger options (Refer to badger documentation for all possible options) + compression=snappy; Specifies the compression algorithm and compression level (if applicable) for the postings directory. "none" would disable compression, while "zstd:1" would set zstd compression at level 1. + numgoroutines=8; The number of goroutines to use in badger.Stream. + (default "compression=snappy; numgoroutines=8;") + --cleanup_tmp Clean up the tmp directory after the loader finishes. Setting this to false allows the bulk loader can be re-run while skipping the map phase. (default true) + --custom_tokenizers string Comma separated list of tokenizer plugins + --encrypted Flag to indicate whether schema and data files are encrypted. Must be specified with --encryption or vault option(s). + --encrypted_out Flag to indicate whether to encrypt the output. Must be specified with --encryption or vault option(s). + --encryption string [Enterprise Feature] Encryption At Rest options + key-file=; The file that stores the symmetric key of length 16, 24, or 32 bytes. The key size determines the chosen AES cipher (AES-128, AES-192, and AES-256 respectively). + (default "key-file=;") + -f, --files string Location of *.rdf(.gz) or *.json(.gz) file(s) to load. + --force-namespace uint Namespace onto which to load the data. If not set, will preserve the namespace. (default 18446744073709551615) + --format string Specify file format (rdf or json) instead of getting it from filename. + -g, --graphql_schema string Location of the GraphQL schema file. + -h, --help help for bulk + --http string Address to serve http (pprof). (default "localhost:8080") + --ignore_errors ignore line parsing errors in rdf files + --map_shards int Number of map output shards. Must be greater than or equal to the number of reduce shards. Increasing allows more evenly sized reduce shards, at the expense of increased memory usage. (default 1) + --mapoutput_mb int The estimated size of each map file output. Increasing this increases memory usage. (default 2048) + --new_uids Ignore UIDs in load files and assign new ones. + -j, --num_go_routines int Number of worker threads to use. MORE THREADS LEAD TO HIGHER RAM USAGE. (default 1) + --out string Location to write the final dgraph data directories. (default "./out") + --partition_mb int Pick a partition key every N megabytes of data. (default 4) + --reduce_shards int Number of reduce shards. This determines the number of dgraph instances in the final cluster. Increasing this potentially decreases the reduce stage runtime by using more parallelism, but increases memory usage. (default 1) + --reducers int Number of reducers to run concurrently. Increasing this can improve performance, and must be less than or equal to the number of reduce shards. (default 1) + --replace_out Replace out directory and its contents if it exists. + -s, --schema string Location of schema file. + --skip_map_phase Skip the map phase (assumes that map output files already exist). + --store_xids Generate an xid edge for each node. + --tls string TLS Client options + ca-cert=; The CA cert file used to verify server certificates. Required for enabling TLS. + client-cert=; (Optional) The Cert file provided by the client to the server. + client-key=; (Optional) The private Key file provided by the clients to the server. + internal-port=false; (Optional) Enable inter-node TLS encryption between cluster nodes. + server-name=; Used to verify the server hostname. + use-system-ca=true; Includes System CA into CA Certs. + (default "use-system-ca=true; internal-port=false;") + --tmp string Temp directory used to use for on-disk scratch space. Requires free space proportional to the size of the RDF file and the amount of indexing used. (default "tmp") + --vault string Vault options + acl-field=; Vault field containing ACL key. + acl-format=base64; ACL key format, can be 'raw' or 'base64'. + addr=http://localhost:8200; Vault server address (format: http://ip:port). + enc-field=; Vault field containing encryption key. + enc-format=base64; Encryption key format, can be 'raw' or 'base64'. + path=secret/data/dgraph; Vault KV store path (e.g. 'secret/data/dgraph' for KV V2, 'kv/dgraph' for KV V1). + role-id-file=; Vault RoleID file, used for AppRole authentication. + secret-id-file=; Vault SecretID file, used for AppRole authentication. + (default "addr=http://localhost:8200; role-id-file=; secret-id-file=; path=secret/data/dgraph; acl-field=; acl-format=base64; enc-field=; enc-format=base64") + --version Prints the version of Dgraph Bulk Loader. + --xidmap string Directory to store xid to uid mapping + -z, --zero string gRPC address for Dgraph zero (default "localhost:5080") + +Use "dgraph bulk [command] --help" for more information about a command. +``` + +## Output Structure + +After bulk loading, the `--out` directory will contain subdirectories for each group: + +``` +out/ +├── 0/ +│ └── p/ # Posting lists for group 1 +│ ├── 000000.sst +│ ├── 000001.sst +│ └── MANIFEST +└── 1/ + └── p/ # Posting lists for group 2 (if reduce_shards > 1) + ├── 000000.sst + ├── 000001.sst + └── MANIFEST +``` + +Each subdirectory corresponds to an Alpha group and should be copied to the appropriate Alpha node's `-p` directory. + +## Performance Tuning + +### Memory Considerations + +The Bulk Loader is memory-intensive. Key parameters affecting memory: + +- `--num_go_routines`: More threads = faster but more RAM +- `--map_shards`: More shards = better distribution but more RAM +- `--mapoutput_mb`: Larger values = more RAM per map task + +**Rule of thumb**: For N GB of input data, allocate at least N GB of RAM. + +### Optimizing for Large Datasets + +For datasets > 100 million triples: + +```bash +dgraph bulk --files data.rdf.gz \ + --schema schema.txt \ + --num_go_routines 16 \ + --map_shards 8 \ + --reduce_shards 3 \ + --mapoutput_mb 4096 \ + --out ./out +``` + +### Disk Space Requirements + +Ensure adequate disk space: +- Input data size +- 2-3x input size for temporary files (can be controlled with `--tmp`) +- Output size (varies based on indexing, typically 1-2x input size) + +## Workflow + +1. **Prepare Data**: RDF or JSON format, optionally compressed (.gz) +2. **Prepare Schema**: Define types, indexes, and constraints +3. **Run Bulk Loader**: Process and shard data +4. **Deploy Output**: Copy each group's directory to corresponding Alpha nodes +5. **Start Cluster**: Launch Zero and Alpha nodes + +## Common Issues + +### Out of Memory + +- Reduce `--num_go_routines` +- Reduce `--map_shards` +- Reduce `--mapoutput_mb` +- Add more RAM to the system + +### Slow Performance + +- Increase `--num_go_routines` (if RAM allows) +- Increase `--map_shards` for better parallelism +- Use faster storage for `--tmp` directory + +### Invalid Data + +- Use `--ignore_errors` to skip malformed lines +- Validate RDF/JSON format before bulk loading + +## See Also + +- [Live Loader](/dgraph-overview/cli/live) - For incremental updates +- [Data Migration](../../migration/import-data) - Migration strategies +- [Schema](../../dql/dql-schema) - Schema definition +- [Bulk Loader Guide](/dgraph-overview/migration/bulk-loader) - Detailed bulk loading guide + diff --git a/docusaurus-docs/docs/cli/cert.md b/docusaurus-docs/docs/cli/cert.md new file mode 100644 index 00000000..5dbd00ab --- /dev/null +++ b/docusaurus-docs/docs/cli/cert.md @@ -0,0 +1,30 @@ +--- +title: dgraph cert +--- + +The `dgraph cert` command manages TLS certificates for securing Dgraph cluster communication and client connections. + + +```shell +Dgraph TLS certificate management +Usage: + dgraph cert [flags] + dgraph cert [command] + +Available Commands: + ls lists certificates and keys + +Flags: + -k, --ca-key string path to the CA private key (default "ca.key") + -c, --client string create cert/key pair for a client name + -d, --dir string directory containing TLS certs and keys (default "tls") + --duration int duration of cert validity in days (default 365) + -e, --elliptic-curve string ECDSA curve for private key. Values are: "P224", "P256", "P384", "P521". + --force overwrite any existing key and cert + -h, --help help for cert + -r, --keysize int RSA key bit size for creating new keys (default 2048) + -n, --nodes strings creates cert/key pair for nodes + --verify verify certs against root CA when creating (default true) + +Use "dgraph cert [command] --help" for more information about a command. +``` diff --git a/docusaurus-docs/docs/cli/completion.md b/docusaurus-docs/docs/cli/completion.md new file mode 100644 index 00000000..f87b39b9 --- /dev/null +++ b/docusaurus-docs/docs/cli/completion.md @@ -0,0 +1,109 @@ +--- +title: dgraph completion +--- + +The `dgraph completion` command generates shell completion scripts for `bash` and `zsh`, making it easier to work with the Dgraph CLI by enabling tab completion for commands, subcommands, and flags. + +## Installation + +### Bash + +To enable bash completion for the current session: + +```bash +source <(dgraph completion bash) +``` + +To install bash completion permanently: + +#### Linux + +```bash +# Generate and save the completion script +dgraph completion bash > /etc/bash_completion.d/dgraph + +# Reload your shell +source ~/.bashrc +``` + +#### macOS + +```bash +# Install bash-completion if not already installed +brew install bash-completion + +# Generate and save the completion script +dgraph completion bash > $(brew --prefix)/etc/bash_completion.d/dgraph + +# Reload your shell +source ~/.bash_profile +``` + +### Zsh + +To enable zsh completion for the current session: + +```bash +source <(dgraph completion zsh) +``` + +To install zsh completion permanently: + +```bash +# Add completion script to fpath +dgraph completion zsh > "${fpath[1]}/_dgraph" + +# Reload your shell +exec $SHELL +``` + +Or add to your `~/.zshrc`: + +```bash +autoload -U compinit +compinit +source <(dgraph completion zsh) +``` + +## Command Reference + +```shell +Generates shell completion scripts for bash or zsh +Usage: + dgraph completion [command] + +Available Commands: + bash bash shell completion + zsh zsh shell completion + +Flags: + -h, --help help for completion + +Use "dgraph completion [command] --help" for more information about a command. +``` + +## Usage + +Once installed, you can use tab completion to: + +- Complete command names: `dgraph al` → `dgraph alpha` +- Complete subcommands: `dgraph acl ` → shows `add`, `del`, `info`, `mod` +- Complete flag names: `dgraph alpha --re` → `dgraph alpha --replicas` + +## Troubleshooting + +If completion isn't working: + +1. **Verify installation**: Make sure the completion script is in the correct directory +2. **Check permissions**: Ensure the completion script is readable +3. **Reload shell**: Try opening a new terminal or running `exec $SHELL` +4. **Check version**: Ensure you're using a compatible shell version + +For bash, you can verify completion is loaded: + +```bash +complete -p dgraph +``` + +This should show output indicating the completion function is registered. + diff --git a/docusaurus-docs/docs/cli/config.md b/docusaurus-docs/docs/cli/config.md new file mode 100644 index 00000000..0de5bbb5 --- /dev/null +++ b/docusaurus-docs/docs/cli/config.md @@ -0,0 +1,170 @@ +--- +title: Flag configuration +--- + +You can see the list of available subcommands with `dgraph --help`. You can view the full set of configuration options for a given subcommand with `dgraph --help` (for example, `dgraph zero --help`). + +You can configure options in multiple ways, which are listed below from highest precedence to lowest precedence: + +- Using command line flags (as described in the help output). +- Using environment variables. +- Using a configuration file. + +If no configuration for an option is used, then the default value as described +in the `--help` output applies. + +You can use multiple configuration methods at the same time, so a core +set of options could be set in a config file, and instance specific options +could be set using environment vars or flags. + +## Command Line Flags + +Dgraph has *global flags* that apply to all subcommands and flags specific to a subcommand. + +Several commands (`alpha`, `backup`, `bulk`,`debug`, `live`, and `zero`) use [superflags](/dgraph-overview/cli/superflags). Superflags are compound flags that contain +one or more options that let you define multiple settings in a semicolon-delimited +list. The general syntax for superflags is: `-- option-a=value-a; option-b=value-b`. + +The following example shows how to use superflags when running the `dgraph alpha` command. + +```bash +dgraph alpha --my=alpha.example.com:7080 --zero=zero.example.com:5080 \ + --badger "compression=zstd:1" \ + --block_rate "10" \ + --trace "jaeger=http://jaeger:14268" \ + --tls "ca-cert=/dgraph/tls/ca.crt;client-auth-type=REQUIREANDVERIFY;server-cert=/dgraph/tls/node.crt;server-key=/dgraph/tls/node.key;use-system-ca=true;internal-port=true;client-cert=/dgraph/tls/client.dgraphuser.crt;client-key=/dgraph/tls/client.dgraphuser.key" + --security "whitelist=10.0.0.0/8,172.0.0.0/8,192.168.0.0/16" +``` + +## Environment Variables + +The environment variable names for Dgraph mirror the flag names shown in the Dgraph CLI `--help` output. These environment variable names are formed the concatenation of `DGRAPH`, the subcommand invoked (`ALPHA`, `ZERO`, `LIVE`, or `BULK`), and then the name of the flag (in uppercase). For example, instead running a command like `dgraph alpha --block_rate 10`, you could set the following environment variable: `DGRAPH_ALPHA_BLOCK_RATE=10 dgraph alpha`. + +So, the environment variable syntax for a superflag (`-- option-a=value; option-b=value`) is `="option-a=value;option-b=value"`. + +The following is an example of environment variables for `dgraph alpha`: + +```bash +DGRAPH_ALPHA_BADGER="compression=zstd:1" +DGRAPH_ALPHA_BLOCK_RATE="10" +DGRAPH_ALPHA_TRACE="jaeger=http://jaeger:14268" +DGRAPH_ALPHA_TLS="ca-cert=/dgraph/tls/ca.crt;client-auth-type=REQUIREANDVERIFY;server-cert=/dgraph/tls/node.crt;server-key=/dgraph/tls/node.key;use-system-ca=true;internal-port=true;client-cert=/dgraph/tls/client.dgraphuser.crt;client-key=/dgraph/tls/client.dgraphuser.key" +DGRAPH_ALPHA_SECURITY="whitelist=10.0.0.0/8,172.0.0.0/8,192.168.0.0/16" +``` + +## Configuration File + +You can specify a configuration file using the Dgraph CLI with the `--config` flag (for example, +`dgraph alpha --config my_config.json`), or using an environment variable, (for example, `DGRAPH_ALPHA_CONFIG=my_config.json dgraph alpha`). + +Dgraph supports configuration file formats that it detects based on file extensions ([`.json`](https://www.json.org/json-en.html), [`.yml`](https://yaml.org/) or [`.yaml`](https://yaml.org/)). In these files, the name of the superflag is used as a key that points to a hash. The hash consists of `key: value` pairs that correspond to the superflag's list of `option=value` pairs. + +:::tip +When representing the superflag options in the hash, you can use either *kebab-case* or *snake_case* for names of the keys. +::: + +### JSON Config File + +In JSON, you can represent a superflag and its options (`-- +option-a=value;option-b=value`) as follows: + +```json +{ + "": { + "option-a": "value", + "option-b": "value" + } +} +``` + +The following example JSON config file (`config.json`) using *kebab-case*: + +```json +{ + "badger": { "compression": "zstd:1" }, + "trace": { "jaeger": "http://jaeger:14268" }, + "security": { "whitelist": "10.0.0.0/8,172.0.0.0/8,192.168.0.0/16" }, + "tls": { + "ca-cert": "/dgraph/tls/ca.crt", + "client-auth-type": "REQUIREANDVERIFY", + "server-cert": "/dgraph/tls/node.crt", + "server-key": "/dgraph/tls/node.key", + "use-system-ca": true, + "internal-port": true, + "client-cert": "/dgraph/tls/client.dgraphuser.crt", + "client-key": "/dgraph/tls/client.dgraphuser.key" + } +} +``` + +The following example JSON config file (`config.json`) using *snake_case*: + +```json +{ + "badger": { "compression": "zstd:1" }, + "trace": { "jaeger": "http://jaeger:14268" }, + "security": { "whitelist": "10.0.0.0/8,172.0.0.0/8,192.168.0.0/16" }, + "tls": { + "ca_cert": "/dgraph/tls/ca.crt", + "client_auth_type": "REQUIREANDVERIFY", + "server_cert": "/dgraph/tls/node.crt", + "server_key": "/dgraph/tls/node.key", + "use_system_ca": true, + "internal_port": true, + "client_cert": "/dgraph/tls/client.dgraphuser.crt", + "client_key": "/dgraph/tls/client.dgraphuser.key" + } +} +``` + + +### YAML Config File + +In YAML, you can represent a superflag and its options (`-- +option-a=value;option-b=value`) as follows: + +```yaml +: + option-a: value + option-b: value +``` + +The following example YAML config file (`config.yml`) uses *kebab-case*: + +```yaml +badger: + compression: zstd:1 +trace: + jaeger: http://jaeger:14268 +security: + whitelist: 10.0.0.0/8,172.0.0.0/8,192.168.0.0/16 +tls: + ca-cert: /dgraph/tls/ca.crt + client-auth-type: REQUIREANDVERIFY + server-cert: /dgraph/tls/node.crt + server-key: /dgraph/tls/node.key + use-system-ca: true + internal-port: true + client-cert: /dgraph/tls/client.dgraphuser.crt + client-key: /dgraph/tls/client.dgraphuser.key +``` + +The following example YAML config file (`config.yml`) uses *snake_case*: + +```yaml +badger: + compression: zstd:1 +trace: + jaeger: http://jaeger:14268 +security: + whitelist: 10.0.0.0/8,172.0.0.0/8,192.168.0.0/16 +tls: + ca_cert: /dgraph/tls/ca.crt + client_auth_type: REQUIREANDVERIFY + server_cert: /dgraph/tls/node.crt + server_key: /dgraph/tls/node.key + use_system_ca: true + internal_port: true + client_cert: /dgraph/tls/client.dgraphuser.crt + client_key: /dgraph/tls/client.dgraphuser.key +``` diff --git a/docusaurus-docs/docs/cli/conv.md b/docusaurus-docs/docs/cli/conv.md new file mode 100644 index 00000000..ac893046 --- /dev/null +++ b/docusaurus-docs/docs/cli/conv.md @@ -0,0 +1,25 @@ +--- +title: dgraph conv +--- + +#### `dgraph conv` + +This command runs the Dgraph geographic file converter, which converts geographic +files into RDF so that they can be consumed by Dgraph. The following replicates +the help listing shown when you run `dgraph conv --help`: + +```shell +Dgraph Geo file converter +Usage: + dgraph conv [flags] + +Flags: + --geo string Location of geo file to convert + --geopred string Predicate to use to store geometries (default "loc") + -h, --help help for conv + --out string Location of output rdf.gz file (default "output.rdf.gz") + +Use "dgraph conv [command] --help" for more information about a command. +``` + + diff --git a/docusaurus-docs/docs/cli/debuginfo.md b/docusaurus-docs/docs/cli/debuginfo.md new file mode 100644 index 00000000..88f56192 --- /dev/null +++ b/docusaurus-docs/docs/cli/debuginfo.md @@ -0,0 +1,22 @@ +--- +title: dgraph debuginfo +--- + +The `dgraph debuginfo` command generates comprehensive debug information about the current Dgraph node, useful for troubleshooting cluster issues. + +```shell +Generate debug information on the current node +Usage: + dgraph debuginfo [flags] + +Flags: + -a, --alpha string Address of running dgraph alpha. (default "localhost:8080") + -x, --archive Whether to archive the generated report (default true) + -d, --directory string Directory to write the debug info into. + -h, --help help for debuginfo + -p, --profiles strings List of pprof profiles to dump in the report. (default [goroutine,heap,threadcreate,block,mutex,profile,trace]) + -s, --seconds uint32 Duration for time-based profile collection. (default 15) + -z, --zero string Address of running dgraph zero. + +Use "dgraph debuginfo [command] --help" for more information about a command. +``` \ No newline at end of file diff --git a/docusaurus-docs/docs/cli/decrypt.md b/docusaurus-docs/docs/cli/decrypt.md new file mode 100644 index 00000000..0938ebed --- /dev/null +++ b/docusaurus-docs/docs/cli/decrypt.md @@ -0,0 +1,71 @@ +--- +title: dgraph decrypt +--- + +You might need to decrypt data from an encrypted Dgraph cluster for a variety of reasons, including: + +* Migration of data from an encrypted cluster to a non-encrypted cluster +* Changing your data or schema by directly editing an RDF file or schema file + +To support these scenarios, Dgraph includes a `decrypt` command that decrypts encrypted RDF and schema files. To learn how to export RDF and schema files from Dgraph, see: +[Dgraph Administration: Export database](/dgraph-overview/migration/export-data). + +The `decrypt` command supports a variety of symmetric key lengths, which +determine the AES cypher used for encryption and decryption, as follows: + + +| Symmetric key length | AES encryption cypher | +|----------------------|-----------------------| +| 128 bits (16-bytes) | AES-128 | +| 192 bits (24-bytes) | AES-192 | +| 256 bits (32-bytes) | AES-256 | + + +The `decrypt` command also supports the use of [Hashicorp Vault](https://www.vaultproject.io/) to store secrets, including support for Vault's +[AppRole authentication](https://www.vaultproject.io/docs/auth/approle.html). + +## Decryption options + +The following decryption options (or *flags*) are available for the `decrypt` command: + + +| Flag or Superflag | Superflag Option | Notes | +|-------------------------|------------------|-----------------------------------------------------------------------------------------------| +| `--encryption` | `key-file` | Encryption key filename | +| `-f`, `--file` | | Path to file for the encrypted RDF or schema **.gz** file | +| `-h`, `--help` | | Help for the decrypt command | +| `-o`, `--out` | | Path to file for the decrypted **.gz** file that decrypt creates | +| `--vault` | `addr` | Vault server address, (default: `http://localhost:8200` ) | +| | `enc-field` | Name of the Vault server's key/value store field that holds the Base64 encryption key | +| | `enc-format` | Vault server field format; can be `raw` or `base64` (default: `base64`) | +| | `path` | Vault server key/value store path (default: `secret/data/dgraph`) | +| | `role-id-file` | File containing the [Vault](https://www.vaultproject.io/) `role_id` used for AppRole authentication | +| | `secret-id-file` | File containing the [Vault](https://www.vaultproject.io/) `secret_id` used for AppRole authentication | + + + +## Data decryption examples + +For example, you could use the following command with an encrypted RDF file +(**encrypted.rdf.gz**) and an encryption key file (**enc_key_file**), to +create a decrypted RDF file: + +```bash +# Encryption Key from the file path +dgraph decrypt --file "encrypted.rdf.gz" --out "decrypted_rdf.gz" --encryption key-file="enc-key-file" + +# Encryption Key from HashiCorp Vault +dgraph decrypt --file "encrypted.rdf.gz" --out "decrypted_rdf.gz" \ + --vault addr="http://localhost:8200";enc-field="enc_key";enc-format="raw";path="secret/data/dgraph/alpha";role-id-file="./role_id";secret-id-file="./secret_id" +``` + +You can use similar syntax to create a decrypted schema file: + +```bash +# Encryption Key from the file path +dgraph decrypt --file "encrypted.schema.gz" --out "decrypted_schema.gz" --encryption key-file="enc-key-file" + +# Encryption Key from HashiCorp Vault +dgraph decrypt --file "encrypted.schema.gz" --out "decrypted_schema.gz" \ + --vault addr="http://localhost:8200";enc-field="enc_key";enc-format="raw";path="secret/data/dgraph/alpha";role-id-file="./role_id";secret-id-file="./secret_id" +``` diff --git a/docusaurus-docs/docs/cli/export_backup.md b/docusaurus-docs/docs/cli/export_backup.md new file mode 100644 index 00000000..6a592a0d --- /dev/null +++ b/docusaurus-docs/docs/cli/export_backup.md @@ -0,0 +1,42 @@ +--- +title: dgraph export_backup +--- + +#### `dgraph export_backup` + +This command is used to convert a [binary backup](/dgraph-overview/admin/enterprise-features/binary-backups) +created using Dgraph Enterprise Edition into an exported folder. The following +replicates key information from the help listing shown when you run `dgraph export_backup --help`: + +```shell +Export data inside single full or incremental backup +Usage: + dgraph export_backup [flags] + +Flags: + -d, --destination string The folder to which export the backups. + --encryption string [Enterprise Feature] Encryption At Rest options + key-file=; The file that stores the symmetric key of length 16, 24, or 32 bytes. The key size determines the chosen AES cipher (AES-128, AES-192, and AES-256 respectively). + (default "key-file=;") + -f, --format string The format of the export output. Accepts a value of either rdf or json (default "rdf") + -h, --help help for export_backup + -l, --location string Sets the location of the backup. Both file URIs and s3 are supported. + This command will take care of all the full + incremental backups present in the location. + --upgrade If true, retrieve the CORS from DB and append at the end of GraphQL schema. + It also deletes the deprecated types and predicates. + Use this option when exporting a backup of 20.11 for loading onto 21.03. + --vault string Vault options + acl-field=; Vault field containing ACL key. + acl-format=base64; ACL key format, can be 'raw' or 'base64'. + addr=http://localhost:8200; Vault server address (format: http://ip:port). + enc-field=; Vault field containing encryption key. + enc-format=base64; Encryption key format, can be 'raw' or 'base64'. + path=secret/data/dgraph; Vault KV store path (e.g. 'secret/data/dgraph' for KV V2, 'kv/dgraph' for KV V1). + role-id-file=; Vault RoleID file, used for AppRole authentication. + secret-id-file=; Vault SecretID file, used for AppRole authentication. + (default "addr=http://localhost:8200; role-id-file=; secret-id-file=; path=secret/data/dgraph; acl-field=; acl-format=base64; enc-field=; enc-format=base64") + +Use "dgraph export_backup [command] --help" for more information about a command. +``` + + diff --git a/docusaurus-docs/docs/cli/increment.md b/docusaurus-docs/docs/cli/increment.md new file mode 100644 index 00000000..e23d8936 --- /dev/null +++ b/docusaurus-docs/docs/cli/increment.md @@ -0,0 +1,40 @@ +--- +title: dgraph increment +--- + +This command increments a counter transactionally, so that you can confirm that +an Alpha node is able to handle both query and mutation requests. To learn more, +see [Using the Increment Tool](howto/using-increment-tool). +The following replicates the help listing shown when you run `dgraph increment --help`: + +```shell +Increment a counter transactionally +Usage: + dgraph increment [flags] + +Flags: + --alpha string Address of Dgraph Alpha. (default "localhost:9080") + --be Best-effort. Read counter value without retrieving timestamp from Zero. + --creds string Various login credentials if login is required. + user defines the username to login. + password defines the password of the user. + namespace defines the namespace to log into. + Sample flag could look like --creds user=username;password=mypass;namespace=2 + -h, --help help for increment + --jaeger string Send opencensus traces to Jaeger. + --num int How many times to run. (default 1) + --pred string Predicate to use for storing the counter. (default "counter.val") + --retries int How many times to retry setting up the connection. (default 10) + --ro Read-only. Read the counter value without updating it. + --tls string TLS Client options + ca-cert=; The CA cert file used to verify server certificates. Required for enabling TLS. + client-cert=; (Optional) The Cert file provided by the client to the server. + client-key=; (Optional) The private Key file provided by the clients to the server. + internal-port=false; (Optional) Enable inter-node TLS encryption between cluster nodes. + server-name=; Used to verify the server hostname. + use-system-ca=true; Includes System CA into CA Certs. + (default "use-system-ca=true; internal-port=false;") + --wait duration How long to wait. + +Use "dgraph increment [command] --help" for more information about a command. +``` \ No newline at end of file diff --git a/docusaurus-docs/docs/cli/index.md b/docusaurus-docs/docs/cli/index.md new file mode 100644 index 00000000..2c3a6877 --- /dev/null +++ b/docusaurus-docs/docs/cli/index.md @@ -0,0 +1,60 @@ +--- +title: Dgraph CLI +--- + +The Dgraph command-line interface (CLI) provides comprehensive tools for deploying and managing Dgraph in self-managed environments. Whether you're running Dgraph on on-premises infrastructure or cloud platforms (AWS, GCP, Azure), the CLI gives you complete control over your deployment. + +## CLI Structure + +The Dgraph CLI is built around the root `dgraph` command and its subcommands. Many commands support their own subcommands, creating a hierarchical structure. For example, `dgraph acl` requires you to specify a subcommand like `add`, `del`, `info`, or `mod`. + +## Available Commands + +The Dgraph CLI includes the following command groups: + +### Core Commands +- [**`dgraph alpha`**](/dgraph-overview/cli/alpha) - Run Dgraph Alpha database nodes +- [**`dgraph zero`**](/dgraph-overview/cli/zero) - Run Dgraph Zero management nodes + +### Data Loading Commands +- [**`dgraph bulk`**](/dgraph-overview/cli/bulk) - Bulk load data with the Bulk Loader +- [**`dgraph live`**](/dgraph-overview/cli/live) - Load data with the Live Loader +- [**`dgraph restore`**](/dgraph-overview/cli/restore) - Restore backups from Enterprise Edition + +### Security Commands +- [**`dgraph acl`**](/dgraph-overview/cli/acl) - Manage Access Control Lists (ACL) +- [**`dgraph audit`**](/dgraph-overview/cli/audit) - Decrypt audit files +- [**`dgraph cert`**](/dgraph-overview/cli/cert) - Manage TLS certificates + +### Debug Commands +- [**`dgraph debug`**](/dgraph-overview/dql/query/debug) - Debug Dgraph instances +- [**`dgraph debuginfo`**](/dgraph-overview/cli/debuginfo) - Generate debug information + +### Utility Commands +- [**`dgraph completion`**](/dgraph-overview/cli/completion) - Generate shell completion scripts +- [**`dgraph conv`**](/dgraph-overview/cli/conv) - Convert geographic files to RDF +- [**`dgraph decrypt`**](/dgraph-overview/cli/decrypt) - Decrypt exported files +- [**`dgraph export_backup`**](/dgraph-overview/cli/export_backup) - Export binary backups +- [**`dgraph increment`**](/dgraph-overview/cli/increment) - Test with transactional counter +- [**`dgraph lsbackup`**](/dgraph-overview/admin/enterprise-features/lsbackup) - List backup information +- [**`dgraph migrate`**](/dgraph-overview/cli/migrate) - Migrate from MySQL to Dgraph +- [**`dgraph upgrade`**](/dgraph-overview/cli/upgrade) - Upgrade Dgraph versions + +## Configuration + +Dgraph provides flexible configuration options: + +- **[Superflags](/dgraph-overview/cli/superflags)** - Learn about compound flags for complex commands +- **[Configuration Guide](/dgraph-overview/cli/config)** - Configure using flags, environment variables, or config files + +## Getting Help + +You can view help for any command using the `--help` flag: + +```bash +dgraph --help # Show all available commands +dgraph alpha --help # Show alpha-specific options +dgraph acl add --help # Show help for acl add subcommand +``` + + diff --git a/docusaurus-docs/docs/cli/live.md b/docusaurus-docs/docs/cli/live.md new file mode 100644 index 00000000..bbcdb191 --- /dev/null +++ b/docusaurus-docs/docs/cli/live.md @@ -0,0 +1,65 @@ +--- +title: dgraph live +--- + +#### `dgraph live` + +This command is used to load live data with the Dgraph [Live Loader](/dgraph-overview/migration/live-loader) tool. +The following replicates the help listing shown when you run `dgraph live --help`: + +```shell + Run Dgraph Live Loader +Usage: + dgraph live [flags] + +Flags: + -a, --alpha string Comma-separated list of Dgraph alpha gRPC server addresses (default "127.0.0.1:9080") + -t, --auth_token string The auth token passed to the server for Alter operation of the schema file. If used with --slash_grpc_endpoint, then this should be set to the API token issuedby Slash GraphQL + -b, --batch int Number of N-Quads to send as part of a mutation. (default 1000) + -m, --bufferSize string Buffer for each thread (default "100") + -c, --conc int Number of concurrent requests to make to Dgraph (default 10) + --creds string Various login credentials if login is required. + user defines the username to login. + password defines the password of the user. + namespace defines the namespace to log into. + Sample flag could look like --creds user=username;password=mypass;namespace=2 + --encryption string [Enterprise Feature] Encryption At Rest options + key-file=; The file that stores the symmetric key of length 16, 24, or 32 bytes. The key size determines the chosen AES cipher (AES-128, AES-192, and AES-256 respectively). + (default "key-file=;") + -f, --files string Location of *.rdf(.gz) or *.json(.gz) file(s) to load + --force-namespace int Namespace onto which to load the data.Only guardian of galaxy should use this for loading data into multiple namespaces or somespecific namespace. Setting it to negative value will preserve the namespace. + --format string Specify file format (rdf or json) instead of getting it from filename + -h, --help help for live + --http string Address to serve http (pprof). (default "localhost:6060") + --new_uids Ignore UIDs in load files and assign new ones. + -s, --schema string Location of schema file + --slash_grpc_endpoint string Path to Slash GraphQL GRPC endpoint. If --slash_grpc_endpoint is set, all other TLS options and connection options will beignored + --tls string TLS Client options + ca-cert=; The CA cert file used to verify server certificates. Required for enabling TLS. + client-cert=; (Optional) The Cert file provided by the client to the server. + client-key=; (Optional) The private Key file provided by the clients to the server. + internal-port=false; (Optional) Enable inter-node TLS encryption between cluster nodes. + server-name=; Used to verify the server hostname. + use-system-ca=true; Includes System CA into CA Certs. + (default "use-system-ca=true; internal-port=false;") + --tmp string Directory to store temporary buffers. (default "t") + -U, --upsertPredicate string run in upsertPredicate mode. the value would be used to store blank nodes as an xid + -C, --use_compression Enable compression on connection to alpha server + --vault string Vault options + acl-field=; Vault field containing ACL key. + acl-format=base64; ACL key format, can be 'raw' or 'base64'. + addr=http://localhost:8200; Vault server address (format: http://ip:port). + enc-field=; Vault field containing encryption key. + enc-format=base64; Encryption key format, can be 'raw' or 'base64'. + path=secret/data/dgraph; Vault KV store path (e.g. 'secret/data/dgraph' for KV V2, 'kv/dgraph' for KV V1). + role-id-file=; Vault RoleID file, used for AppRole authentication. + secret-id-file=; Vault SecretID file, used for AppRole authentication. + (default "addr=http://localhost:8200; role-id-file=; secret-id-file=; path=secret/data/dgraph; acl-field=; acl-format=base64; enc-field=; enc-format=base64") + --verbose Run the live loader in verbose mode + -x, --xidmap string Directory to store xid to uid mapping + -z, --zero string Dgraph zero gRPC server address (default "127.0.0.1:5080") + +Use "dgraph live [command] --help" for more information about a command. +``` + + diff --git a/docusaurus-docs/docs/cli/migrate.md b/docusaurus-docs/docs/cli/migrate.md new file mode 100644 index 00000000..2f5b0dc0 --- /dev/null +++ b/docusaurus-docs/docs/cli/migrate.md @@ -0,0 +1,55 @@ +--- +title: dgraph migrate +--- + + +#### `dgraph migrate` + +This command runs the Dgraph [migration tool](migration/migrate-tool) +to move data from a MySQL database to Dgraph. The following replicates the help +listing shown when you run `dgraph migrate --help`: + +```shell +Run the Dgraph migration tool from a MySQL database to Dgraph +Usage: + dgraph migrate [flags] + +Flags: + --db string The database to import + -h, --help help for migrate + --host string The hostname or IP address of the database server. (default "localhost") + -o, --output_data string The data output file (default "sql.rdf") + -s, --output_schema string The schema output file (default "schema.txt") + --password string The password used for logging in + --port string The port of the database server. (default "3306") + -q, --quiet Enable quiet mode to suppress the warning logs + -p, --separator string The separator for constructing predicate names (default ".") + --tables string The comma separated list of tables to import, an empty string means importing all tables in the database + --user string The user for logging in + +Use "dgraph migrate [command] --help" for more information about a command. +``` + +#### `dgraph upgrade` + +This command helps you to upgrade from an earlier Dgraph release to a newer release. +The following replicates the help listing shown when you run `dgraph upgrade --help`: + +```shell +This tool is supported only for the mainstream release versions of Dgraph, not for the beta releases. +Usage: + dgraph upgrade [flags] + +Flags: + --acl upgrade ACL from v1.2.2 to >=v20.03.0 + -a, --alpha string Dgraph Alpha gRPC server address (default "127.0.0.1:9080") + -d, --deleteOld Delete the older ACL types/predicates (default true) + --dry-run dry-run the upgrade + -f, --from string The version string from which to upgrade, e.g.: v1.2.2 + -h, --help help for upgrade + -p, --password string Password of ACL user + -t, --to string The version string till which to upgrade, e.g.: v20.03.0 + -u, --user string Username of ACL user + +Use "dgraph upgrade [command] --help" for more information about a command. +``` diff --git a/docusaurus-docs/docs/cli/restore.md b/docusaurus-docs/docs/cli/restore.md new file mode 100644 index 00000000..6d317f85 --- /dev/null +++ b/docusaurus-docs/docs/cli/restore.md @@ -0,0 +1,90 @@ +--- +title: dgraph restore +--- + +#### `dgraph restore` + +This command loads objects from available backups. The following replicates the +help listing shown when you run `dgraph restore --help`: + +```shell +Restore loads objects created with the backup feature in Dgraph Enterprise Edition (EE). + +Backups taken using the GraphQL API can be restored using CLI restore +command. Restore is intended to be used with new Dgraph clusters in offline state. + +The --location flag indicates a source URI with Dgraph backup objects. This URI supports all +the schemes used for backup. + +Source URI formats: + [scheme]://[host]/[path]?[args] + [scheme]:///[path]?[args] + /[path]?[args] (only for local or NFS) + +Source URI parts: + scheme - service handler, one of: "s3", "minio", "file" + host - remote address. ex: "dgraph.s3.amazonaws.com" + path - directory, bucket or container at target. ex: "/dgraph/backups/" + args - specific arguments that are ok to appear in logs. + +The --posting flag sets the posting list parent dir to store the loaded backup files. + +Using the --zero flag will use a Dgraph Zero address to update the start timestamp using +the restored version. Otherwise, the timestamp must be manually updated through Zero's HTTP +'assign' command. + +Dgraph backup creates a unique backup object for each node group, and restore will create +a posting directory 'p' matching the backup group ID. Such that a backup file +named '.../r32-g2.backup' will be loaded to posting dir 'p2'. + +Usage examples: + +# Restore from local dir or NFS mount: +$ dgraph restore -p . -l /var/backups/dgraph + +# Restore from S3: +$ dgraph restore -p /var/db/dgraph -l s3://s3.us-west-2.amazonaws.com/srfrog/dgraph + +# Restore from dir and update Ts: +$ dgraph restore -p . -l /var/backups/dgraph -z localhost:5080 + + +Usage: + dgraph restore [flags] + +Flags: + --backup_id string The ID of the backup series to restore. If empty, it will restore the latest series. + -b, --badger string Badger options + compression=snappy; Specifies the compression algorithm and compression level (if applicable) for the postings directory. "none" would disable compression, while "zstd:1" would set zstd compression at level 1. + goroutines=; The number of goroutines to use in badger.Stream. + (default "compression=snappy; numgoroutines=8;") + --encryption string [Enterprise Feature] Encryption At Rest options + key-file=; The file that stores the symmetric key of length 16, 24, or 32 bytes. The key size determines the chosen AES cipher (AES-128, AES-192, and AES-256 respectively). + (default "key-file=;") + --force_zero If false, no connection to a zero in the cluster will be required. Keep in mind this requires you to manually update the timestamp and max uid when you start the cluster. The correct values are printed near the end of this command's output. (default true) + -h, --help help for restore + -l, --location string Sets the source location URI (required). + -p, --postings string Directory where posting lists are stored (required). + --tls string TLS Client options + ca-cert=; The CA cert file used to verify server certificates. Required for enabling TLS. + client-cert=; (Optional) The Cert file provided by the client to the server. + client-key=; (Optional) The private Key file provided by the clients to the server. + internal-port=false; (Optional) Enable inter-node TLS encryption between cluster nodes. + server-name=; Used to verify the server hostname. + use-system-ca=true; Includes System CA into CA Certs. + (default "use-system-ca=true; internal-port=false;") + --vault string Vault options + acl-field=; Vault field containing ACL key. + acl-format=base64; ACL key format, can be 'raw' or 'base64'. + addr=http://localhost:8200; Vault server address (format: http://ip:port). + enc-field=; Vault field containing encryption key. + enc-format=base64; Encryption key format, can be 'raw' or 'base64'. + path=secret/data/dgraph; Vault KV store path (e.g. 'secret/data/dgraph' for KV V2, 'kv/dgraph' for KV V1). + role-id-file=; Vault RoleID file, used for AppRole authentication. + secret-id-file=; Vault SecretID file, used for AppRole authentication. + (default "addr=http://localhost:8200; role-id-file=; secret-id-file=; path=secret/data/dgraph; acl-field=; acl-format=base64; enc-field=; enc-format=base64") + -z, --zero string gRPC address for Dgraph zero. ex: localhost:5080 + +Use "dgraph restore [command] --help" for more information about a command. +``` + diff --git a/docusaurus-docs/docs/cli/superflags.md b/docusaurus-docs/docs/cli/superflags.md new file mode 100644 index 00000000..f19b50ae --- /dev/null +++ b/docusaurus-docs/docs/cli/superflags.md @@ -0,0 +1,183 @@ +--- +title: Superflags +--- + +Dgraph uses *superflags* for complex commands: `alpha`, `backup`, `bulk`, `debug`, `live` and `zero`. Superflags are compound flags that contain one or more options, allowing you to define multiple related settings in a single, semicolon-delimited list. + +## Syntax + +The general syntax for superflags is: + +```bash +-- option-a=value; option-b=value +``` + +Semicolons are required between superflag options, but a semicolon after the last option is optional. + +:::note +You should encapsulate the options for a superflag in double-quotes (`"`) if any of those option values include spaces. You can also use quotes to improve readability: +`-- "option-a=value; option-b=value"` +::: + +## Available Superflags + +* `--acl` +* `--badger` +* `--cache` +* `--encryption` +* `--graphql` +* `--limit` +* `--raft` +* `--security` +* `--telemetry` +* `--tls` +* `--trace` +* `--vault` + +## ACL Superflag + +The `--acl` superflag configures [Access Control List](/dgraph-overview/admin/enterprise-features/access-control-lists) settings: + +| Option | Type | Applies to | Description | +|--------|------|------------|-------------| +| `secret-file` | string | `alpha` | File that stores the HMAC secret used for signing the JWT | +| `access-ttl` | [duration](https://github.com/dgraph-io/ristretto/blob/master/z/flags.go#L80-L98) | `alpha` | TTL for the access JWT | +| `refresh-ttl` | [duration](https://github.com/dgraph-io/ristretto/blob/master/z/flags.go#L80-L98) | `alpha` | TTL for the refresh JWT | + +## Badger Superflag + +The `--badger` superflag configures [Badger](https://dgraph.io/docs/badger) database options: + +| Option | Type | Applies to | Description | +|--------|------|------------|-------------| +| `compression` | string | `alpha`, `bulk`, `backup` | Specifies the compression level and algorithm | +| `numgoroutines` | int | `alpha`, `bulk`, `backup` | Number of Go routines used by Dgraph | + +:::note +The `--badger` superflag allows you to set many advanced [Badger options](https://pkg.go.dev/github.com/dgraph-io/badger/v3#Options), including: +`dir`, `valuedir`, `syncwrites`, `numversionstokeep`, `readonly`, `inmemory`, `metricsenabled`, `memtablesize`, +`basetablesize`, `baselevelsize`, `levelsizemultiplier`, `tablesizemultiplier`, `maxlevels`, `vlogpercentile`, +`valuethreshold`, `nummemtables`, `blocksize`, `bloomfalsepositive`, `blockcachesize`, `indexcachesize`, `numlevelzerotables`, +`numlevelzerotablesstall`, `valuelogfilesize`, `valuelogmaxentries`, `numcompactors`, `compactl0onclose`, `lmaxcompaction`, +`zstdcompressionlevel`, `verifyvaluechecksum`, `encryptionkeyrotationduration`, `bypasslockguard`, `checksumverificationmode`, +`detectconflicts`, `namespaceoffset`. +::: + +## Cache Superflag + +The `--cache` superflag configures cache settings: + +| Option | Type | Applies to | Description | +|--------|------|------------|-------------| +| `size-mb` | string | `alpha` | Total size of cache (in MB) per shard in the reducer | +| `percentage` | string | `alpha` | Cache percentages for block cache and index cache | + +## Encryption Superflag + +The `--encryption` superflag configures encryption settings: + +| Option | Type | Applies to | Description | +|--------|------|------------|-------------| +| `key-file` | string | `alpha`, `bulk`, `live`, `restore`, `debug`, `decrypt`, `export_backup` | The file that stores the symmetric key | + +## GraphQL Superflag + +The `--graphql` superflag configures GraphQL settings: + +| Option | Type | Applies to | Description | +|--------|------|------------|-------------| +| `introspection` | bool | `alpha` | Enables GraphQL schema introspection | +| `debug` | bool | `alpha` | Enables debug mode in GraphQL | +| `extensions` | bool | `alpha` | Enables extensions in GraphQL response body | +| `poll-interval` | [duration](https://github.com/dgraph-io/ristretto/blob/master/z/flags.go#L80-L98) | `alpha` | The polling interval for GraphQL subscriptions | +| `lambda-url` | string | `alpha` | The URL of a lambda server that implements custom GraphQL JavaScript resolvers | + +## Limit Superflag + +The `--limit` superflag configures limit settings for Dgraph Alpha: + +| Option | Type | Applies to | Description | +|--------|------|------------|-------------| +| `txn-abort-after` | string | `alpha` | Abort any pending transactions older than this duration | +| `disable-admin-http` | string | `zero` | Turn on/off the administrative endpoints | +| `max-retries` | int | `alpha` | Maximum number of retries | +| `mutations` | string | `alpha` | Mutation mode: `allow`, `disallow`, or `strict` | +| `query-edge` | uint64 | `alpha` | Maximum number of edges that can be returned in a query | +| `normalize-node` | int | `alpha` | Maximum number of nodes that can be returned in a query that uses the normalize directive | +| `mutations-nquad` | int | `alpha` | Maximum number of nquads that can be inserted in a mutation request | +| `max-pending-queries` | int | `alpha` | Maximum number of concurrently processing requests allowed before requests are rejected with 429 Too Many Requests | + +## Raft Superflag + +The `--raft` superflag configures [Raft](../../design-concepts/raft) consensus settings: + +| Option | Type | Applies to | Description | +|--------|------|------------|-------------| +| `pending-proposals` | int | `alpha` | Maximum number of pending mutation proposals; useful for rate limiting | +| `idx` | int | `alpha`, `zero` | Provides an optional Raft ID that an Alpha node can use to join Raft groups | +| `group` | int | `alpha` | Provides an optional Raft group ID that an Alpha node can use to request group membership from a Zero node | +| `learner` | bool | `alpha`, `zero` | Make this Alpha a learner node (used for read-only replicas) | +| `snapshot-after-duration` | duration | `alpha` | Frequency at which Raft snapshots are created | +| `snapshot-after-entries` | int | `alpha` | Create a new Raft snapshot after the specified number of Raft entries | + +## Security Superflag + +The `--security` superflag configures security settings: + +| Option | Type | Applies to | Description | +|--------|------|------------|-------------| +| `token` | string | `alpha` | Authentication token | +| `whitelist` | string | `alpha` | A comma separated list of IP addresses, IP ranges, CIDR blocks, or hostnames for administration | + +## Telemetry Superflag + +The `--telemetry` superflag configures telemetry settings: + +| Option | Type | Applies to | Description | +|--------|------|------------|-------------| +| `reports` | bool | `alpha`, `zero` | Sends anonymous telemetry data to Dgraph | +| `sentry` | bool | `alpha`, `zero` | Enable sending crash events to Sentry | + +## TLS Superflag + +The `--tls` superflag configures [TLS](/dgraph-overview/admin/security/tls-configuration) settings: + +| Option | Type | Applies to | Description | +|--------|------|------------|-------------| +| `ca-cert` | string | `alpha`, `zero`, `bulk`, `backup`, `live` | The CA cert file used to verify server certificates | +| `use-system-ca` | bool | `alpha`, `zero`, `bulk`, `backup`, `live` | Include System CA with Dgraph Root CA | +| `server-name` | string | `alpha`, `zero`, `bulk`, `backup`, `live` | Server name, used for validating the server's TLS host name | +| `client-auth-type` | string | `alpha`, `zero` | TLS client authentication used to validate client connections from external ports | +| `server-cert` | string | `alpha`, `zero` | Path and filename of the node certificate (for example, `node.crt`) | +| `server-key` | string | `alpha`, `zero` | Path and filename of the node certificate private key (for example, `node.key`) | +| `internal-port` | bool | `alpha`, `zero`, `bulk`, `backup`, `live` | Makes internal ports (by default, 5080 and 7080) use the REQUIREANDVERIFY setting | +| `client-cert` | string | `alpha`, `zero`, `bulk`, `backup`, `live` | User cert file provided by the client to the Alpha node | +| `client-key` | string | `alpha`, `zero`, `bulk`, `backup`, `live` | User private key file provided by the client to the Alpha node | + +## Trace Superflag + +The `--trace` superflag configures [tracing](/dgraph-overview/admin/observability/tracing) settings: + +| Option | Type | Applies to | Description | +|--------|------|------------|-------------| +| `ratio` | float64 | `alpha`, `zero` | The ratio of queries to trace | +| `jaeger` | string | `alpha`, `zero` | URL of Jaeger to send OpenCensus traces | +| `datadog` | string | `alpha`, `zero` | URL of Datadog to send OpenCensus traces | + +## Vault Superflag + +The `--vault` superflag configures Vault integration settings: + +| Option | Type | Applies to | Description | +|--------|------|------------|-------------| +| `addr` | string | `alpha`, `bulk`, `backup`, `live`, `debug` | Vault server address, formatted as `http://ip-address:port` | +| `role-id-file` | string | `alpha`, `bulk`, `backup`, `live`, `debug` | File containing Vault `role-id` used for AppRole authentication | +| `secret-id-file` | string | `alpha`, `bulk`, `backup`, `live`, `debug` | File containing Vault `secret-id` used for AppRole authentication | +| `path` | string | `alpha`, `bulk`, `backup`, `live`, `debug` | Vault key=value store path (example: `secret/data/dgraph` for kv-v2, `kv/dgraph` for kv-v1) | +| `field` | string | `alpha`, `bulk`, `backup`, `live`, `debug` | Vault key=value store field whose value is the base64 encoded encryption key | +| `format` | string | `alpha`, `bulk`, `backup`, `live`, `debug` | Vault field format (`raw` or `base64`) | + +## Using Superflags + +To learn more about each superflag and its options, see the `--help` output of the specific Dgraph CLI commands, or refer to the individual command documentation pages. + diff --git a/docusaurus-docs/docs/cli/upgrade.md b/docusaurus-docs/docs/cli/upgrade.md new file mode 100644 index 00000000..15c2e5a9 --- /dev/null +++ b/docusaurus-docs/docs/cli/upgrade.md @@ -0,0 +1,258 @@ +--- +title: dgraph upgrade +--- + +The `dgraph upgrade` command helps you upgrade from an earlier Dgraph release to a newer release by migrating ACL data and performing other version-specific migrations. + +## Overview + +This tool is designed specifically for upgrading ACL (Access Control List) data structures when moving between major Dgraph versions. It handles schema changes and data migrations required for backward compatibility. + +:::note +This tool is supported only for mainstream release versions of Dgraph, not for beta releases. +::: + +## Usage + +```bash +dgraph upgrade [flags] +``` + +## Key Flags + +| Flag | Description | Default | +|------|-------------|---------| +| `-a, --alpha` | Dgraph Alpha gRPC server address | `"127.0.0.1:9080"` | +| `--acl` | Upgrade ACL from v1.2.2 to >=v20.03.0 | `false` | +| `-f, --from` | The version string from which to upgrade (e.g., v1.2.2) | | +| `-t, --to` | The version string till which to upgrade (e.g., v20.03.0) | | +| `-u, --user` | Username of ACL user | | +| `-p, --password` | Password of ACL user | | +| `-d, --deleteOld` | Delete the older ACL types/predicates | `true` | +| `--dry-run` | Perform a dry-run of the upgrade without making changes | `false` | + +## When to Use + +Use the upgrade command when: +- Upgrading from v1.2.2 to v20.03.0 or later (ACL schema changes) +- Migrating between versions with incompatible ACL structures +- You need to validate upgrade feasibility before applying changes + +## Examples + +### Dry Run to Check Compatibility + +Before performing an actual upgrade, do a dry run to validate: + +```bash +dgraph upgrade --acl \ + --alpha localhost:9080 \ + --from v1.2.2 \ + --to v20.03.0 \ + --user groot \ + --password password \ + --dry-run +``` + +### Upgrade ACL from v1.2.2 to v20.03.0 + +```bash +dgraph upgrade --acl \ + --alpha localhost:9080 \ + --from v1.2.2 \ + --to v20.03.0 \ + --user groot \ + --password password +``` + +### Upgrade with Credentials + +```bash +dgraph upgrade --acl \ + --alpha myhost.example.com:9080 \ + --from v1.2.2 \ + --to v21.03.0 \ + --user admin \ + --password mySecurePassword +``` + +### Keep Old ACL Types + +If you want to preserve old ACL types/predicates during upgrade: + +```bash +dgraph upgrade --acl \ + --alpha localhost:9080 \ + --from v1.2.2 \ + --to v20.03.0 \ + --user groot \ + --password password \ + --deleteOld=false +``` + +## Full Reference + +```shell +This tool is supported only for the mainstream release versions of Dgraph, not for the beta releases. +Usage: + dgraph upgrade [flags] + +Flags: + --acl upgrade ACL from v1.2.2 to >=v20.03.0 + -a, --alpha string Dgraph Alpha gRPC server address (default "127.0.0.1:9080") + -d, --deleteOld Delete the older ACL types/predicates (default true) + --dry-run dry-run the upgrade + -f, --from string The version string from which to upgrade, e.g.: v1.2.2 + -h, --help help for upgrade + -p, --password string Password of ACL user + -t, --to string The version string till which to upgrade, e.g.: v20.03.0 + -u, --user string Username of ACL user + +Use "dgraph upgrade [command] --help" for more information about a command. +``` + +## Upgrade Process + +The upgrade tool performs the following steps: + +1. **Connects to Alpha**: Establishes connection to the specified Alpha node +2. **Authenticates**: Logs in with provided user credentials +3. **Validates Versions**: Checks source and target version compatibility +4. **Analyzes Schema**: Examines current ACL schema structure +5. **Migrates Data**: Transforms ACL data to new format (if not dry-run) +6. **Cleans Up**: Removes old ACL types/predicates (if `--deleteOld=true`) + +## Prerequisites + +Before running the upgrade: + +1. **Backup Your Data**: Always create a full backup before upgrading +2. **Stop Write Operations**: Ensure no ACL modifications are happening +3. **Access Credentials**: Have guardian/admin user credentials ready +4. **Network Access**: Ensure connectivity to the Alpha node +5. **Review Release Notes**: Check version-specific migration requirements + +## Best Practices + +### Planning the Upgrade + +1. **Read Release Notes**: Review breaking changes between versions +2. **Test in Staging**: Run upgrade on a staging environment first +3. **Use Dry Run**: Always perform a dry-run before actual upgrade +4. **Schedule Downtime**: Plan for maintenance window if needed + +### During the Upgrade + +```bash +# Step 1: Backup +dgraph live backup --alpha localhost:9080 + +# Step 2: Dry run +dgraph upgrade --acl \ + --alpha localhost:9080 \ + --from v1.2.2 \ + --to v20.03.0 \ + --user groot \ + --password password \ + --dry-run + +# Step 3: If dry run succeeds, perform actual upgrade +dgraph upgrade --acl \ + --alpha localhost:9080 \ + --from v1.2.2 \ + --to v20.03.0 \ + --user groot \ + --password password + +# Step 4: Verify +# Test ACL functionality after upgrade +``` + +### After the Upgrade + +1. **Verify ACL Functionality**: Test user authentication and permissions +2. **Check Logs**: Review Alpha logs for any warnings or errors +3. **Test Applications**: Ensure client applications work correctly +4. **Document Changes**: Note any configuration changes made + +## Common Upgrade Paths + +### v1.2.2 → v20.03.0+ + +Major ACL schema changes were introduced in v20.03.0: + +```bash +dgraph upgrade --acl \ + --alpha localhost:9080 \ + --from v1.2.2 \ + --to v20.03.0 \ + --user groot \ + --password password +``` + +### v20.x → v21.03+ + +If upgrading from v20.x to v21.03, check if ACL migration is needed: + +```bash +dgraph upgrade --acl \ + --alpha localhost:9080 \ + --from v20.11.0 \ + --to v21.03.0 \ + --user groot \ + --password password \ + --dry-run +``` + +## Troubleshooting + +### Authentication Failures + +If you encounter authentication errors: +- Verify user credentials are correct +- Ensure ACL is enabled on the cluster +- Check that the user has sufficient permissions + +### Connection Issues + +If unable to connect to Alpha: +- Verify Alpha is running: `curl http://localhost:8080/health` +- Check network connectivity +- Verify the gRPC port (9080) is accessible + +### Migration Errors + +If the upgrade fails: +1. Restore from backup +2. Review error messages in Alpha logs +3. Check for version compatibility issues +4. Try with `--deleteOld=false` if cleanup is causing issues + +## Version-Specific Notes + +### ACL Changes in v20.03.0 + +- New predicate structure for permissions +- Group-based permission model +- Guardian user privileges expanded + +### Changes in v21.03.0 + +- Superflag introduction +- Configuration file format changes +- Namespace support added + +## Limitations + +- Only supports mainstream releases (not beta versions) +- Primarily designed for ACL migrations +- Requires guardian/admin user credentials +- Cannot downgrade versions (one-way migration) + +## See Also + +- [Access Control Lists](/dgraph-overview/admin/enterprise-features/access-control-lists) - ACL documentation +- [Binary Backups](/dgraph-overview/admin/enterprise-features/binary-backups) - Backup before upgrading +- [Release Notes](../../releases) - Version-specific changes +- [Migration Guide](../../migration) - Data migration strategies + diff --git a/docusaurus-docs/docs/cli/zero.md b/docusaurus-docs/docs/cli/zero.md new file mode 100644 index 00000000..9b1992f0 --- /dev/null +++ b/docusaurus-docs/docs/cli/zero.md @@ -0,0 +1,105 @@ +--- +title: dgraph zero +--- + +The `dgraph zero` command runs Dgraph Zero management nodes, which control the cluster and coordinate data distribution. + +## Overview + +A Dgraph Zero instance manages the Dgraph cluster. Typically, a single Zero instance is sufficient for the cluster; however, one can run multiple Zero instances to achieve high-availability. + +## Usage + +```bash +dgraph zero [flags] +``` + +## Key Flags + +| Flag | Description | Default | +|------|-------------|---------| +| `--my` | Address:port of this server for cluster communication | | +| `--peer` | Address of another dgraphzero server | | +| `-o, --port_offset` | Value added to all listening port numbers [Grpc=5080, HTTP=6080] | `0` | +| `-w, --wal` | Directory storing WAL | `"zw"` | +| `--replicas` | How many Dgraph Alpha replicas to run per data shard group | `1` | +| `--rebalance_interval` | Interval for trying a predicate move | `8m0s` | +| `--enterprise_license` | Path to the enterprise license file | | + +## Superflags + +Zero uses several [superflags](/dgraph-overview/cli/superflags) for advanced configuration: + +- `--audit` - Audit logging configuration +- `--limit` - UID lease and admin endpoint settings +- `--raft` - Raft consensus options +- `--telemetry` - Telemetry and crash reporting +- `--tls` - TLS configuration +- `--trace` - Distributed tracing + +## Full Reference + +```shell +A Dgraph Zero instance manages the Dgraph cluster. Typically, a single Zero +instance is sufficient for the cluster; however, one can run multiple Zero +instances to achieve high-availability. + +Usage: + dgraph zero [flags] + +Flags: + --audit string Audit options + compress=false; Enables the compression of old audit logs. + days=10; The number of days audit logs will be preserved. + encrypt-file=; The path to the key file to be used for audit log encryption. + output=; [stdout, /path/to/dir] This specifies where audit logs should be output to. + "stdout" is for standard output. You can also specify the directory where audit logs + will be saved. When stdout is specified as output other fields will be ignored. + size=100; The audit log max size in MB after which it will be rolled over. + (default "compress=false; days=10; size=100; dir=; output=; encrypt-file=;") + --enterprise_license string Path to the enterprise license file. + -h, --help help for zero + --limit string Limit options + disable-admin-http=false; Turn on/off the administrative endpoints exposed over Zero's HTTP port. + refill-interval=30s; The interval after which the tokens for UID lease are replenished. + uid-lease=0; The maximum number of UIDs that can be leased by namespace (except default namespace) + in an interval specified by refill-interval. Set it to 0 to remove limiting. + (default "uid-lease=0; refill-interval=30s; disable-admin-http=false;") + --my string addr:port of this server, so other Dgraph servers can talk to this. + --peer string Address of another dgraphzero server. + -o, --port_offset int Value added to all listening port numbers. [Grpc=5080, HTTP=6080] + --raft string Raft options + idx=1; Provides an optional Raft ID that this Alpha would use to join Raft groups. + learner=false; Make this Zero a "learner" node. In learner mode, this Zero will not participate in Raft elections. This can be used to achieve a read-only replica. + (default "idx=1; learner=false;") + --rebalance_interval duration Interval for trying a predicate move. (default 8m0s) + --replicas int How many Dgraph Alpha replicas to run per data shard group. The count includes the original shard. (default 1) + --survive string Choose between "process" or "filesystem". + If set to "process", there would be no data loss in case of process crash, but the behavior would be nondeterministic in case of filesystem crash. + If set to "filesystem", blocking sync would be called after every write, hence guaranteeing no data loss in case of hard reboot. + Most users should be OK with choosing "process". (default "process") + --telemetry string Telemetry (diagnostic) options + reports=true; Send anonymous telemetry data to Dgraph devs. + sentry=true; Send crash events to Sentry. + (default "reports=true; sentry=true;") + --tls string TLS Server options + ca-cert=; The CA cert file used to verify server certificates. Required for enabling TLS. + client-auth-type=VERIFYIFGIVEN; The TLS client authentication method. + client-cert=; (Optional) The client Cert file which is needed to connect as a client with the other nodes in the cluster. + client-key=; (Optional) The private client Key file which is needed to connect as a client with the other nodes in the cluster. + internal-port=false; (Optional) Enable inter-node TLS encryption between cluster nodes. + server-cert=; The server Cert file which is needed to initiate the server in the cluster. + server-key=; The server Key file which is needed to initiate the server in the cluster. + use-system-ca=true; Includes System CA into CA Certs. + (default "use-system-ca=true; client-auth-type=VERIFYIFGIVEN; internal-port=false;") + --trace string Trace options + datadog=; URL of Datadog to send OpenCensus traces. As of now, the trace exporter does not support annotation logs and discards them. + jaeger=; URL of Jaeger to send OpenCensus traces. + ratio=0.01; The ratio of queries to trace. + (default "ratio=0.01; jaeger=; datadog=;") + -w, --wal string Directory storing WAL. (default "zw") + +Use "dgraph zero [command] --help" for more information about a command. +``` + + diff --git a/docusaurus-docs/docs/clients/csharp.md b/docusaurus-docs/docs/clients/csharp.md new file mode 100644 index 00000000..59435ce8 --- /dev/null +++ b/docusaurus-docs/docs/clients/csharp.md @@ -0,0 +1,176 @@ +--- +title: C# +--- + +An implementation for a Dgraph client in C#, using [gRPC](https://grpc.io/). +This client follows the [Dgraph Go client](/dgraph-overview/clients/go) closely. + +:::tip +The official C# client [can be found here](https://github.com/dgraph-io/dgraph.net). +Follow the [install instructions](https://github.com/dgraph-io/dgraph.net#install) to get +it up and running. +::: + +## Supported Versions + +More details on the supported versions can be found at +[this link](https://github.com/dgraph-io/dgraph.net#supported-versions). + +## Using a Client + +### Creating a Client + +Make a new client by passing in one or more GRPC channels pointing to alphas. + +```c# +var client = new DgraphClient(new Channel("127.0.0.1:9080", ChannelCredentials.Insecure)); +``` + +### Multi-tenancy + +In [multi-tenancy](/dgraph-overview/admin/enterprise-features/multitenancy) environments, Dgraph provides a new method `LoginRequest()`, +which will allow the users to login to a specific namespace. + +In order to create a Dgraph client, and make the client login into namespace `123`: + +```c# +var lr = new Api.LoginRequest() { + UserId = "userId", + Password = "password", + Namespace = 123 +} +client.Login(lr) +``` + +In the example above, the client logs into namespace `123` using username `userId` and password `password`. +Once logged in, the client can perform all the operations allowed to the `userId` user of namespace `123`. + + + +### Altering the Database + +To set the schema, pass the schema into the `DgraphClient.Alter` function, as seen below: + +```c# +var schema = "name: string @index(exact) ."; +var result = client.Alter(new Operation{ Schema = schema }); +``` + +The returned result object is based on the FluentResults library. You can check the status using `result.isSuccess` or `result.isFailed`. More information on the result object can be found [here](https://github.com/altmann/FluentResults). + + +### Creating a Transaction + +To create a transaction, call `DgraphClient.NewTransaction` method, which returns a +new `Transaction` object. This operation incurs no network overhead. + +It is good practice to call to wrap the `Transaction` in a `using` block, so that the `Transaction.Dispose` function is called after running +the transaction. + +```c# +using(var transaction = client.NewTransaction()) { + ... +} +``` + +You can also create Read-Only transactions. Read-Only transactions only allow querying, and can be created using `DgraphClient.NewReadOnlyTransaction`. + + +### Running a Mutation + +`Transaction.Mutate(RequestBuilder)` runs a mutation. It takes in a json mutation string. + +We define a person object to represent a person and serialize it to a json mutation string. In this example, we are using the [JSON.NET](https://www.newtonsoft.com/json) library, but you can use any JSON serialization library you prefer. + +```c# +using(var txn = client.NewTransaction()) { + var alice = new Person{ Name = "Alice" }; + var json = JsonConvert.SerializeObject(alice); + + var transactionResult = await txn.Mutate(new RequestBuilder().WithMutations(new MutationBuilder{ SetJson = json })); +} +``` + +You can also set mutations using RDF format, if you so prefer, as seen below: + +```c# +var mutation = "_:alice \"Alice\" ."; +var transactionResult = await txn.Mutate(new RequestBuilder().WithMutations(new MutationBuilder{ SetNquads = mutation })); +``` + +Check out the example in `source/Dgraph.tests.e2e/TransactionTest.cs`. + +### Running a Query + +You can run a query by calling `Transaction.Query(string)`. You will need to pass in a +DQL query string. If you want to pass an additional map of any variables that +you might want to set in the query, call `Transaction.QueryWithVars(string, Dictionary)` with +the variables dictionary as the second argument. + +The response would contain the response string. + +Let’s run the following query with a variable `$a`: + +```console +query all($a: string) { + all(func: eq(name, $a)) + { + name + } +} +``` + +Run the query, deserialize the result from Uint8Array (or base64) encoded JSON and +print it out: + +```c# +// Run query. +var query = @"query all($a: string) { + all(func: eq(name, $a)) + { + name + } +}"; + +var vars = new Dictionary { { $a: "Alice" } }; +var res = await dgraphClient.NewReadOnlyTransaction().QueryWithVars(query, vars); + +// Print results. +Console.Write(res.Value.Json); +``` + +### Running an Upsert: Query + Mutation + +The `Transaction.Mutate` function allows you to run upserts consisting of one query and one mutation. + + +```c# +var query = @" + query { + user as var(func: eq(email, \"wrong_email@dgraph.io\")) + }"; + +var mutation = new MutationBuilder{ SetNquads = "uid(user) \"correct_email@dgraph.io\" ." }; + +var request = new RequestBuilder{ Query = query, CommitNow = true }.withMutation(mutation); + +// Upsert: If wrong_email found, update the existing data +// or else perform a new mutation. +await txn.Mutate(request); +``` + +### Committing a Transaction + +A transaction can be committed using the `Transaction.Commit` method. If your transaction +consisted solely of calls to `Transaction.Query` or `Transaction.QueryWithVars`, and no calls to +`Transaction.Mutate`, then calling `Transaction.Commit` is not necessary. + +An error will be returned if other transactions running concurrently modify the same +data that was modified in this transaction. It is up to the user to retry +transactions when they fail. + +```c# +using(var txn = client.NewTransaction()) { + var result = txn.Commit(); +} +``` diff --git a/docusaurus-docs/docs/clients/go.md b/docusaurus-docs/docs/clients/go.md new file mode 100644 index 00000000..b2cdb749 --- /dev/null +++ b/docusaurus-docs/docs/clients/go.md @@ -0,0 +1,497 @@ +--- +title: Go +--- + +[![GoDoc](https://godoc.org/github.com/dgraph-io/dgo?status.svg)](https://godoc.org/github.com/dgraph-io/dgo) + +The Go client communicates with the server on the gRPC port (default value 9080). + +The client can be obtained in the usual way via `go get`: + +```sh + Requires at least Go 1.11 +export GO111MODULE=on +go get -u -v github.com/dgraph-io/dgo/v210 +``` + +The full [GoDoc](https://godoc.org/github.com/dgraph-io/dgo) contains +documentation for the client API along with examples showing how to use it. + +More details on the supported versions can be found at [this link](https://github.com/dgraph-io/dgo#supported-versions). + +## Create the client + +To create a client, dial a connection to Dgraph's external gRPC port (typically `9080`). +The following code snippet shows just one connection. You can connect to multiple Dgraph Alphas to distribute the workload evenly. + +```go +func newClient() *dgo.Dgraph { + // Dial a gRPC connection. The address to dial to can be configured when + // setting up the dgraph cluster. + d, err := grpc.Dial("localhost:9080", grpc.WithInsecure()) + if err != nil { + log.Fatal(err) + } + + return dgo.NewDgraphClient( + api.NewDgraphClient(d), + ) +} +``` + +The client can be configured to use gRPC compression: + +```go +func newClient() *dgo.Dgraph { + // Dial a gRPC connection. The address to dial to can be configured when + // setting up the dgraph cluster. + dialOpts := append([]grpc.DialOption{}, + grpc.WithInsecure(), + grpc.WithDefaultCallOptions(grpc.UseCompressor(gzip.Name))) + d, err := grpc.Dial("localhost:9080", dialOpts...) + + if err != nil { + log.Fatal(err) + } + + return dgo.NewDgraphClient( + api.NewDgraphClient(d), + ) +} + +``` + +### Multi-tenancy + +In [multi-tenancy](/dgraph-overview/admin/enterprise-features/multitenancy) environments, Dgraph provides a new method `LoginIntoNamespace()`, +which will allow the users to login to a specific namespace. + +In order to create a dgo client, and make the client login into namespace `123`: + +```go +conn, err := grpc.Dial("127.0.0.1:9080", grpc.WithInsecure()) +if err != nil { + glog.Error("While trying to dial gRPC, got error", err) +} +dc := dgo.NewDgraphClient(api.NewDgraphClient(conn)) +ctx := context.Background() +// Login to namespace 123 +if err := dc.LoginIntoNamespace(ctx, "groot", "password", 123); err != nil { + glog.Error("Failed to login: ",err) +} +``` + +In the example above, the client logs into namespace `123` using username `groot` and password `password`. +Once logged in, the client can perform all the operations allowed to the `groot` user of namespace `123`. + + + +## Alter the database + +To set the schema, set it on a `api.Operation` object, and pass it down to +the `Alter` method. + +```go +func setup(c *dgo.Dgraph) { + // Install a schema into dgraph. Accounts have a `name` and a `balance`. + err := c.Alter(context.Background(), &api.Operation{ + Schema: ` + name: string @index(term) . + balance: int . + `, + }) +} +``` + +`api.Operation` contains other fields as well, including drop predicate and drop +all. Drop all is useful if you wish to discard all the data, and start from a +clean slate, without bringing the instance down. + +```go + // Drop all data including schema from the dgraph instance. This is useful + // for small examples such as this, since it puts dgraph into a clean + // state. + err := c.Alter(context.Background(), &api.Operation{DropOp: api.Operation_ALL}) +``` + +The old way to send a drop all operation is still supported but will be eventually +deprecated. It's shown below for reference. + +```go + // Drop all data including schema from the dgraph instance. This is useful + // for small examples such as this, since it puts dgraph into a clean + // state. + err := c.Alter(context.Background(), &api.Operation{DropAll: true}) +``` + +Starting with version 1.1, `api.Operation` also supports a drop data operation. +This operation drops all the data but preserves the schema. This is useful when +the schema is large and needs to be reused, such as in between unit tests. + +```go + // Drop all data including schema from the dgraph instance. This is useful + // for small examples such as this, since it puts dgraph into a clean + // state. + err := c.Alter(context.Background(), &api.Operation{DropOp: api.Operation_DATA}) +``` + +## Create a transaction + +Dgraph supports running distributed ACID transactions. To create a +transaction, just call `c.NewTxn()`. This operation doesn't incur in network calls. +Typically, you'd also want to call a `defer txn.Discard(ctx)` to let it +automatically rollback in case of errors. Calling `Discard` after `Commit` would +be a no-op. + +```go +func runTxn(c *dgo.Dgraph) { + txn := c.NewTxn() + defer txn.Discard(ctx) + ... +} +``` + +### Read-Only Transactions + +Read-only transactions can be created by calling `c.NewReadOnlyTxn()`. Read-only +transactions are useful to increase read speed because they can circumvent the +usual consensus protocol. Read-only transactions cannot contain mutations and +trying to call `txn.Commit()` will result in an error. Calling `txn.Discard()` +will be a no-op. + +Read-only queries can optionally be set as best-effort. Using this flag will ask +the Dgraph Alpha to try to get timestamps from memory on a best-effort basis to +reduce the number of outbound requests to Zero. This may yield improved +latencies in read-bound workloads where linearizable reads are not strictly +needed. + +## Run a query + +You can run a query by calling `txn.Query`. The response would contain a `JSON` +field, which has the JSON encoded result. You can unmarshal it into Go struct +via `json.Unmarshal`. + +```go + // Query the balance for Alice and Bob. + const q = ` + { + all(func: anyofterms(name, "Alice Bob")) { + uid + balance + } + } + ` + resp, err := txn.Query(context.Background(), q) + if err != nil { + log.Fatal(err) + } + + // After we get the balances, we have to decode them into structs so that + // we can manipulate the data. + var decode struct { + All []struct { + Uid string + Balance int + } + } + if err := json.Unmarshal(resp.GetJson(), &decode); err != nil { + log.Fatal(err) + } +``` + +## Query with RDF response + +You can get query result as a RDF response by calling `txn.QueryRDF`. The response would contain +a `Rdf` field, which has the RDF encoded result. + +:::note +If you are querying only for `uid` values, use a JSON format response. +::: + +```go + // Query the balance for Alice and Bob. + const q = ` + { + all(func: anyofterms(name, "Alice Bob")) { + name + balance + } + } + ` + resp, err := txn.QueryRDF(context.Background(), q) + if err != nil { + log.Fatal(err) + } + + // <0x17> "Alice" . + // <0x17> 100 . + fmt.Println(resp.Rdf) +``` + +## Run a mutation + +`txn.Mutate` would run the mutation. It takes in a `api.Mutation` object, +which provides two main ways to set data: JSON and RDF N-Quad. You can choose +whichever way is convenient. + +To use JSON, use the fields SetJson and DeleteJson, which accept a string +representing the nodes to be added or removed respectively (either as a JSON map +or a list). To use RDF, use the fields SetNquads and DeleteNquads, which accept +a string representing the valid RDF triples (one per line) to added or removed +respectively. This protobuf object also contains the Set and Del fields which +accept a list of RDF triples that have already been parsed into our internal +format. As such, these fields are mainly used internally and users should use +the SetNquads and DeleteNquads instead if they are planning on using RDF. + +We're going to continue using JSON. You could modify the Go structs parsed from +the query, and marshal them back into JSON. + +```go + // Move $5 between the two accounts. + decode.All[0].Bal += 5 + decode.All[1].Bal -= 5 + + out, err := json.Marshal(decode.All) + if err != nil { + log.Fatal(err) + } + + _, err := txn.Mutate(context.Background(), &api.Mutation{SetJson: out}) +``` + +Sometimes, you only want to commit mutation, without querying anything further. +In such cases, you can use a `CommitNow` field in `api.Mutation` to +indicate that the mutation must be immediately committed. + +## Commit the transaction + +Once all the queries and mutations are done, you can commit the transaction. It +returns an error in case the transaction could not be committed. + +```go + // Finally, we can commit the transactions. An error will be returned if + // other transactions running concurrently modify the same data that was + // modified in this transaction. It is up to the library user to retry + // transactions when they fail. + + err := txn.Commit(context.Background()) +``` + +## Complete Example + +This is an example from the [GoDoc](https://godoc.org/github.com/dgraph-io/dgo). It shows how to to create a `Node` with name `Alice`, while also creating her relationships with other nodes. + +:::note +`loc` predicate is of type `geo` and can be easily marshaled and unmarshaled into a Go struct. More such examples are present as part of the GoDoc. +::: + +:::tip +You can also download this complete example file from our [GitHub repository](https://github.com/dgraph-io/dgo/blob/master/example_set_object_test.go). +::: + +```go +package dgo_test + +import ( + "context" + "encoding/json" + "fmt" + "log" + "time" + + "github.com/dgraph-io/dgo/v200/protos/api" +) + +type School struct { + Name string `json:"name,omitempty"` + DType []string `json:"dgraph.type,omitempty"` +} + +type loc struct { + Type string `json:"type,omitempty"` + Coords []float64 `json:"coordinates,omitempty"` +} + +// If omitempty is not set, then edges with empty values (0 for int/float, "" for string, false +// for bool) would be created for values not specified explicitly. + +type Person struct { + Uid string `json:"uid,omitempty"` + Name string `json:"name,omitempty"` + Age int `json:"age,omitempty"` + Dob *time.Time `json:"dob,omitempty"` + Married bool `json:"married,omitempty"` + Raw []byte `json:"raw_bytes,omitempty"` + Friends []Person `json:"friend,omitempty"` + Location loc `json:"loc,omitempty"` + School []School `json:"school,omitempty"` + DType []string `json:"dgraph.type,omitempty"` +} + +func Example_setObject() { + dg, cancel := getDgraphClient() + defer cancel() + + dob := time.Date(1980, 01, 01, 23, 0, 0, 0, time.UTC) + // While setting an object if a struct has a Uid then its properties in the graph are updated + // else a new node is created. + // In the example below new nodes for Alice, Bob and Charlie and school are created (since they + // don't have a Uid). + p := Person{ + Uid: "_:alice", + Name: "Alice", + Age: 26, + Married: true, + DType: []string{"Person"}, + Location: loc{ + Type: "Point", + Coords: []float64{1.1, 2}, + }, + Dob: &dob, + Raw: []byte("raw_bytes"), + Friends: []Person{{ + Name: "Bob", + Age: 24, + DType: []string{"Person"}, + }, { + Name: "Charlie", + Age: 29, + DType: []string{"Person"}, + }}, + School: []School{{ + Name: "Crown Public School", + DType: []string{"Institution"}, + }}, + } + + op := &api.Operation{} + op.Schema = ` + name: string @index(exact) . + age: int . + married: bool . + loc: geo . + dob: datetime . + Friend: [uid] . + type: string . + coords: float . + type Person { + name: string + age: int + married: bool + Friend: [Person] + loc: Loc + } + type Institution { + name: string + } + type Loc { + type: string + coords: float + } + ` + + ctx := context.Background() + if err := dg.Alter(ctx, op); err != nil { + log.Fatal(err) + } + + mu := &api.Mutation{ + CommitNow: true, + } + pb, err := json.Marshal(p) + if err != nil { + log.Fatal(err) + } + + mu.SetJson = pb + response, err := dg.NewTxn().Mutate(ctx, mu) + if err != nil { + log.Fatal(err) + } + + // Assigned uids for nodes which were created would be returned in the response.Uids map. + variables := map[string]string{"$id1": response.Uids["alice"]} + q := `query Me($id1: string){ + me(func: uid($id1)) { + name + dob + age + loc + raw_bytes + married + dgraph.type + friend @filter(eq(name, "Bob")){ + name + age + dgraph.type + } + school { + name + dgraph.type + } + } + }` + + resp, err := dg.NewTxn().QueryWithVars(ctx, q, variables) + if err != nil { + log.Fatal(err) + } + + type Root struct { + Me []Person `json:"me"` + } + + var r Root + err = json.Unmarshal(resp.Json, &r) + if err != nil { + log.Fatal(err) + } + + out, _ := json.MarshalIndent(r, "", "\t") + fmt.Printf("%s\n", out) +} +``` + +Example output result: + +```json + Output: { + "me": [ + { + "name": "Alice", + "age": 26, + "dob": "1980-01-01T23:00:00Z", + "married": true, + "raw_bytes": "cmF3X2J5dGVz", + "friend": [ + { + "name": "Bob", + "age": 24, + "loc": {}, + "dgraph.type": [ + "Person" + ] + } + ], + "loc": { + "type": "Point", + "coordinates": [ + 1.1, + 2 + ] + }, + "school": [ + { + "name": "Crown Public School", + "dgraph.type": [ + "Institution" + ] + } + ], + "dgraph.type": [ + "Person" + ] + } + ] + } +``` diff --git a/docusaurus-docs/docs/clients/index.md b/docusaurus-docs/docs/clients/index.md new file mode 100644 index 00000000..a066d5e5 --- /dev/null +++ b/docusaurus-docs/docs/clients/index.md @@ -0,0 +1,56 @@ +--- +title: Client Libraries +description: Dgraph client libraries in various programming languages. +--- + +Dgraph client libraries allow you to run DQL transactions, queries and mutations in various programming languages. + +If you are interested in clients for GraphQL endpoint, please refer to [GraphQL clients](/dgraph-overview/graphql-clients) section. + + +Go, python, Java, C# and JavaScript clients are using **[gRPC](http://www.grpc.io/):** protocol and [Protocol + Buffers](https://developers.google.com/protocol-buffers) (the proto file +used by Dgraph is located at +[api.proto](https://github.com/dgraph-io/dgo/blob/master/protos/api.proto)). + +A JavaScript client using **HTTP:** is also available. + + +It's possible to interface with Dgraph directly via gRPC or HTTP. However, if a +client library exists for your language, that will be an easier option. + +:::tip +For multi-node setups, predicates are assigned to the group that first sees that +predicate. Dgraph also automatically moves predicate data to different groups in +order to balance predicate distribution. This occurs automatically every 10 +minutes. It's possible for clients to aid this process by communicating with all +Dgraph instances. For the Go client, this means passing in one +`*grpc.ClientConn` per Dgraph instance, or routing traffic through a load balancer. +Mutations will be made in a round robin +fashion, resulting in a semi-random initial predicate distribution. +::: + + +### Transactions + +Dgraph clients perform mutations and queries using transactions. A +transaction bounds a sequence of queries and mutations that are committed by +Dgraph as a single unit: that is, on commit, either all the changes are accepted +by Dgraph or none are. + +A transaction always sees the database state at the moment it began, plus any +changes it makes --- changes from concurrent transactions aren't visible. + +On commit, Dgraph will abort a transaction, rather than committing changes, when +a conflicting, concurrently running transaction has already been committed. Two +transactions conflict when both transactions: + +- write values to the same scalar predicate of the same node (e.g both + attempting to set a particular node's `address` predicate); or +- write to a singular `uid` predicate of the same node (changes to `[uid]` predicates can be concurrently written); or +- write a value that conflicts on an index for a predicate with `@upsert` set in the schema (see [upserts](/dgraph-overview/dql/upserts)). + +When a transaction is aborted, all its changes are discarded. Transactions can be manually aborted. + + +### In this section diff --git a/docusaurus-docs/docs/clients/java.md b/docusaurus-docs/docs/clients/java.md new file mode 100644 index 00000000..bae912cb --- /dev/null +++ b/docusaurus-docs/docs/clients/java.md @@ -0,0 +1,529 @@ +--- +title: Java +--- + +A minimal implementation for a Dgraph client for Java 1.8 and above, using [gRPC](https://grpc.io/). +This client follows the [Dgraph Go client](/dgraph-overview/clients/go) closely. + +:::tip +The official Java client [can be found here](https://github.com/dgraph-io/dgraph4j). +Follow the [install instructions](https://github.com/dgraph-io/dgraph4j#download) to get it up and running. +::: + +## Supported Versions + +More details on the supported versions can be found at [this link](https://github.com/dgraph-io/dgraph4j#supported-versions). + +## Quickstart +Build and run the [DgraphJavaSample](https://github.com/dgraph-io/dgraph4j/tree/master/samples/DgraphJavaSample) project in the `samples` folder, which +contains an end-to-end example of using the Dgraph Java client. Follow the +instructions in the [README](https://github.com/dgraph-io/dgraph4j/tree/master/samples/DgraphJavaSample/README.md) of that project. + +## Intro +This library supports two styles of clients, the synchronous client `DgraphClient` and +the async client `DgraphAsyncClient`. +A `DgraphClient` or `DgraphAsyncClient` can be initialized by passing it +a list of `DgraphBlockingStub` clients. The `anyClient()` API can randomly pick a stub, which can +then be used for GRPC operations. In the next section, we will explain how to create a +synchronous client and use it to mutate or query dgraph. For the async client, more details can +be found in the [Using the Asynchronous Client](#using-the-asynchronous-client) section. + +## Using the Synchronous Client + +:::tip +You can find a [DgraphJavaSample](https://github.com/dgraph-io/dgraph4j/tree/master/samples/DgraphJavaSample) project, +which contains an end-to-end working example of how to use the Java client. +::: + +### Creating a Client + +The following code snippet shows how to create a synchronous client using three connections. + +```java +ManagedChannel channel1 = ManagedChannelBuilder + .forAddress("localhost", 9080) + .usePlaintext().build(); +DgraphStub stub1 = DgraphGrpc.newStub(channel1); + +ManagedChannel channel2 = ManagedChannelBuilder + .forAddress("localhost", 9082) + .usePlaintext().build(); +DgraphStub stub2 = DgraphGrpc.newStub(channel2); + +ManagedChannel channel3 = ManagedChannelBuilder + .forAddress("localhost", 9083) + .usePlaintext().build(); +DgraphStub stub3 = DgraphGrpc.newStub(channel3); + +DgraphClient dgraphClient = new DgraphClient(stub1, stub2, stub3); +``` +### Login using ACL + +If [ACL](/dgraph-overview/admin/enterprise-features/access-control-lists) is enabled then you can log-in to the default namespace (`0`) with the following method: + +```java +dgraphClient.login(USER_ID, USER_PASSWORD); +``` + +### Multi-tenancy + +If [multi-tenancy](/dgraph-overview/admin/enterprise-features/multitenancy) is enabled, by default the login method on client will login into the namespace `0`. +In order to login into some other namespace, use the `loginIntoNamespace` method on the client: + +```java +dgraphClient.loginIntoNamespace(USER_ID, USER_PASSWORD, NAMESPACE); +``` + +Once logged-in, the `dgraphClient` object can be used to do any further operations. + + +### Creating a Secure Client using TLS + +To setup a client using TLS, you could use the following code snippet. The server needs to be +setup using the instructions provided [here](/dgraph-overview/admin/security/tls-configuration). + +If you are doing client verification, you need to convert the client key from PKCS#1 format to +PKCS#8 format. By default, grpc doesn't support reading PKCS#1 format keys. To convert the +format, you could use the `openssl` tool. + +First, let's install the `openssl` tool: +```sh +apt install openssl +``` + +Now, use the following command to convert the key: +```sh +openssl pkcs8 -in client.name.key -topk8 -nocrypt -out client.name.java.key +``` + +Now, you can use the following code snippet to connect to Alpha over TLS: + +```java +SslContextBuilder builder = GrpcSslContexts.forClient(); +builder.trustManager(new File("")); +// Skip the next line if you are not performing client verification. +builder.keyManager(new File(""), new File("")); +SslContext sslContext = builder.build(); + +ManagedChannel channel = NettyChannelBuilder.forAddress("localhost", 9080) + .sslContext(sslContext) + .build(); +DgraphGrpc.DgraphStub stub = DgraphGrpc.newStub(channel); +DgraphClient dgraphClient = new DgraphClient(stub); +``` + +### Check Dgraph version + +Checking the version of the Dgraph server this client is interacting with is as easy as: +```java +Version v = dgraphClient.checkVersion(); +System.out.println(v.getTag()); +``` +Checking the version, before doing anything else can be used as a test to find out if the client +is able to communicate with the Dgraph server. This will also help reduce the latency of the first +query/mutation which results from some dynamic library loading and linking that happens in JVM +(see [this issue](https://github.com/dgraph-io/dgraph4j/issues/108) for more details). + +### Altering the Database + +To set the schema, create an `Operation` object, set the schema and pass it to +`DgraphClient#alter` method. + +```java +String schema = "name: string @index(exact) ."; +Operation operation = Operation.newBuilder().setSchema(schema).build(); +dgraphClient.alter(operation); +``` + +Starting Dgraph version 20.03.0, indexes can be computed in the background. +You can call the function `setRunInBackground(true)` as shown below before +calling `alter`. You can find more details +[here](/dgraph-overview/update-dgraph-types#indexes-in-background). + +```java +String schema = "name: string @index(exact) ."; +Operation operation = Operation.newBuilder() + .setSchema(schema) + .setRunInBackground(true) + .build(); +dgraphClient.alter(operation); +``` + +`Operation` contains other fields as well, including drop predicate and +drop all. Drop all is useful if you wish to discard all the data, and start from +a clean slate, without bringing the instance down. + +```java +// Drop all data including schema from the dgraph instance. This is useful +// for small examples such as this, since it puts dgraph into a clean +// state. +dgraphClient.alter(Operation.newBuilder().setDropAll(true).build()); +``` + +### Creating a Transaction + +There are two types of transactions in dgraph, i.e. the read-only transactions that only include +queries and the transactions that change data in dgraph with mutate operations. Both the +synchronous client `DgraphClient` and the async client `DgraphAsyncClient` support the two types +of transactions by providing the `newTransaction` and the `newReadOnlyTransaction` APIs. Creating + a transaction is a local operation and incurs no network overhead. + +In most of the cases, the normal read-write transactions is used, which can have any +number of query or mutate operations. However, if a transaction only has queries, you might +benefit from a read-only transaction, which can share the same read timestamp across multiple +such read-only transactions and can result in lower latencies. + +For normal read-write transactions, it is a good practice to call `Transaction#discard()` in a +`finally` block after running the transaction. Calling `Transaction#discard()` after +`Transaction#commit()` is a no-op and you can call `discard()` multiple times with no additional +side-effects. + +```java +Transaction txn = dgraphClient.newTransaction(); +try { + // Do something here + // ... +} finally { + txn.discard(); +} +``` + +For read-only transactions, there is no need to call `Transaction.discard`, which is equivalent +to a no-op. + +```java +Transaction readOnlyTxn = dgraphClient.newReadOnlyTransaction(); +``` + +Read-only transactions can be set as best-effort. Best-effort queries relax the requirement of +linearizable reads. This is useful when running queries that do not require a result from the latest +timestamp. + +```java +Transaction bestEffortTxn = dgraphClient.newReadOnlyTransaction() + .setBestEffort(true); +``` + +### Running a Mutation +`Transaction#mutate` runs a mutation. It takes in a `Mutation` object, +which provides two main ways to set data: JSON and RDF N-Quad. You can choose +whichever way is convenient. + +We're going to use JSON. First we define a `Person` class to represent a person. +This data will be serialized into JSON. + +```java +class Person { + String name + Person() {} +} +``` + +Next, we initialize a `Person` object, serialize it and use it in `Mutation` object. + +```java +// Create data +Person person = new Person(); +person.name = "Alice"; + +// Serialize it +Gson gson = new Gson(); +String json = gson.toJson(person); +// Run mutation +Mutation mu = Mutation.newBuilder() + .setSetJson(ByteString.copyFromUtf8(json.toString())) + .build(); +txn.mutate(mu); +``` + +Sometimes, you only want to commit mutation, without querying anything further. +In such cases, you can use a `CommitNow` field in `Mutation` object to +indicate that the mutation must be immediately committed. + +Mutation can be run using the `doRequest` function as well. + +```java +Request request = Request.newBuilder() + .addMutations(mu) + .build(); +txn.doRequest(request); +``` + +### Committing a Transaction +A transaction can be committed using the `Transaction#commit()` method. If your transaction +consisted solely of calls to `Transaction#query()`, and no calls to `Transaction#mutate()`, +then calling `Transaction#commit()` is not necessary. + +An error will be returned if other transactions running concurrently modify the same data that was +modified in this transaction. It is up to the user to retry transactions when they fail. + +```java +Transaction txn = dgraphClient.newTransaction(); + +try { + // … + // Perform any number of queries and mutations + // … + // and finally … + txn.commit() +} catch (TxnConflictException ex) { + // Retry or handle exception. +} finally { + // Clean up. Calling this after txn.commit() is a no-op + // and hence safe. + txn.discard(); +} +``` + +### Running a Query +You can run a query by calling `Transaction#query()`. You will need to pass in a GraphQL+- +query string, and a map (optional, could be empty) of any variables that you might want to +set in the query. + +The response would contain a `JSON` field, which has the JSON encoded result. You will need +to decode it before you can do anything useful with it. + +Let’s run the following query: + +``` +query all($a: string) { + all(func: eq(name, $a)) { + name + } +} +``` + +First we must create a `People` class that will help us deserialize the JSON result: + +```java +class People { + List all; + People() {} +} +``` + +Then we run the query, deserialize the result and print it out: + +```java +// Query +String query = +"query all($a: string){\n" + +" all(func: eq(name, $a)) {\n" + +" name\n" + +" }\n" + +"}\n"; + +Map vars = Collections.singletonMap("$a", "Alice"); +Response response = dgraphClient.newReadOnlyTransaction().queryWithVars(query, vars); + +// Deserialize +People ppl = gson.fromJson(response.getJson().toStringUtf8(), People.class); + +// Print results +System.out.printf("people found: %d\n", ppl.all.size()); +ppl.all.forEach(person -> System.out.println(person.name)); +``` +This should print: + +``` +people found: 1 +Alice +``` + +You can also use `doRequest` function to run the query. + +```java +Request request = Request.newBuilder() + .setQuery(query) + .build(); +txn.doRequest(request); +``` + +### Running a Query with RDF response + +You can get query results as an RDF response by calling either `queryRDF()` or `queryRDFWithVars()`. +The response contains the `getRdf()` method, which will provide the RDF encoded output. + +**Note**: If you are querying for `uid` values only, use a JSON format response + +```java +// Query +String query = "query me($a: string) { me(func: eq(name, $a)) { name }}"; +Map vars = Collections.singletonMap("$a", "Alice"); +Response response = + dgraphAsyncClient.newReadOnlyTransaction().queryRDFWithVars(query, vars).join(); + +// Print results +System.out.println(response.getRdf().toStringUtf8()); +``` + +This should print (assuming Alice's `uid` is `0x2`): + +``` +<0x2> "Alice" . +``` + +### Running an Upsert: Query + Mutation + +The `txn.doRequest` function allows you to run upserts consisting of one query and +one mutation. Variables can be defined in the query and used in the mutation. +You could also use `txn.doRequest` to perform a query followed by a mutation. + + +```java +String query = "query {\n" + + "user as var(func: eq(email, \"wrong_email@dgraph.io\"))\n" + + "}\n"; +Mutation mu = Mutation.newBuilder() + .setSetNquads(ByteString.copyFromUtf8("uid(user) \"correct_email@dgraph.io\" .")) + .build(); +Request request = Request.newBuilder() + .setQuery(query) + .addMutations(mu) + .setCommitNow(true) + .build(); +txn.doRequest(request); +``` + +### Running a Conditional Upsert + +The upsert block also allows specifying a conditional mutation block using an `@if` directive. The mutation is executed +only when the specified condition is true. If the condition is false, the mutation is silently ignored. + +See more about Conditional Upsert [Here](/dgraph-overview/dql-mutation#conditional-upsert). + +```java +String query = "query {\n" + + "user as var(func: eq(email, \"wrong_email@dgraph.io\"))\n" + + "}\n"; +Mutation mu = Mutation.newBuilder() + .setSetNquads(ByteString.copyFromUtf8("uid(user) \"correct_email@dgraph.io\" .")) + .setCond("@if(eq(len(user), 1))") + .build(); +Request request = Request.newBuilder() + .setQuery(query) + .addMutations(mu) + .setCommitNow(true) + .build(); +txn.doRequest(request); +``` + +### Setting Deadlines +It is recommended that you always set a deadline for each client call, after +which the client terminates. This is in line with the recommendation for any gRPC client. +Read [this forum post][deadline-post] for more details. + +```java +channel = ManagedChannelBuilder.forAddress("localhost", 9080).usePlaintext(true).build(); +DgraphGrpc.DgraphStub stub = DgraphGrpc.newStub(channel); +ClientInterceptor timeoutInterceptor = new ClientInterceptor(){ + @Override + public ClientCall interceptCall( + MethodDescriptor method, CallOptions callOptions, Channel next) { + return next.newCall(method, callOptions.withDeadlineAfter(500, TimeUnit.MILLISECONDS)); + } +}; +stub.withInterceptors(timeoutInterceptor); +DgraphClient dgraphClient = new DgraphClient(stub); +``` + +[deadline-post]: https://discuss.dgraph.io/t/dgraph-java-client-setting-deadlines-per-call/3056 + +### Setting Metadata Headers +Certain headers such as authentication tokens need to be set globally for all subsequent calls. +Below is an example of setting a header with the name "auth-token": +```java +// create the stub first +ManagedChannel channel = +ManagedChannelBuilder.forAddress(TEST_HOSTNAME, TEST_PORT).usePlaintext(true).build(); +DgraphStub stub = DgraphGrpc.newStub(channel); + +// use MetadataUtils to augment the stub with headers +Metadata metadata = new Metadata(); +metadata.put( + Metadata.Key.of("auth-token", Metadata.ASCII_STRING_MARSHALLER), "the-auth-token-value"); +stub = MetadataUtils.attachHeaders(stub, metadata); + +// create the DgraphClient wrapper around the stub +DgraphClient dgraphClient = new DgraphClient(stub); + +// trigger a RPC call using the DgraphClient +dgraphClient.alter(Operation.newBuilder().setDropAll(true).build()); +``` +### Helper Methods + +#### Delete multiple edges +The example below uses the helper method `Helpers#deleteEdges` to delete +multiple edges corresponding to predicates on a node with the given uid. +The helper method takes an existing mutation, and returns a new mutation +with the deletions applied. + +```java +Mutation mu = Mutation.newBuilder().build() +mu = Helpers.deleteEdges(mu, uid, "friends", "loc"); +dgraphClient.newTransaction().mutate(mu); +``` + +### Closing the DB Connection + +To disconnect from Dgraph, call `ManagedChannel#shutdown` on the gRPC +channel object created when [creating a Dgraph +client](#creating-a-client). + +``` +channel.shutdown(); +``` + +## Using the Asynchronous Client +Dgraph Client for Java also bundles an asynchronous API, which can be used by +instantiating the `DgraphAsyncClient` class. The usage is almost exactly the +same as the `DgraphClient` (show in previous section) class. The main +differences is that the `DgraphAsyncClient#newTransacation()` returns an +`AsyncTransaction` class. The API for `AsyncTransaction` is exactly +`Transaction`. The only difference is that instead of returning the results +directly, it returns immediately with a corresponding `CompletableFuture` +object. This object represents the computation which runs asynchronously to +yield the result in the future. Read more about `CompletableFuture` in the +[Java 8 documentation][futuredocs]. + +[futuredocs]: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html + +Here is the asynchronous version of the code above, which runs a query. + +```java +// Query +String query = +"query all($a: string){\n" + +" all(func: eq(name, $a)) {\n" + +" name\n" + + "}\n" + +"}\n"; + +Map vars = Collections.singletonMap("$a", "Alice"); + +AsyncTransaction txn = dgraphAsyncClient.newTransaction(); +txn.query(query).thenAccept(response -> { + // Deserialize + People ppl = gson.fromJson(res.getJson().toStringUtf8(), People.class); + + // Print results + System.out.printf("people found: %d\n", ppl.all.size()); + ppl.all.forEach(person -> System.out.println(person.name)); +}); +``` +## Checking the request latency +If you would like to see the latency for either a mutation or +query request, the latency field in the returned result can be helpful. Here is an example to log + the latency of a query request: +```java +Response resp = txn.query(query); +Latency latency = resp.getLatency(); +logger.info("parsing latency:" + latency.getParsingNs()); +logger.info("processing latency:" + latency.getProcessingNs()); +logger.info("encoding latency:" + latency.getEncodingNs()); +``` +Similarly you can get the latency of a mutation request: +```java +Assigned assignedIds = dgraphClient.newTransaction().mutate(mu); +Latency latency = assignedIds.getLatency(); +``` diff --git a/docusaurus-docs/docs/clients/javascript/grpc.md b/docusaurus-docs/docs/clients/javascript/grpc.md new file mode 100644 index 00000000..426990b6 --- /dev/null +++ b/docusaurus-docs/docs/clients/javascript/grpc.md @@ -0,0 +1,404 @@ +--- +title: gRPC Client +--- + +The official Dgraph client implementation for JavaScript, using +[gRPC-js](https://www.npmjs.com/package/@grpc/grpc-js) (the original +[gRPC](https://grpc.io/) client for JavaScript is now deprecated). + +This client follows the [Dgraph Go client](/dgraph-overview/clients/go) closely. + + +:::tip +You can find the official Dgraph JavaScript gRPC client at: https://github.com/dgraph-io/dgraph-js. +Follow the [installation instructions](https://github.com/dgraph-io/dgraph-js#install) to get it up and running. +::: + +## Supported Versions + +More details on the supported versions can be found at [this link](https://github.com/dgraph-io/dgraph-js#supported-versions). + +## Quickstart + +Build and run the [simple project](https://github.com/dgraph-io/dgraph-js/tree/master/examples/simple), which +contains an end-to-end example of using the Dgraph JavaScript client. Follow the +instructions in the [README](https://github.com/dgraph-io/dgraph-js/tree/master/examples/simple/README.md) of that project. + +### Examples + +- [simple](https://github.com/dgraph-io/dgraph-js/tree/master/examples/simple): Quickstart example of using dgraph-js. +- [tls](https://github.com/dgraph-io/dgraph-js/tree/master/examples/tls): Example of using dgraph-js with a Dgraph cluster secured with TLS. + +## Using a Client + +:::tip +You can find a [simple example](https://github.com/dgraph-io/dgraph-js/tree/master/examples/simple) +project, which contains an end-to-end working example of how to use the JavaScript gRPC client, +for Node.js >= v6. +::: + +### Creating a Client + +A `DgraphClient` object can be initialized by passing it a list of +`DgraphClientStub` clients as variadic arguments. Connecting to multiple Dgraph +servers in the same cluster allows for better distribution of workload. + +The following code snippet shows just one connection. + +```js +const dgraph = require("dgraph-js"); +const grpc = require("grpc"); + +const clientStub = new dgraph.DgraphClientStub( + // addr: optional, default: "localhost:9080" + "localhost:9080", + // credentials: optional, default: grpc.credentials.createInsecure() + grpc.credentials.createInsecure(), +); +const dgraphClient = new dgraph.DgraphClient(clientStub); +``` + +To facilitate debugging, [debug mode](#debug-mode) can be enabled for a client. + +### Multi-tenancy + +In [multi-tenancy](/dgraph-overview/admin/enterprise-features/multitenancy) environments, `dgraph-js` provides a new method `loginIntoNamespace()`, +which will allow the users to login to a specific namespace. + +In order to create a JavaScript client, and make the client login into namespace `123`: + +```js +const dgraphClientStub = new dgraph.DgraphClientStub("localhost:9080"); +await dgraphClientStub.loginIntoNamespace("groot", "password", 123); // where 123 is the namespaceId +``` + +In the example above, the client logs into namespace `123` using username `groot` and password `password`. +Once logged in, the client can perform all the operations allowed to the `groot` user of namespace `123`. + + +### Altering the Database + +To set the schema, create an `Operation` object, set the schema and pass it to +`DgraphClient#alter(Operation)` method. + +```js +const schema = "name: string @index(exact) ."; +const op = new dgraph.Operation(); +op.setSchema(schema); +await dgraphClient.alter(op); +``` + +Starting Dgraph version 20.03.0, indexes can be computed in the background. +You can set `setRunInBackground` field of the `Operation` object to `true` +before passing it to the `DgraphClient#alter(Operation)` method. You can find more details +[here](/dgraph-overview/update-dgraph-types#indexes-in-background). + +```js +const schema = "name: string @index(exact) ."; +const op = new dgraph.Operation(); +op.setSchema(schema); +op.setRunInBackground(true); +await dgraphClient.alter(op); +``` + +> NOTE: Many of the examples here use the `await` keyword which requires +> `async/await` support which is available on Node.js >= v7.6.0. For prior versions, +> the expressions following `await` can be used just like normal `Promise`: +> +> ```js +> dgraphClient.alter(op) +> .then(function(result) { ... }, function(err) { ... }) +> ``` + +`Operation` contains other fields as well, including drop predicate and drop all. +Drop all is useful if you wish to discard all the data, and start from a clean +slate, without bringing the instance down. + +```js +// Drop all data including schema from the Dgraph instance. This is useful +// for small examples such as this, since it puts Dgraph into a clean +// state. +const op = new dgraph.Operation(); +op.setDropAll(true); +await dgraphClient.alter(op); +``` + +### Creating a Transaction + +To create a transaction, call `DgraphClient#newTxn()` method, which returns a +new `Txn` object. This operation incurs no network overhead. + +It is good practice to call `Txn#discard()` in a `finally` block after running +the transaction. Calling `Txn#discard()` after `Txn#commit()` is a no-op +and you can call `Txn#discard()` multiple times with no additional side-effects. + +```js +const txn = dgraphClient.newTxn(); +try { + // Do something here + // ... +} finally { + await txn.discard(); + // ... +} +``` + +To create a read-only transaction, set `readOnly` boolean to `true` while calling +`DgraphClient#newTxn()` method. Read-only transactions cannot contain mutations and +trying to call `Txn#mutate()` or `Txn#commit()` will result in an error. Calling +`Txn.Discard()` will be a no-op. + +You can optionally set the `bestEffort` boolean to `true`. This may yield improved +latencies in read-bound workloads where linearizable reads are not strictly needed. + +```js +const txn = dgraphClient.newTxn({ + readOnly: true, + bestEffort: false +}); +// ... +const res = await txn.queryWithVars(query, vars); +``` + +### Running a Mutation + +`Txn#mutate(Mutation)` runs a mutation. It takes in a `Mutation` object, which +provides two main ways to set data: JSON and RDF N-Quad. You can choose whichever +way is convenient. + +We define a person object to represent a person and use it in a `Mutation` object. + +```js +// Create data. +const p = { + name: "Alice", +}; + +// Run mutation. +const mu = new dgraph.Mutation(); +mu.setSetJson(p); +await txn.mutate(mu); +``` + +For a more complete example with multiple fields and relationships, look at the +[simple] project in the `examples` folder. + +Sometimes, you only want to commit a mutation, without querying anything further. +In such cases, you can use `Mutation#setCommitNow(true)` to indicate that the +mutation must be immediately committed. + +`Mutation#setIgnoreIndexConflict(true)` can be applied on a `Mutation` object to +not run conflict detection over the index, which would decrease the number of +transaction conflicts and aborts. However, this would come at the cost of potentially +inconsistent upsert operations. + +Mutation can be run using `txn.doRequest` as well. + +```js +const mu = new dgraph.Mutation(); +mu.setSetJson(p); + +const req = new dgraph.Request(); +req.setCommitNow(true); +req.setMutationsList([mu]); + +await txn.doRequest(req); +``` + +### Running a Query + +You can run a query by calling `Txn#query(string)`. You will need to pass in a +GraphQL+- query string. If you want to pass an additional map of any variables that +you might want to set in the query, call `Txn#queryWithVars(string, object)` with +the variables object as the second argument. + +The response would contain the method `Response#getJSON()`, which returns the response +JSON. + +Let’s run the following query with a variable $a: + +```console +query all($a: string) { + all(func: eq(name, $a)) + { + name + } +} +``` + +Run the query, deserialize the result from Uint8Array (or base64) encoded JSON and +print it out: + +```js +// Run query. +const query = `query all($a: string) { + all(func: eq(name, $a)) + { + name + } +}`; +const vars = { $a: "Alice" }; +const res = await dgraphClient.newTxn().queryWithVars(query, vars); +const ppl = res.getJson(); + +// Print results. +console.log(`Number of people named "Alice": ${ppl.all.length}`); +ppl.all.forEach((person) => console.log(person.name)); +``` + +This should print: + +```console +Number of people named "Alice": 1 +Alice +``` + +You can also use `txn.doRequest` function to run the query. +```js +const req = new dgraph.Request(); +const vars = req.getVarsMap(); +vars.set("$a", "Alice"); +req.setQuery(query); + +const res = await txn.doRequest(req); +console.log(JSON.stringify(res.getJson())); +``` + +### Running an Upsert: Query + Mutation + +The `txn.doRequest` function allows you to run upserts consisting of one query and one mutation. +Query variables could be defined and can then be used in the mutation. You can also use the +`txn.doRequest` function to perform just a query or a mutation. + + +```js +const query = ` + query { + user as var(func: eq(email, "wrong_email@dgraph.io")) + }` + +const mu = new dgraph.Mutation(); +mu.setSetNquads(`uid(user) "correct_email@dgraph.io" .`); + +const req = new dgraph.Request(); +req.setQuery(query); +req.setMutationsList([mu]); +req.setCommitNow(true); + +// Upsert: If wrong_email found, update the existing data +// or else perform a new mutation. +await dgraphClient.newTxn().doRequest(req); +``` + +### Running a Conditional Upsert + +The upsert block allows specifying a conditional mutation block using an `@if` directive. The mutation is executed +only when the specified condition is true. If the condition is false, the mutation is silently ignored. + +See more about Conditional Upsert [Here](/dgraph-overview/dql-mutation#conditional-upsert). + +```js +const query = ` + query { + user as var(func: eq(email, "wrong_email@dgraph.io")) + }` + +const mu = new dgraph.Mutation(); +mu.setSetNquads(`uid(user) "correct_email@dgraph.io" .`); +mu.setCond(`@if(eq(len(user), 1))`); + +const req = new dgraph.Request(); +req.setQuery(query); +req.addMutations(mu); +req.setCommitNow(true); + +await dgraphClient.newTxn().doRequest(req); +``` + +### Committing a Transaction + +A transaction can be committed using the `Txn#commit()` method. If your transaction +consisted solely of calls to `Txn#query` or `Txn#queryWithVars`, and no calls to +`Txn#mutate`, then calling `Txn#commit()` is not necessary. + +An error will be returned if other transactions running concurrently modify the same +data that was modified in this transaction. It is up to the user to retry +transactions when they fail. + +```js +const txn = dgraphClient.newTxn(); +try { + // ... + // Perform any number of queries and mutations + // ... + // and finally... + await txn.commit(); +} catch (e) { + if (e === dgraph.ERR_ABORTED) { + // Retry or handle exception. + } else { + throw e; + } +} finally { + // Clean up. Calling this after txn.commit() is a no-op + // and hence safe. + await txn.discard(); +} +``` + +### Cleanup Resources + +To cleanup resources, you have to call `DgraphClientStub#close()` individually for +all the instances of `DgraphClientStub`. + +```js +const SERVER_ADDR = "localhost:9080"; +const SERVER_CREDENTIALS = grpc.credentials.createInsecure(); + +// Create instances of DgraphClientStub. +const stub1 = new dgraph.DgraphClientStub(SERVER_ADDR, SERVER_CREDENTIALS); +const stub2 = new dgraph.DgraphClientStub(SERVER_ADDR, SERVER_CREDENTIALS); + +// Create an instance of DgraphClient. +const dgraphClient = new dgraph.DgraphClient(stub1, stub2); + +// ... +// Use dgraphClient +// ... + +// Cleanup resources by closing all client stubs. +stub1.close(); +stub2.close(); +``` + +### Debug mode + +Debug mode can be used to print helpful debug messages while performing alters, +queries and mutations. It can be set using the`DgraphClient#setDebugMode(boolean?)` +method. + +```js +// Create a client. +const dgraphClient = new dgraph.DgraphClient(...); + +// Enable debug mode. +dgraphClient.setDebugMode(true); +// OR simply dgraphClient.setDebugMode(); + +// Disable debug mode. +dgraphClient.setDebugMode(false); +``` + +### Setting Metadata Headers + +Metadata headers such as authentication tokens can be set through the context of gRPC methods. Below is an example of how to set a header named "auth-token". + +```js +// The following piece of code shows how one can set metadata with +// auth-token, to allow Alter operation, if the server requires it. + +var meta = new grpc.Metadata(); +meta.add('auth-token', 'mySuperSecret'); + +await dgraphClient.alter(op, meta); +``` diff --git a/docusaurus-docs/docs/clients/javascript/http.md b/docusaurus-docs/docs/clients/javascript/http.md new file mode 100644 index 00000000..0964f23a --- /dev/null +++ b/docusaurus-docs/docs/clients/javascript/http.md @@ -0,0 +1,324 @@ +--- +title: HTTP Client +--- + +A Dgraph client implementation for JavaScript using HTTP. It supports both +browser and Node.js environments. +This client follows the [Dgraph JavaScript gRPC client](/dgraph-overview/clients/javascript/grpc) closely. + +:::tip +The official JavaScript HTTP client [can be found here](https://github.com/dgraph-io/dgraph-js-http). +Follow the [install instructions](https://github.com/dgraph-io/dgraph-js-http#install) to get it up and running. +::: + +## Supported Versions + +More details on the supported versions can be found at [this link](https://github.com/dgraph-io/dgraph-js-http#supported-versions). + +## Quickstart + +Build and run the [simple project](https://github.com/dgraph-io/dgraph-js-http/tree/master/examples/simple), which +contains an end-to-end example of using the Dgraph javascript HTTP client. Follow +the instructions in the [README](https://github.com/dgraph-io/dgraph-js-http/tree/master/examples/simple/README.md) of that project. + +## Using a client + +:::tip +You can find a [simple example](https://github.com/dgraph-io/dgraph-js-http/tree/master/examples/simple) +project, which contains an end-to-end working example of how to use the JavaScript HTTP client, +for Node.js >= v6. +::: + +### Create a client + +A `DgraphClient` object can be initialized by passing it a list of +`DgraphClientStub` clients as variadic arguments. Connecting to multiple Dgraph +servers in the same cluster allows for better distribution of workload. + +The following code snippet shows just one connection. + +```js +const dgraph = require("dgraph-js-http"); + +const clientStub = new dgraph.DgraphClientStub( + // addr: optional, default: "http://localhost:8080" + "http://localhost:8080", + // legacyApi: optional, default: false. Set to true when connecting to Dgraph v1.0.x + false, +); +const dgraphClient = new dgraph.DgraphClient(clientStub); +``` + +To facilitate debugging, [debug mode](#debug-mode) can be enabled for a client. + + +### Login into Dgraph + +If your Dgraph server has Access Control Lists enabled (Dgraph v1.1 or above), +the clientStub must be logged in for accessing data: + +```js +await clientStub.login("groot", "password"); +``` + +Calling `login` will obtain and remember the access and refresh JWT tokens. +All subsequent operations via the logged in `clientStub` will send along the +stored access token. + +Access tokens expire after 6 hours, so in long-lived apps (e.g. business logic servers) +you need to `login` again on a periodic basis: + +```js +// When no parameters are specified the clientStub uses existing refresh token +// to obtain a new access token. +await clientStub.login(); +``` + +### Configure access tokens + +Some Dgraph configurations require extra access tokens. + + +Alpha servers can be configured with [Secure Alter Operations](/dgraph-overview/admin/dgraph-administration). + In this case the token needs to be set on the client instance: + +```js +dgraphClient.setAlphaAuthToken("My secret token value"); +``` + + + +### Create https connection + +If your cluster is using tls/mtls you can pass a node `https.Agent` configured with you +certificates as follows: + +```js +const https = require("https"); +const fs = require("fs"); +// read your certificates +const cert = fs.readFileSync("./certs/client.crt", "utf8"); +const ca = fs.readFileSync("./certs/ca.crt", "utf8"); +const key = fs.readFileSync("./certs/client.key", "utf8"); + +// create your https.Agent +const agent = https.Agent({ + cert, + ca, + key, +}); + +const clientStub = new dgraph.DgraphClientStub( + "https://localhost:8080", + false, + { agent }, +); +const dgraphClient = new dgraph.DgraphClient(clientStub); +``` + +### Alter the database + +To set the schema, pass the schema to `DgraphClient#alter(Operation)` method. + +```js +const schema = "name: string @index(exact) ."; +await dgraphClient.alter({ schema: schema }); +``` + +> NOTE: Many of the examples here use the `await` keyword which requires +> `async/await` support which is not available in all javascript environments. +> For unsupported environments, the expressions following `await` can be used +> just like normal `Promise` instances. + +`Operation` contains other fields as well, including drop predicate and drop all. +Drop all is useful if you wish to discard all the data, and start from a clean +slate, without bringing the instance down. + +```js +// Drop all data including schema from the Dgraph instance. This is useful +// for small examples such as this, since it puts Dgraph into a clean +// state. +await dgraphClient.alter({ dropAll: true }); +``` + +### Create a transaction + +To create a transaction, call `DgraphClient#newTxn()` method, which returns a +new `Txn` object. This operation incurs no network overhead. + +It is good practice to call `Txn#discard()` in a `finally` block after running +the transaction. Calling `Txn#discard()` after `Txn#commit()` is a no-op +and you can call `Txn#discard()` multiple times with no additional side-effects. + +```js +const txn = dgraphClient.newTxn(); +try { + // Do something here + // ... +} finally { + await txn.discard(); + // ... +} +``` + +You can make queries read-only and best effort by passing `options` to `DgraphClient#newTxn`. For example: + +```js +const options = { readOnly: true, bestEffort: true }; +const res = await dgraphClient.newTxn(options).query(query); +``` + +Read-only transactions are useful to increase read speed because they can circumvent the usual consensus protocol. Best effort queries can also increase read speed in read bound system. Please note that best effort requires readonly. + +### Run a mutation + +`Txn#mutate(Mutation)` runs a mutation. It takes in a `Mutation` object, which +provides two main ways to set data: JSON and RDF N-Quad. You can choose whichever +way is convenient. + +We define a person object to represent a person and use it in a `Mutation` object. + +```js +// Create data. +const p = { + name: "Alice", +}; + +// Run mutation. +await txn.mutate({ setJson: p }); +``` + +For a more complete example with multiple fields and relationships, look at the +[simple] project in the `examples` folder. + +For setting values using N-Quads, use the `setNquads` field. For delete mutations, +use the `deleteJson` and `deleteNquads` fields for deletion using JSON and N-Quads +respectively. + +Sometimes, you only want to commit a mutation, without querying anything further. +In such cases, you can use `Mutation#commitNow = true` to indicate that the +mutation must be immediately committed. + +```js +// Run mutation. +await txn.mutate({ setJson: p, commitNow: true }); +``` + +### Run a query + +You can run a query by calling `Txn#query(string)`. You will need to pass in a +GraphQL+- query string. If you want to pass an additional map of any variables that +you might want to set in the query, call `Txn#queryWithVars(string, object)` with +the variables object as the second argument. + +The response would contain the `data` field, `Response#data`, which returns the response +JSON. + +Let’s run the following query with a variable \$a: + +```console +query all($a: string) { + all(func: eq(name, $a)) + { + name + } +} +``` + +Run the query and print out the response: + +```js +// Run query. +const query = `query all($a: string) { + all(func: eq(name, $a)) + { + name + } +}`; +const vars = { $a: "Alice" }; +const res = await dgraphClient.newTxn().queryWithVars(query, vars); +const ppl = res.data; + +// Print results. +console.log(`Number of people named "Alice": ${ppl.all.length}`); +ppl.all.forEach(person => console.log(person.name)); +``` + +This should print: + +```console +Number of people named "Alice": 1 +Alice +``` + +### Commit a transaction + +A transaction can be committed using the `Txn#commit()` method. If your transaction +consisted solely of calls to `Txn#query` or `Txn#queryWithVars`, and no calls to +`Txn#mutate`, then calling `Txn#commit()` is not necessary. + +An error will be returned if other transactions running concurrently modify the same +data that was modified in this transaction. It is up to the user to retry +transactions when they fail. + +```js +const txn = dgraphClient.newTxn(); +try { + // ... + // Perform any number of queries and mutations + // ... + // and finally... + await txn.commit(); +} catch (e) { + if (e === dgraph.ERR_ABORTED) { + // Retry or handle exception. + } else { + throw e; + } +} finally { + // Clean up. Calling this after txn.commit() is a no-op + // and hence safe. + await txn.discard(); +} +``` + +### Check request latency + +To see the server latency information for requests, check the +`extensions.server_latency` field from the Response object for queries or from +the Assigned object for mutations. These latencies show the amount of time the +Dgraph server took to process the entire request. It does not consider the time +over the network for the request to reach back to the client. + +```js +// queries +const res = await txn.queryWithVars(query, vars); +console.log(res.extensions.server_latency); +// { parsing_ns: 29478, +// processing_ns: 44540975, +// encoding_ns: 868178 } + +// mutations +const assigned = await txn.mutate({ setJson: p }); +console.log(assigned.extensions.server_latency); +// { parsing_ns: 132207, +// processing_ns: 84100996 } +``` + +### Debug mode + +Debug mode can be used to print helpful debug messages while performing alters, +queries and mutations. It can be set using the`DgraphClient#setDebugMode(boolean?)` +method. + +```js +// Create a client. +const dgraphClient = new dgraph.DgraphClient(...); + +// Enable debug mode. +dgraphClient.setDebugMode(true); +// OR simply dgraphClient.setDebugMode(); + +// Disable debug mode. +dgraphClient.setDebugMode(false); +``` diff --git a/docusaurus-docs/docs/clients/javascript/index.md b/docusaurus-docs/docs/clients/javascript/index.md new file mode 100644 index 00000000..22984e8e --- /dev/null +++ b/docusaurus-docs/docs/clients/javascript/index.md @@ -0,0 +1,27 @@ +--- +title: JavaScript +--- + +## gRPC JS Client + +The official JavaScript gRPC client documentation [can be found here](/dgraph-overview/clients/javascript/grpc). + +More details on the supported versions can be found at [this link](https://github.com/dgraph-io/dgraph-js#supported-versions). + +:::tip +You can find a [simple example](https://github.com/dgraph-io/dgraph-js/tree/master/examples/simple) +project, which contains an end-to-end working example of how to use the JavaScript gRPC client, +for Node.js >= v6. +::: + +## HTTP JS Client + +The official JavaScript HTTP client documentation [can be found here](http). + +More details on the supported versions can be found at [this link](https://github.com/dgraph-io/dgraph-js-http#supported-versions). + +:::tip +You can find a [simple example](https://github.com/dgraph-io/dgraph-js-http/tree/master/examples/simple) +project, which contains an end-to-end working example of how to use the JavaScript HTTP client, +for Node.js >= v6. +::: diff --git a/docusaurus-docs/docs/clients/python.md b/docusaurus-docs/docs/clients/python.md new file mode 100644 index 00000000..c296d45f --- /dev/null +++ b/docusaurus-docs/docs/clients/python.md @@ -0,0 +1,427 @@ +--- +title: Python +--- + +Official Dgraph client implementation for Python (Python >= v2.7 and >= v3.5), using [gRPC](https://grpc.io/). +This client follows the [Dgraph Go client](/dgraph-overview/clients/go) closely. + +:::tip +The official Python client [can be found here](https://github.com/dgraph-io/pydgraph). +Follow the [install instructions](https://github.com/dgraph-io/pydgraph#install) to get it +up and running. +::: + +## Supported Versions + +More details on the supported versions can be found at [this link](https://github.com/dgraph-io/pydgraph#supported-versions). + +## Using a client + +:::tip +You can get a [simple example](https://github.com/dgraph-io/pydgraph/tree/master/examples/simple) +project, which contains an end-to-end working example of how to use the Python client. +::: + +### Creating a Client + +You can initialize a `DgraphClient` object by passing it a list of +`DgraphClientStub` clients as variadic arguments. Connecting to multiple Dgraph +servers in the same cluster allows for better distribution of workload. + +The following code snippet shows just one connection. + +```python +import pydgraph + +client_stub = pydgraph.DgraphClientStub('localhost:9080') +client = pydgraph.DgraphClient(client_stub) +``` + +### Multi-tenancy + +In [multi-tenancy](/dgraph-overview/admin/enterprise-features/multitenancy) environments, PyDgraph provides a new method `login_into_namespace()`, +which will allow the users to login to a specific namespace. + +In order to create a python client, and make the client login into namespace `123`: + +```python +client_stub = pydgraph.DgraphClientStub('localhost:9080') +client = pydgraph.DgraphClient(client_stub) +// Login to namespace groot user of namespace 123 +client.login_into_namespace("groot", "password", "123") +``` + +In the example above, the client logs into namespace `123` using username `groot` and password `password`. +Once logged in, the client can perform all the operations allowed to the `groot` user of namespace `123`. + + + +### Altering the Database + +To set the schema, create an `Operation` object, set the schema and pass it to +`DgraphClient#alter(Operation)` method. + +```python +schema = 'name: string @index(exact) .' +op = pydgraph.Operation(schema=schema) +client.alter(op) +``` + +Starting with Dgraph version 20.03.0, indexes can be computed in the background. +You can set the `run_in_background` field of `pydgraph.Operation` to `True` +before passing it to the `Alter` function. You can find more details +[here](/dgraph-overview/update-dgraph-types#indexes-in-background). + +```python +schema = 'name: string @index(exact) .' +op = pydgraph.Operation(schema=schema, run_in_background=True) +client.alter(op) +``` + +`Operation` contains other fields as well, including the `drop` predicate and `drop all`. +Drop all is useful if you wish to discard all the data, and start with a clean +slate, without bringing the instance down. + +```python +# Drop all data including schema from the Dgraph instance. This is a useful +# for small examples such as this since it puts Dgraph into a clean state. +op = pydgraph.Operation(drop_all=True) +client.alter(op) +``` + +### Creating a Transaction + +To create a transaction, call the `DgraphClient#txn()` method, which returns a +new `Txn` object. This operation incurs no network overhead. + +It is good practice to call `Txn#discard()` in a `finally` block after running +the transaction. Calling `Txn#discard()` after `Txn#commit()` is a no-op +and you can call `Txn#discard()` multiple times with no additional side-effects. + +```python +txn = client.txn() +try: + # Do something here + # ... +finally: + txn.discard() + # ... +``` + +To create a read-only transaction, call `DgraphClient#txn(read_only=True)`. +Read-only transactions are ideal for transactions which only involve queries. +Mutations and commits are not allowed. + +```python +txn = client.txn(read_only=True) +try: + # Do some queries here + # ... +finally: + txn.discard() + # ... +``` + +To create a read-only transaction that executes best-effort queries, call +`DgraphClient#txn(read_only=True, best_effort=True)`. Best-effort queries are +faster than normal queries because they bypass the normal consensus protocol. +For this same reason, best-effort queries cannot guarantee to return the latest +data. Best-effort queries are only supported by read-only transactions. + +### Running a Mutation + +`Txn#mutate(mu=Mutation)` runs a mutation. It takes in a `Mutation` object, +which provides two main ways to set data: JSON and RDF N-Quad. You can choose +whichever way is convenient. + +`Txn#mutate()` provides convenience keyword arguments `set_obj` and `del_obj` +for setting JSON values and `set_nquads` and `del_nquads` for setting N-Quad +values. See examples below for usage. + +We define a person object to represent a person and use it in a transaction. + +```python +# Create data. +p = { + 'name': 'Alice', +} + +# Run mutation. +txn.mutate(set_obj=p) + +# If you want to use a mutation object, use this instead: +# mu = pydgraph.Mutation(set_json=json.dumps(p).encode('utf8')) +# txn.mutate(mu) + +# If you want to use N-Quads, use this instead: +# txn.mutate(set_nquads='_:alice "Alice" .') +``` + +```python +# Delete data. + +query = """query all($a: string) + { + all(func: eq(name, $a)) + { + uid + } + }""" + +variables = {'$a': 'Bob'} + +res = txn.query(query, variables=variables) +ppl = json.loads(res.json) + +# For a mutation to delete a node, use this: +txn.mutate(del_obj=person) +``` + +For a complete example with multiple fields and relationships, look at the +[simple project][simple] in the `examples` folder. + +Sometimes, you only want to commit a mutation, without querying anything further. +In such cases, you can set the keyword argument `commit_now=True` to indicate +that the mutation must be immediately committed. + +A mutation can be executed using `txn.do_request` as well. + +```python +mutation = txn.create_mutation(set_nquads='_:alice "Alice" .') +request = txn.create_request(mutations=[mutation], commit_now=True) +txn.do_request(request) +``` + +### Committing a Transaction + +A transaction can be committed using the `Txn#commit()` method. If your transaction +consist solely of `Txn#query` or `Txn#queryWithVars` calls, and no calls to +`Txn#mutate`, then calling `Txn#commit()` is not necessary. + +An error is raised if another transaction(s) modify the same data concurrently that was +modified in the current transaction. It is up to the user to retry transactions +when they fail. + +```python +txn = client.txn() +try: + # ... + # Perform any number of queries and mutations + # ... + # and finally... + txn.commit() +except pydgraph.AbortedError: + # Retry or handle exception. +finally: + # Clean up. Calling this after txn.commit() is a no-op + # and hence safe. + txn.discard() +``` + +### Running a Query + +You can run a query by calling `Txn#query(string)`. You will need to pass in a +[DQL](https://dgraph.io/docs/query-language/) query string. If you want to pass an additional dictionary of any +variables that you might want to set in the query, call +`Txn#query(string, variables=d)` with the variables dictionary `d`. + +The query response contains the `json` field, which returns the JSON response. + +Let’s run a query with a variable `$a`, deserialize the result from JSON and +print it out: + +```python +# Run query. +query = """query all($a: string) { + all(func: eq(name, $a)) + { + name + } +}""" +variables = {'$a': 'Alice'} + +res = txn.query(query, variables=variables) + +# If not doing a mutation in the same transaction, simply use: +# res = client.txn(read_only=True).query(query, variables=variables) + +ppl = json.loads(res.json) + +# Print results. +print('Number of people named "Alice": {}'.format(len(ppl['all']))) +for person in ppl['all']: + print(person) +``` + +This should print: + +```console +Number of people named "Alice": 1 +Alice +``` + +You can also use `txn.do_request` function to run the query. + +```python +request = txn.create_request(query=query) +txn.do_request(request) +``` + +### Running an Upsert: Query + Mutation + +The `txn.do_request` function allows you to use upsert blocks. An upsert block +contains one query block and one or more mutation blocks, so it lets you perform +queries and mutations in a single request. Variables defined in the query block +can be used in the mutation blocks using the `uid` and `val` functions +implemented by DQL. + +To learn more about upsert blocks, see the +[Upsert Block documentation](https://dgraph.io/docs/mutations/upsert-block/). + +```python +query = """{ + u as var(func: eq(name, "Alice")) +}""" +nquad = """ + uid(u) "Alice" . + uid(u) "25" . +""" +mutation = txn.create_mutation(set_nquads=nquad) +request = txn.create_request(query=query, mutations=[mutation], commit_now=True) +txn.do_request(request) +``` + +### Running a Conditional Upsert + +The upsert block also allows specifying a conditional mutation block using an `@if` directive. The mutation is executed +only when the specified condition is true. If the condition is false, the mutation is silently ignored. + +See more about Conditional Upserts [here](/dgraph-overview/dql-mutation#conditional-upsert). + +```python +query = """ + { + user as var(func: eq(email, "wrong_email@dgraph.io")) + } +""" +cond = "@if(eq(len(user), 1))" +nquads = """ + uid(user) "correct_email@dgraph.io" . +""" +mutation = txn.create_mutation(cond=cond, set_nquads=nquads) +request = txn.create_request(mutations=[mutation], query=query, commit_now=True) +txn.do_request(request) +``` + +### Cleaning Up Resources + +To clean up resources, you have to call `DgraphClientStub#close()` individually for +all the instances of `DgraphClientStub`. + +```python +SERVER_ADDR = "localhost:9080" + +# Create instances of DgraphClientStub. +stub1 = pydgraph.DgraphClientStub(SERVER_ADDR) +stub2 = pydgraph.DgraphClientStub(SERVER_ADDR) + +# Create an instance of DgraphClient. +client = pydgraph.DgraphClient(stub1, stub2) + +# ... +# Use client +# ... + +# Clean up resources by closing all client stubs. +stub1.close() +stub2.close() +``` + +### Setting Metadata Headers + +Metadata headers such as authentication tokens can be set through the metadata of gRPC methods. Below is an example of how to set a header named "auth-token". + +```python +# The following piece of code shows how one can set metadata with +# auth-token, to allow Alter operation, if the server requires it. +# metadata is a list of arbitrary key-value pairs. +metadata = [("auth-token", "the-auth-token-value")] +dg.alter(op, metadata=metadata) +``` + +### Setting a timeout + +A timeout value representing the number of seconds can be passed to the `login`, +`alter`, `query`, and `mutate` methods using the `timeout` keyword argument. + +For example, the following alters the schema with a timeout of ten seconds: +`dg.alter(op, timeout=10)` + +### Passing credentials + +A `CallCredentials` object can be passed to the `login`, `alter`, `query`, and +`mutate` methods using the `credentials` keyword argument. + +### Authenticating to a reverse TLS proxy + +If the Dgraph instance is behind a reverse TLS proxy, credentials can also be +passed through the methods available in the gRPC library. Note that in this case +every request will need to include the credentials. In the example below, we are +trying to add authentication to a proxy that requires an API key. This value is +expected to be included in the metadata using the key "authorization". + +```python +creds = grpc.ssl_channel_credentials() +call_credentials = grpc.metadata_call_credentials( + lambda context, callback: callback((("authorization", ""),), None)) +composite_credentials = grpc.composite_channel_credentials(creds, call_credentials) +client_stub = pydgraph.DgraphClientStub( + '{host}:{port}'.format(host=GRPC_HOST, port=GRPC_PORT), composite_credentials) +client = pydgraph.DgraphClient(client_stub) +``` + +### Async methods + +The `alter` method in the client has an asynchronous version called +`async_alter`. The async methods return a future. You can directly call the +`result` method on the future. However. The DgraphClient class provides a static +method `handle_alter_future` to handle any possible exception. + +```python +alter_future = self.client.async_alter(pydgraph.Operation( + schema="name: string @index(term) .")) +response = pydgraph.DgraphClient.handle_alter_future(alter_future) +``` + +The `query` and `mutate` methods int the `Txn` class also have async versions +called `async_query` and `async_mutation` respectively. These functions work +just like `async_alter`. + +You can use the `handle_query_future` and `handle_mutate_future` static methods +in the `Txn` class to retrieve the result. A short example is given below: + +```python +txn = client.txn() +query = "query body here" +future = txn.async_query() +response = pydgraph.Txn.handle_query_future(future) +``` + +A working example can be found in the `test_asycn.py` test file. + +Keep in mind that due to the nature of async calls, the async functions cannot +retry the request if the login is invalid. You will have to check for this error +and retry the login (with the function `retry_login` in both the `Txn` and +`Client` classes). A short example is given below: + +```python +client = DgraphClient(client_stubs) # client_stubs is a list of gRPC stubs. +alter_future = client.async_alter() +try: + response = alter_future.result() +except Exception as e: + # You can use this function in the util package to check for JWT + # expired errors. + if pydgraph.util.is_jwt_expired(e): + # retry your request here. +``` diff --git a/docusaurus-docs/docs/clients/raw-http.md b/docusaurus-docs/docs/clients/raw-http.md new file mode 100644 index 00000000..32a4a5f1 --- /dev/null +++ b/docusaurus-docs/docs/clients/raw-http.md @@ -0,0 +1,460 @@ +--- +title: Raw HTTP +--- + + + +It's also possible to interact with Dgraph directly via its HTTP endpoints. +This allows clients to be built for languages that don't have access to a +working gRPC implementation. + +In the examples shown here, regular command line tools such as `curl` and +[`jq`](https://stedolan.github.io/jq/) are used. However, the real intention +here is to show other programmers how they could implement a client in their +language on top of the HTTP API. + +For an example of how to build a client on top +of gRPC, refer to the implementation of the Go client. + +Similar to the Go client example, we use a bank account transfer example. + +## Create the Client + +A client built on top of the HTTP API will need to track three pieces of state +for each transaction. + +1. A start timestamp (`start_ts`). This uniquely identifies a transaction, + and doesn't change over the transaction lifecycle. + +2. The set of keys modified by the transaction (`keys`). This aids in + transaction conflict detection. + + Every mutation would send back a new set of keys. The client must merge them + with the existing set. Optionally, a client can de-dup these keys while + merging. + +3. The set of predicates modified by the transaction (`preds`). This aids in + predicate move detection. + + Every mutation would send back a new set of preds. The client must merge them + with the existing set. Optionally, a client can de-dup these keys while + merging. + + +## Alter the DQL Schema + +You may need to alter the DQL schema to declare predicate types, to add predicate search indexes and to declare the predicates expected in entities of specific type. + +Update the DQL schema is done by posting schema data to the ``/alter`` endpoint: + +```sh +curl "localhost:8080/alter" --silent --request POST \ + --data $' +name: string @index(term) . +release_date: datetime @index(year) . +revenue: float . +running_time: int . +starring: [uid] . +director: [uid] . + +type Person { + name +} + +type Film { + name + release_date + revenue + running_time + starring + director +} +' | python -m json.tool +``` +*Success response* +``` +{ + "data": { + "code": "Success", + "message": "Done" + } +} +``` +*Error response* + +In case of errors, the API will reply with an error message such as: +``` +{ + "errors": [ + { + "extensions": { + "code": "Error" + }, + "message": "line 5 column 18: Invalid ending" + } + ] +} +``` +:::note +The request will update or create the predicates and types present in the request. It will not modify or delete other schema information that may be present. +::: + +## Query current DQL schema + +Obtain the DQL schema by issuing a DQL query on ``/query`` endpoint. + +```sh +$ curl -X POST \ + -H "Content-Type: application/dql" \ + localhost:8080/query -d $'schema {}' | python -m json.tool +``` + +## Start a transaction + +Assume some initial accounts with balances have been populated. We now want to +transfer money from one account to the other. This is done in four steps: + +1. Create a new transaction. + +1. Inside the transaction, run a query to determine the current balances. + +2. Perform a mutation to update the balances. + +3. Commit the transaction. + +Starting a transaction doesn't require any interaction with Dgraph itself. +Some state needs to be set up for the transaction to use. The `start_ts` +can initially be set to 0. `keys` can start as an empty set. + +**For both query and mutation if the `start_ts` is provided as a path parameter, +then the operation is performed as part of the ongoing transaction. Otherwise, a +new transaction is initiated.** + +## Run a query + +To query the database, the `/query` endpoint is used. Remember to set the `Content-Type` header +to `application/dql` to ensure that the body of the request is parsed correctly. + +:::note +GraphQL+- has been renamed to Dgraph Query Language (DQL). While `application/dql` +is the preferred value for the `Content-Type` header, we will continue to support +`Content-Type: application/graphql+-` to avoid making breaking changes. +::: + +To get the balances for both accounts: + +```sh +$ curl -H "Content-Type: application/dql" -X POST localhost:8080/query -d $' +{ + balances(func: anyofterms(name, "Alice Bob")) { + uid + name + balance + } +}' | jq + +``` + +The result should look like this: + +```json +{ + "data": { + "balances": [ + { + "uid": "0x1", + "name": "Alice", + "balance": "100" + }, + { + "uid": "0x2", + "name": "Bob", + "balance": "70" + } + ] + }, + "extensions": { + "server_latency": { + "parsing_ns": 70494, + "processing_ns": 697140, + "encoding_ns": 1560151 + }, + "txn": { + "start_ts": 4, + } + } +} +``` + +Notice that along with the query result under the `data` field is additional +data in the `extensions -> txn` field. This data will have to be tracked by the +client. + +For queries, there is a `start_ts` in the response. This `start_ts` will need to +be used in all subsequent interactions with Dgraph for this transaction, and so +should become part of the transaction state. + +## Run a Mutation +Mutations can be done over HTTP by making a `POST` request to an Alpha's `/mutate` endpoint. +Now that we have the current balances, we need to send a mutation to Dgraph +with the updated balances. If Bob transfers $10 to Alice, then the RDFs to send +are: + +``` +<0x1> "110" . +<0x1> "Balance" . +<0x2> "60" . +<0x2> "Balance" . +``` + +Note that we have to refer to the Alice and Bob nodes by UID in the RDF format. + +We now send the mutations via the `/mutate` endpoint. We need to provide our +transaction start timestamp as a path parameter, so that Dgraph knows which +transaction the mutation should be part of. We also need to set `Content-Type` +header to `application/rdf` in order to specify that mutation is written in +RDF format. + +```sh +$ curl -H "Content-Type: application/rdf" -X POST localhost:8080/mutate?startTs=4 -d $' +{ + set { + <0x1> "110" . + <0x1> "Balance" . + <0x2> "60" . + <0x2> "Balance" . + } +} +' | jq +``` + +The result: + +```json +{ + "data": { + "code": "Success", + "message": "Done", + "uids": {} + }, + "extensions": { + "server_latency": { + "parsing_ns": 50901, + "processing_ns": 14631082 + }, + "txn": { + "start_ts": 4, + "keys": [ + "2ahy9oh4s9csc", + "3ekeez23q5149" + ], + "preds": [ + "1-balance" + ] + } + } +} +``` + +The result contains `keys` and `predicates` which should be added to the +transaction state. + + +## Committing the transaction + +:::note +It's possible to commit immediately after a mutation is made (without requiring +to use the `/commit` endpoint as explained in this section). To do this, add +the parameter `commitNow` in the URL `/mutate?commitNow=true`. +::: + +Finally, we can commit the transaction using the `/commit` endpoint. We need the +`start_ts` we've been using for the transaction along with the list of `keys` and the +list of predicates. If we had performed multiple mutations in the transaction instead of +just one, then the keys and predicates provided during the commit would be the union +of all keys and predicates returned in the responses from the `/mutate` endpoint. + +The `preds` field is used to abort the transaction in cases where some of the +predicates are moved. This field is not required and the `/commit` endpoint also +accepts the old format, which was a single array of keys. + +```sh +$ curl -X POST localhost:8080/commit?startTs=4 -d $' +{ + "keys": [ + "2ahy9oh4s9csc", + "3ekeez23q5149" + ], + "preds": [ + "1-balance" + ] +}' | jq +``` + +The result: + +```json +{ + "data": { + "code": "Success", + "message": "Done" + }, + "extensions": { + "txn": { + "start_ts": 4, + "commit_ts": 5 + } + } +} +``` +The transaction is now complete. + +If another client were to perform another transaction concurrently affecting +the same keys, then it's possible that the transaction would *not* be +successful. This is indicated in the response when the commit is attempted. + +```json +{ + "errors": [ + { + "code": "Error", + "message": "Transaction has been aborted. Please retry." + } + ] +} +``` + +In this case, it should be up to the user of the client to decide if they wish +to retry the transaction. + +## Aborting the transaction +To abort a transaction, use the same `/commit` endpoint with the `abort=true` parameter +while specifying the `startTs` value for the transaction. + +```sh +$ curl -X POST "localhost:8080/commit?startTs=4&abort=true" | jq +``` + +The result: + +```json +{ + "code": "Success", + "message": "Done" +} +``` + +## Running read-only queries + +You can set the query parameter `ro=true` to `/query` to set it as a +[read-only](/dgraph-overview/go#read-only-transactions) query. + + +```sh +$ curl -H "Content-Type: application/dql" -X POST "localhost:8080/query?ro=true" -d $' +{ + balances(func: anyofterms(name, "Alice Bob")) { + uid + name + balance + } +} +``` + +## Running best-effort queries + +You can set the query parameter `be=true` to `/query` to set it as a +[best-effort](/dgraph-overview/go#read-only-transactions) query. + + +```sh +$ curl -H "Content-Type: application/dql" -X POST "localhost:8080/query?be=true" -d $' +{ + balances(func: anyofterms(name, "Alice Bob")) { + uid + name + balance + } +} +``` + +## Compression via HTTP + +Dgraph supports gzip-compressed requests to and from Dgraph Alphas for `/query`, `/mutate`, and `/alter`. + +Compressed requests: To send compressed requests, set the HTTP request header +`Content-Encoding: gzip` along with the gzip-compressed payload. + +Compressed responses: To receive gzipped responses, set the HTTP request header +`Accept-Encoding: gzip` and Alpha will return gzipped responses. + +Example of a compressed request via curl: + +```sh +$ curl -X POST \ + -H 'Content-Encoding: gzip' \ + -H "Content-Type: application/rdf" \ + localhost:8080/mutate?commitNow=true --data-binary @mutation.gz +``` + +Example of a compressed request via curl: + +```sh +$ curl -X POST \ + -H 'Accept-Encoding: gzip' \ + -H "Content-Type: application/dql" \ + localhost:8080/query -d $'schema {}' | gzip --decompress +``` + +Example of a compressed request and response via curl: + +```sh +$ zcat query.gz # query.gz is gzipped compressed +{ + all(func: anyofterms(name, "Alice Bob")) { + uid + balance + } +} +``` + +```sh +$ curl -X POST \ + -H 'Content-Encoding: gzip' \ + -H 'Accept-Encoding: gzip' \ + -H "Content-Type: application/dql" \ + localhost:8080/query --data-binary @query.gz | gzip --decompress +``` + +:::note +Curl has a `--compressed` option that automatically requests for a compressed response (`Accept-Encoding` header) and decompresses the compressed response. + +```sh +$ curl -X POST --compressed -H "Content-Type: application/dql" localhost:8080/query -d $'schema {}' +``` +::: + + +## Run a query in JSON format + +The HTTP API also accepts requests in JSON format. For queries you have the keys "query" and "variables". The JSON format is required to set [GraphQL Variables](/dgraph-overview/dql/query/graphql-variables) with the HTTP API. + +This query: + +``` +{ + balances(func: anyofterms(name, "Alice Bob")) { + uid + name + balance + } +} +``` + +Should be escaped to this: + +```sh +curl -H "Content-Type: application/json" localhost:8080/query -XPOST -d '{ + "query": "{\n balances(func: anyofterms(name, \"Alice Bob\")) {\n uid\n name\n balance\n }\n }" +}' | python -m json.tool | jq +``` diff --git a/docusaurus-docs/docs/clients/unofficial-clients.md b/docusaurus-docs/docs/clients/unofficial-clients.md new file mode 100644 index 00000000..fa66b05b --- /dev/null +++ b/docusaurus-docs/docs/clients/unofficial-clients.md @@ -0,0 +1,32 @@ +--- +title: Unofficial Dgraph Clients +--- + +:::note +These third-party clients are contributed by the community and are not officially supported by Dgraph. +::: + + +## Apache Spark Connector + +- https://github.com/G-Research/spark-dgraph-connector + +## Dart + +- https://github.com/marceloneppel/dgraph + +## Elixir + +- https://github.com/liveforeverx/dlex +- https://github.com/ospaarmann/exdgraph + +## Rust + +- https://github.com/Swoorup/dgraph-rs +- https://github.com/selmeci/dgraph-tonic + +## C# +- https://github.com/schivei/dgraph4net - DQL Client with migration management + + + diff --git a/docusaurus-docs/docs/design-concepts/acl-concept.md b/docusaurus-docs/docs/design-concepts/acl-concept.md new file mode 100644 index 00000000..f69dc3bc --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/acl-concept.md @@ -0,0 +1,11 @@ +--- +title: ACLs +--- + +ACLs are a typical mechanism to list who can access what, specifying either users or roles and what they can access. ACLs help determine who is "authorized" to access what. + +Dgraph Access Control Lists (ACLs) are sets of permissions for which `Relationships` a user may access. Recall that Dgraph is "predicate based" so all data is stored in and is implicit in relationships. This allows relationship-based controls to be very powerful in restricting a graph based on roles (RBAC). + +Note that the Dgraph multi-tenancy feature relies on ACLs to ensure each tenant can only see their own data in one server. + +Using ACLs requires a client to authenticate (log in) differently and specify credentials that will drive which relationships are visible in their view of the graph database. diff --git a/docusaurus-docs/docs/design-concepts/badger-concept.md b/docusaurus-docs/docs/design-concepts/badger-concept.md new file mode 100644 index 00000000..87d57a46 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/badger-concept.md @@ -0,0 +1,10 @@ +--- +title: Badger +--- + + +[Badger](https://github.com/dgraph-io/badger) is a key-value store developed and maintained by Dgraph. It is also open source, and it is the backing store for Dgraph data. + +It is largely transparent to users that Dgraph uses Badger to store data internally. Badger is packaged into the Dgraph binary, and is the persistence layer. However, various configuration settings and log messages may reference Badger, such as cache sizes. + +Badger values are `Posting Lists` and indexes. Badger Keys are formed by concatenating <elationshipName>+<NodeUID>. diff --git a/docusaurus-docs/docs/design-concepts/clients-concept.md b/docusaurus-docs/docs/design-concepts/clients-concept.md new file mode 100644 index 00000000..49f6a004 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/clients-concept.md @@ -0,0 +1,13 @@ +--- +title: Dgraph Clients +--- + +A client is a program that calls dgraph. Broadly, there are stand alone clients such as Ratel, which is a graphical web-based application, and programmatic client libraries which are embedded in larger programs to efficiently and idomatically call Dgraph. + +GraphQL is an open standard with many clients (graphical and libraries) also, and GraphQL clients work with Dgraph. + +Dgraph provides [client libraries](/dgraph-overview/clients/) for many languages. These clients send DQL queries, and perform useful functions such as logging in, in idomatic ways in each language. + +Note that Dgraph does not force or insist on any particular GraphQL client. Any GraphQL client, GUI, tool, or library will work well with Dgraph, and it is the users' choice which to choose. Dgraph only provides clients for the proprietary DQL query language. GraphQL clients are available for free from many organizations. + +However, Dgraph's cloud console does support basic GraphQL querying, so this is something of a tool. We recommend using a mature GraphQL console instead, as they are more mature. Dgraph's GraphQL GUI function is for quick start and convenience. diff --git a/docusaurus-docs/docs/design-concepts/consistency-model.md b/docusaurus-docs/docs/design-concepts/consistency-model.md new file mode 100644 index 00000000..db604b52 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/consistency-model.md @@ -0,0 +1,39 @@ +--- +title: Consistency Model +--- + +### Dgraph supports MVCC, Read Snapshots and Distributed ACID transactions +Multi-version concurrency control (MVCC) is a technique where many versions of data are written (but never modified) on disk, so many versions exist. This helps control concurrency because the database is queried at a particular "timestamp" for the duration of one query to provide snapshot isolation and ensure data is consistent for that transaction. (Note that MVCC is losely related to LSM trees - in LSM parlance, data is "logged" to write-only files, which are later merged via Log Compaction.) + +Writes are faster with MVCC because data is always written by flushing a larger in-memory buffer (a memtable) to new, contiguous files (SST files), and newer data obscures or replaces older data. Consistent updates from each transaction share a logical commit timestamp (a 64 bit, increasing number loosely correlated to wall clock time), and all reads occur "at a point in time" meaning any read accesses a known, stable set of committed data using these same commit timestamps. New or in-process commits are associated with a later timestamp so they do not affect running queries at earlier timestamps. This allows pure queries (reads) to execute without any locks. + +One special set of structures are "memtables" which are also referred to as being Level 0 of the LSM tree. These are buffers for fast writes, which later are flushed to on-disk files called SSTs. + +### Dgraph transactions are cluster-wide (not key-only, or any other non-ACID version of transactions) +Dgraph uses the RAFT protocol to synchronize updates and ensure updates are durably written to a majority of alpha nodes in a cluster before the transaction is considered successful. RAFT ensures true, distributed, cluster wide transactions across multiple nodes, keys, edges, indexes and facets. Dgraph provides true ACID transactions, and does not impose limitations on what can be in a transaction: a transaction can involve multiple predicates, multiple nodes, multiple keys and even multiple shards. + +### Transactions are lockless +Dgraph transactoins do not use locks, allowing fast, distributed transactions. + +For reads, queries execute at a particular timestamp based on snapshot isolation, which isolates reads from any concurrent write activity. All reads access snapshots across the entire cluster, seeing all previously committed transactions in full, regardless of which alpha node received earlier queries. + +Writes use optimistic lock semantics, where a transaction will be aborted if another (concurrent) transaction updates exactly the same data (same edge on the same node) first. This will be reported as an "aborted" transaction to the caller. + +Dgraph ensures monotonically increasing transaction timestamps to sequence all updates in the database. This provides serializability: if any transaction Tx1 commits before Tx2 starts, then Ts_commit(Tx1) < Ts_start(Tx2), and in turn a read at any point in time can never see Tx1 changes but not Tx2 changes. + +Dgraph also ensures proper read-after-write semantics. Any commit at timestamp Tc is guaranteed to be seen by a read at timestamp Tr by any client, if Tr >= Tc. + +### Terminology + +- **Snapshot isolation:** all reads see a consistent view of the database at the point in time when the read was submitted +- **Oracle:** a logical process that tracks timestamps and which data (keys, predicates, etc.) has been committed or is being modified. The oracle hands out timestamps and aborts transactions if another transaction has modified its data. +- **RAFT:** a well-known consistency algorithm to ensure distributed processes durably store data +- **Write-Ahead Log:** Also WAL. A fast log of updates on each alpha that ensures buffered in-memory structures are persisted. +- **Proposal:** A process within the RAFT algorithm to track possible updates during the consensus process. +- **SST:** Persistent files comprising the LSM tree, together with memtables. +- **Memtable:** An in-memory version of an SST, supporting fast updates. Memtables are mutable, and SSTs are immutable. +- **Log Compaction:** The process of combining SSTs into newer SSTs while eliminating obsolte data and reclaiming disk space. +- **Timestamp:** Or point in time. A numeric counter representing the sequential order of all transactions, and indicating when a transaction became valid and query-able. +- **Optimistic Lock:** a logical process whereby all transactions execute without blocking on other transactions, and are aborted if there is a conflict. Aborted transactions should typically be retried if they occur. +- **Pessimistic Lock:** a process, not used in Dgraph, where all concurrent transactions mutating the same data except one block and wait for each other to complete. +- **ACID** An acronym representing attributes of true transactions: Atomic, Consistent, Isolated, and Durable diff --git a/docusaurus-docs/docs/design-concepts/discovery-concept.md b/docusaurus-docs/docs/design-concepts/discovery-concept.md new file mode 100644 index 00000000..888c1227 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/discovery-concept.md @@ -0,0 +1,7 @@ +--- +title: Discovery +--- + +### New Servers and Discovery +Dgraph clusters will detect new machines allocated to the [cluster](/dgraph-overview/installation/dgraph-architecture), +establish connections, and transfer data to the new server based on the group the new machine is in. diff --git a/docusaurus-docs/docs/design-concepts/dql-concept.md b/docusaurus-docs/docs/design-concepts/dql-concept.md new file mode 100644 index 00000000..2229d947 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/dql-concept.md @@ -0,0 +1,5 @@ +--- +title: DQL +--- + +DQL is the "Dgraph Query Language" and is based on GraphQL. It is neither a superset nor subset of GraphQL, but is generally more powerful than GraphQL. DQL coexists nicely with GraphQL so many users perform most access using GraphQL and only "drop down" into DQL when there is a particular query mechanism needed that is not supported in the GraphQL spec. E.g. @recurse query operations are only in DQL. Other customers simply use DQL. DQL supports both queries and mutations, as well as hybrid "upsert" operations. diff --git a/docusaurus-docs/docs/design-concepts/dql-graphql-layering-concept.md b/docusaurus-docs/docs/design-concepts/dql-graphql-layering-concept.md new file mode 100644 index 00000000..05ccc45a --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/dql-graphql-layering-concept.md @@ -0,0 +1,15 @@ +--- +title: DQL and GraphQL +--- + +## Dgraph Schemas +Dgraph natively supports GraphQL, including `GraphQL Schema`s. GraphQL schemas "sit on top of" DQL schemas, in the sense that when a GraphQL schema is added to Dgraph, a corresponding `DQL Schema` is automatically created. + +Refer to [GraphQL-DQL interoperability](/graphql-dql/) section for details. + +## Dgraph Queries, Mutations and Upserts +Similarly, GraphQL mutations are implemented on top of DQL in the sense that a GraphQL query is converted internally into a DQL query, which is then executed. This translation is not particularly complex, since DQL is based on GraphQL, with some syntax changes and some extensions. + +This is generally transaparent to all callers, however users should be aware that +1) Anything done in GraphQL can also be done in DQL if needed. Some small exceptions include the enforcement of non-null constraints and other checks done before Dgraph transpiles GraphQL to DQL and executes it. +2) Some logging including Request Logging and OpenTrace (Jaeger) tracing may show DQL converted from the GraphQL. diff --git a/docusaurus-docs/docs/design-concepts/facets-concept.md b/docusaurus-docs/docs/design-concepts/facets-concept.md new file mode 100644 index 00000000..46432b57 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/facets-concept.md @@ -0,0 +1,9 @@ +--- +title: Facets +--- + +Dgraph allows a set of properties to be associated with any `Relationship`. E.g. if there is a "worksFor" relationships between Node "Bob" and Node "Google", this relationship may have facet values of "since": 2002-05-05 and "position": "Engineer". + +Facets can always be replaced by adding a new Node representing the relationship and storing the facet data as attriubutes of the new Node. + +The term "facet" is also common in database and search engine technology, and indicates a dimension or classification of data. One way to use facets it to indicate a relationship type. diff --git a/docusaurus-docs/docs/design-concepts/graphql-concept.md b/docusaurus-docs/docs/design-concepts/graphql-concept.md new file mode 100644 index 00000000..225c2086 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/graphql-concept.md @@ -0,0 +1,10 @@ + +--- +title: GraphQL +--- + + `GraphQL` is a query and update standard defined at [GraphQL.org](https://graphql.org/). `GraphQL` is natively supported by Dgraph, without requiring additional servers, data mappings or resolvers. Typically, "resolving" a data field in GraphQL simply corresponds to walking that relationship in Dgraph. + + Dgraph also auto-generates access functions for any `GraphQL Schema`, allowing users to get up and running in minutes with Dgraph + a GraphQL schema. The APIs are auto-generated. + +GraphQL is internally converted to the (similar-but-different) `DQL` query language before being executed. We can think of GraphQL as "sitting on top" of DQL. diff --git a/docusaurus-docs/docs/design-concepts/group-concept.md b/docusaurus-docs/docs/design-concepts/group-concept.md new file mode 100644 index 00000000..e83e3b14 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/group-concept.md @@ -0,0 +1,22 @@ +--- +title: Group +--- + +A group is a set of 1 or 3 or more servers that work together and have a single `leader` in the sense defined by the RAFT protocol. +## Alpha Group +An Alpha `Group` in Dgraph is a shard of data, and may or may not be highly-available (HA). An HA group typically has three Dgraph instances (servers or K8s pods), and a non-HA group is a single instance. Every Alpha instance belongs to one group, and each group is responsible for serving a +particular set of tablets (relations). In an HA configuration, the three or more instances in a single group replicate the same data to every instance to ensure redundancy of data. + +In a sharded Dgraph cluster, tablets are automatically assigned to each group, and dynamically relocated as sizes change to keep the groups balanced. Predicates can also be moved manually if desired. + +In a future version, if a tablet gets too big, it will be split among two groups, but currently data is balanced by moving each tablet to one group only. + +To avoid confusion, remember that you may have many Dgraph alpha instances due to either sharding, or due to HA configuration. If you have both sharding and HA, you will have 3*N groups: + + config | Non-HA | HA +-------------|-------------------|-------- +Non-sharded | 1 alpha total | 3 alphas total +Sharded | 1 alpha per group | 3*N alphas for N groups + +## Zero Group +Group Zero is a lightweight server or group of servers which helps control the overall cluster. It manages timestamps and UIDs, determines when data should be rebalanced among shards, and other functions. The servers in this group are generally called "Zeros." diff --git a/docusaurus-docs/docs/design-concepts/index-tokenize-concept.md b/docusaurus-docs/docs/design-concepts/index-tokenize-concept.md new file mode 100644 index 00000000..0bf2e9c8 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/index-tokenize-concept.md @@ -0,0 +1,13 @@ +--- +title: Index and Tokenizer +--- +### Indexing +An index is an optimized data structure, stored on disk and loaded into memory, that speeds or optimizes query processing. It is created and stored in addition to the primary data. E.g. a "hasName" property or relation is the primary storage structure for a graph in Dgraph, but may also have an additional index structure configured. + +Typically, Dgraph query access is optimized for forward access. When other access is needed, an index may speed up queries. Indexes are large structures that hold all values for some Relation (vs `Posting Lists`, which are typically smaller, per-Node structures). + +### Tokenizers + +Tokenizers are simply small algorithms that create indexed values from some Node property. E.g. if a Book Node has a Title attribute, and you add a "term" index, each word (term) in the text will be indexed. The word "Tokenizer" derives its name from tokenizing operations to create this index type. + +Similary if the Book has a publicationDateTime you can add a day or year index. The "tokenizer" here extracts the value to be indexed, which may be the day or hour of the dateTime, or only the year. diff --git a/docusaurus-docs/docs/design-concepts/index.md b/docusaurus-docs/docs/design-concepts/index.md new file mode 100644 index 00000000..4c39b468 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/index.md @@ -0,0 +1,10 @@ +--- +title: Design Concepts +--- + + + +This section of the documentation covers various concepts that are relevant to the Dgraph system. + + +### In this section \ No newline at end of file diff --git a/docusaurus-docs/docs/design-concepts/lambda-concept.md b/docusaurus-docs/docs/design-concepts/lambda-concept.md new file mode 100644 index 00000000..4f86473b --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/lambda-concept.md @@ -0,0 +1,5 @@ +--- +title: Lambdas +--- + +Dgraph Lambdas are JavaScript functions that can be used during query or mutation processing to extend GraphQL or DQL queries and mutations. Lambdas are not related at all to AWS Lambdas. They are functions that run in an (optional) node.js server that is included in the Dgraph Cloud offering. diff --git a/docusaurus-docs/docs/design-concepts/minimizing-network-calls.md b/docusaurus-docs/docs/design-concepts/minimizing-network-calls.md new file mode 100644 index 00000000..efcdb7ae --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/minimizing-network-calls.md @@ -0,0 +1,73 @@ +--- +title: Minimal Network Calls +--- + +### Predicate-based storage and sharding + +Dgraph is unique in its use of predicate-based sharding, which allows complex and deep distributed queries to run without incurring high network overhead and associated delays. + +Rather than store and shard by putting different _nodes_ (aka entities*) on different servers, Dgraph stores predicates or triples of the form <node1> <predicateRelation> <node2>. The nodes are therefore implicit in the predicate storage, rather than vice versa. + +This makes querying much different and particularly allows network optimizations in a distributed database. + +### Example +To explain how this works, let's use an example query: + + `Find all posts liked by friends of friends of mine over the last year, written by a popular author A.` + +### SQL/NoSQL +In a distributed SQL database or (non-graph) NoSQL database, this query requires retrieval of a lot of data. Consider two approaches: + +Approach 1: + +* Find all the friends (~ 338 [friends](https://www.pewresearch.org/fact-tank/2014/02/03/what-people-like-dislike-about-facebook/)). +* Find all their friends (~ 338 * 338 = 40,000 people). +* Find all the posts liked by these people over the last year (resulting set in the millions). +* Intersect these posts with posts authored by person A. + +Approach 2: + +* Find all posts written by popular author A over the last year (possibly thousands). +* Find all people who liked those posts (easily millions) (call this `result set 1`). +* Find all your friends. +* Find all their friends (call this `result set 2`). +* Intersect `result set 1` with `result set 2`. + +Both approaches wouild result in a lot of data moving back and forth between database and +application; would be slow to execute, and may require running an offline job. + +### Dgraph Approach +This is how it would run in Dgraph: + +Sharding assumptions (which predicates live where): +* Assume Server X contains the predicate `friends` representing all friend relations. +* Assume Server Y contains the predicate `posts_liked` representing who likes each post. +* Assume Server Z contains the predicate `author` representing all who authored each post. +* Assume Server W contains the predicate `title` representing the uid->string title property of posts. + +Algorithm: +* Server X + * If the request was not sent to Server X, route it to Server X where the friends predicate lives. **(1 RPC)**. + * Seek to my uid within predicate (tablet) `friends` and retrieve a list of my friends as a list of uids. + * Still on Server X, use the friends predicate again to get friends for all of those uids, generating a list of my friends of friends. Call this `result set myFOF`. +* Server Y + * Send result set myFOF to Server Y, which holds the posts_liked predicate **(1 RPC)**. + * Retrieve all posts liked by my friends-of-friends. Call this `result set postsMyFOFLiked`. +* Server Z + * Send postsMyFOFLiked result set to Server Z **(1 RPC)**. + * Retrieve all posts authored by A. Call this `result set authoredByA`. + * Still on Server Z, intersect the two sorted lists to get posts that are both liked and authored by A: `result set postsMyFOFLiked` intersect `result set authoredByA`. Call this `result set postsMyFOFLikedByA` + * at this point we have done the hard work, but have the uids of the posts, instead of the post titles. +* Server W + * Send `result set postsMyFOFLikedByA` to Server W which holds the title predicate **(1 RPC)**. + * Convert uids to names by looking up the title for each uid. `result set postUidsAndTitles` +* Respond to caller with `result set postUidsAndTitles`. + +## Net Result - predictable distributed graph scaling +In at most 4 RPCs, we have figured out all the posts liked by friends of friends, written by popular author X, with titles. Typically, all four predicates will not live on four different Servers, so this is a worst-case scenario. Dgraph network activity is limited to the level of query join depth, rather than increasing arbitrarily according to the number of nodes in the graph, and how they are broken up across servers. + +There is no way we are aware of that a node-based sharding database can avoid high network RPC counts during arbitrary queries because "node-hopping" does not mix well with a graph that is segmented across servers. + + +---- +* _Throughout this note, we call entities in a graph "nodes" which is a standard terminology when talking about nodes and predicates. These may be confused with RAFT or Kubernetes nodes in some contexts, but generally we mean nodes in a graph_. diff --git a/docusaurus-docs/docs/design-concepts/namespace-tenant-concept.md b/docusaurus-docs/docs/design-concepts/namespace-tenant-concept.md new file mode 100644 index 00000000..224dbb0b --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/namespace-tenant-concept.md @@ -0,0 +1,7 @@ +--- +title: Namespace and Tenant +--- + +A Dgraph `Namespace` (aka Tenant) is a logically separate database within a Dgraph cluster. A Dgraph cluster can host many Namespaces (and this is how the Dgraph "shared" cloud offering works). Each user must then into their own namespace using namespace-specific own credentials, and sees only their own data. Note that this usually requires an extra or specific login. + +There is no mechanism to query in a way that combines data from two namespaces, which simplifies and enforces security in use cases where this is the requirement. An API layer or client would have to pull data from multiple namespaces using different authenticated queries if data needed to be combined. diff --git a/docusaurus-docs/docs/design-concepts/network-call-minimization-concept.md b/docusaurus-docs/docs/design-concepts/network-call-minimization-concept.md new file mode 100644 index 00000000..a474cc0d --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/network-call-minimization-concept.md @@ -0,0 +1,7 @@ +--- +title: Network Call Minimization +--- + +Compared to RAM or SSD access, network calls are slow, so Dgraph is built from the ground up to minimize them. For graph databases which store sub-graphs on different shards, this is difficult or impossible, but predicate-based (relationship-based) sharding allows fast distributed query with Dgraph. + +See [How Dgraph Minmizes Network Calls](/dgraph-overview/design-concepts/minimizing-network-calls) for more details. diff --git a/docusaurus-docs/docs/design-concepts/posting-list-concept.md b/docusaurus-docs/docs/design-concepts/posting-list-concept.md new file mode 100644 index 00000000..d0371788 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/posting-list-concept.md @@ -0,0 +1,99 @@ +--- +title: Posting List and Tablet +--- + +Posting lists and tablets are internal storage mechanisms and are generally hidden from users or developers, but logs, core product code, blog posts and discussions about Dgraph may use the terms "posting list" and "tablet." + +Posting lists are a form of inverted index. Posting lists correspond closely to the RDF concept of a graph, where the entire graph is a collection of triples, `` ``. In this view, a posting list is a list of all triples that share a ``+`` pair. + +(Note that in Dgraph docs, we typically use the term "relationship" rather than predicate, but here we will refer to predicates explicitly.) + +The posting lists are grouped by predicate into `tablets`. A tablet therefore has all data for a predicate, for all subject UIDs. + +Tablets are the basis for data shards in Dgraph. In the near future, Dgraph may split a single tablet into two shards, but currently every data shard is a single predicate. Every server then hosts and stores a set of tablets. Dgraph will move or allocate different tablets to different servers to achieve balance across a sharded cluster. + + +### Example +If we're storing friendship relationships among four people, we may have four posting lists represented by the four tables below: + +Node | Attribute| Value +------- |----------|-------- +person1 | friend | person2 +person1 | friend | person4 + +  + +Node | Attribute| Value +------- |----------|-------- +person2 | friend | person1 + +  + +Node | Attribute| Value +------- |----------|-------- +person3 | friend | person2 +person3 | friend | person4 + +  + +Node | Attribute| Value +------- |----------|-------- +person4 | friend | person2 +person4 | friend | person1 +person4 | friend | person3 + +  + +The corrsponding posting lists would be something like: + +``` +person1UID+friend->[person2UID, person4UID] +person2UID+friend->[person1UID] +person3UID+friend->[person2UID, person4UID] +person4UID+friend->[person1UID, person2UID, person3UID] +``` +  + +Similarly, a posting list will also hold all literal value properties for every node. E.g. consider the names of people in these three tables: + +Node | Attribute| Value +------- |----------|-------- +person1 | name | "James" +person1 | name | "Jimmy" +person1 | name | "Jim" + +  + +Node | Attribute| Value +------- |----------|-------- +person2 | name | "Rajiv" + +  + +Node | Attribute| Value +------- |----------|-------- +person3 | name | "Rachel" + +  +The posting lists would look like: +``` +person1UID+name->["James", "Jimmy", "Jim"] +person2UID+friend->["Rajiv"] +person3UID+friend->["Rachel"] +``` +  + +Note that person4 has no name attribute specified, so that posting list would not exist. + +In these examples, two predicates (relations) are defined, and therefore two tablets will exist. + +The tablet for the `friend` predicate will hold all posting lists for all "friend" relationships in the entire graph. The tablet for the `name` property will hold all posting lists for `name` in the graph. + +If other types such as Pets or Cities also have a name property, their data will be in the same tablet as the Person names. + +### Performance implications + +A key advantage of grouping data into predicate-based shards is that we have all the data to do one join in one `tablet` on one server/shard. This means, one RPC to +the machine serving that `tablet` will be adequate, as documented in [How Dgraph Minmizes Network Calls](/dgraph-overview/design-concepts/minimizing-network-calls). + +Posting lists are the unit of data access and caching in Dgraph. The underlying key-value store stores and retrieves posting lists as a unit. Queries that access larger posting lists will use more cache and may incur more disk access for un-cached posting lists. diff --git a/docusaurus-docs/docs/design-concepts/protocol-buffers-concept.md b/docusaurus-docs/docs/design-concepts/protocol-buffers-concept.md new file mode 100644 index 00000000..4c0dc048 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/protocol-buffers-concept.md @@ -0,0 +1,5 @@ +--- +title: Protocol Buffers +--- + +All data in Dgraph that is stored or transmitted among the Dgraph instances (servers) is converted into space-optimized byte arrays using [Protocol Buffers](https://developers.google.com/protocol-buffers/). Protocol Buffers are a standard, optimized technology to speed up network communications. diff --git a/docusaurus-docs/docs/design-concepts/queries-process.md b/docusaurus-docs/docs/design-concepts/queries-process.md new file mode 100644 index 00000000..1ff465a2 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/queries-process.md @@ -0,0 +1,42 @@ +--- +title: Query Process +--- + + +To understand how query execution works, look at an example. + +``` +{ + me(func: uid(0x1)) { + rel_A + rel_B { + rel_B1 + rel_B2 + } + rel_C { + rel_C1 + rel_C2 { + rel_C2_1 + } + } + } +} + +``` + +Let's assume we have 3 Alpha instances, and instance id=2 receives this query. These are the steps: + +* This query specifies the exact UID list (one UID) to start with, so there is no root query clause. +* Retreive posting lists using keys = `0x1::rel_A`, `0x1::rel_B`, and `0x1::rel_C`. + * At worst, these predicates could belong to 3 different groups if the DB is sharded, so this would incur at most 3 network calls. +* The above posting lists would include three lists of UIDs or values. + * The UID results (id1, id2, ..., idn) for `rel_B` are converted into queries for `id1::rel_B1` `id2::rel_B1`, etc., and for `id1::rel_B2` `id2::rel_B2`, etc. + * Similarly, results for rel_C will be used to get the next set of UIDs from posting list keys like `id::rel_C1` and `id::rel_C2`. +* This process continues recursively for `rel_C2_1` as well, and as deep as any query requires. + +More complex queries may do filtering operations, or intersections and unions of UIDs, but this recursive walk to execute a number of (often parallel) `Tasks` to retrieve UIDs characterizes Dgraph querying. + +If the query was run via HTTP interface `/query`, the resulting subgraph then gets converted into JSON for +replying back to the client. If the query was run via [gRPC](https://www.grpc.io/) interface using +the language [clients](/dgraph-overview/clients/), the subgraph gets converted to +[protocol buffer](https://developers.google.com/protocol-buffers/) format and similarly returned to the client. diff --git a/docusaurus-docs/docs/design-concepts/raft.md b/docusaurus-docs/docs/design-concepts/raft.md new file mode 100644 index 00000000..6d3e93e4 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/raft.md @@ -0,0 +1,159 @@ +--- +title: RAFT +--- + +Dgraph uses RAFT whenever consensus among a distribued set of servers is required, such as ensuring that a transaction has been properly committed, or determining the proper timestamp for a read or write. Each zero or alpha `group` uses raft to elect leaders. + +This section aims to explain the RAFT consensus algorithm in simple terms. The idea is to give you +just enough to make you understand the basic concepts, without going into explanations about why it +works accurately. For a detailed explanation of RAFT, please read the original thesis paper by +[Diego Ongaro](https://github.com/ongardie/dissertation). + +## Term +Each election cycle is considered a **term**, during which there is a single leader +*(just like in a democracy)*. When a new election starts, the term number is increased. This is +straightforward and obvious but is a critical factor for the accuracy of the algorithm. + +In rare cases, if no leader could be elected within an `ElectionTimeout`, that term can end without +a leader. + +## Server States +Each server in cluster can be in one of the following three states: + +* Leader +* Follower +* Candidate + +Generally, the servers are in leader or follower state. When the leader crashes or the communication +breaks down, the followers will wait for election timeout before converting to candidates. The +election timeout is randomized. This would allow one of them to declare candidacy before others. +The candidate would vote for itself and wait for the majority of the cluster to vote for it as well. +If a follower hears from a candidate with a higher term than the current (*dead in this case*) leader, +it would vote for it. The candidate who gets majority votes wins the election and becomes the leader. + +The leader then tells the rest of the cluster about the result (Heartbeat +[Communication](#communication)) and the other candidates then become followers. +Again, the cluster goes back into leader-follower model. + +A leader could revert to being a follower without an election, if it finds another leader in the +cluster with a higher [Term](#term)). This might happen in rare cases (network partitions). + +## Communication +There is unidirectional RPC communication, from the leader to all/any followers. The followers never ping the +leader. The leader sends `AppendEntries` messages to the followers with logs containing state +updates. When the leader sends `AppendEntries` with zero logs (updates), that's considered a +Heartbeat. The leader sends all followers Heartbeats at regular intervals. + +If a follower doesn't receive a Heartbeat for `ElectionTimeout` duration (generally between +150ms to 300ms), the leader may be down, so it converts it's state to candidate (as mentioned in [Server States](#server-states)). +It then requests for votes by sending a `RequestVote` call to other servers. If it gets votes from the majority, the candidate becomes the leader. On becoming leader, it sends Heartbeats +to all other servers to establish its authority. + +Every communication request contains a term number. If a server receives a request with a stale term +number, it rejects the request. + +## Log Entries +Dgraph uses LSM Trees, so we call commits or updates "Log Entries." Log Entries are numbered sequentially and contain a term number. An Entry is considered **committed** if it has been replicated (and stored) by a majority of the servers. + +On being notified of the results of a client request (which is often processed on other servers), the leader does four things to coordinate RAFT consensus (this is also called Log Replication): + +* Appends and persists to its log. +* Issue `AppendEntries` in parallel to other servers. +* Monitors for the majority to report it is replicated, after which it considers the entry committed and applies it to the leader's state machine. +* Notifies followers that the entry is committed so that they can apply it to their state machines. + +A leader never overwrites or deletes its entries. RAFT guarantees that if an entry is committed, +all future leaders will have it. A leader can, however, force overwrite the followers' logs, so they +match leader's logs if necessary. + +## Voting +Each server persists its current term and vote, so it doesn't end up voting twice in the same term. +On receiving a `RequestVote` RPC, the server denies its vote if its log is more up-to-date than the +candidate. It would also deny a vote, if a minimum `ElectionTimeout` hasn't passed since the last +Heartbeat from the leader. Otherwise, it gives a vote and resets its `ElectionTimeout` timer. + +Up-to-date property of logs is determined as follows: + +* Term number comparison +* Index number or log length comparison + +:::tipTo understand the above sections better, you can see this +[interactive visualization](http://thesecretlivesofdata.com/raft).::: + +## Cluster membership +Raft only allows single-server changes, i.e. only one server can be added or deleted at a time. +This is achieved by cluster configuration changes. Cluster configurations are communicated using +special entries in `AppendEntries`. + +The significant difference in how cluster configuration changes are applied compared to how typical +[Log Entries](#log-entries) are applied is that the followers don't wait for a +commitment confirmation from the leader before enabling it. + +A server can respond to both `AppendEntries` and `RequestVote`, without checking current +configuration. This mechanism allows new servers to participate without officially being part of +the cluster. Without this feature, things won't work. + +When a new server joins, it won't have any logs, and they need to be streamed. To ensure cluster +availability, Raft allows this server to join the cluster as a non-voting member. Once it's caught +up, voting can be enabled. This also allows the cluster to remove this server in case it's too slow +to catch up, before giving voting rights *(sort of like getting a green card to allow assimilation +before citizenship is awarded providing voting rights)*. + + +:::tipIf you want to add a few servers and remove a few servers, do the addition +before the removal. To bootstrap a cluster, start with one server to allow it to become the leader, +and then add servers to the cluster one-by-one.::: + +## Snapshots +One of the ways to do this is snapshotting. As soon as the state machine is synced to disk, the +logs can be discarded. + +Snapshots are taken by default after 10000 Raft entries, with a frequency of 30 minutes. The frequency indicates the time between two subsequent snapshots. These numbers can be adjusted using the `--raft` [superflag](/dgraph-overview/cli/superflags)'s `snapshot-after-entries` and `snapshot-after-duration` options respectively. Snapshots are created only when conditions set by both of these options have been met. + +## Clients +Clients must locate the cluster to interact with it. Various approaches can be used for discovery. + +A client can randomly pick up any server in the cluster. If the server isn't a leader, the request +should be rejected, and the leader information passed along. The client can then re-route it's query +to the leader. Alternatively, the server can proxy the client's request to the leader. + +When a client first starts up, it can register itself with the cluster using `RegisterClient` RPC. +This creates a new client id, which is used for all subsequent RPCs. + +## Linearizable Semantics + +Servers must filter out duplicate requests. They can do this via session tracking where they use +the client id and another request UID set by the client to avoid reprocessing duplicate requests. +RAFT also suggests storing responses along with the request UIDs to reply back in case it receives +a duplicate request. + +Linearizability requires the results of a read to reflect the latest committed write. +Serializability, on the other hand, allows stale reads. + +## Read-only queries + +To ensure linearizability of read-only queries run via leader, leader must take these steps: + +* Leader must have at least one committed entry in its term. This would allow for up-to-dated-ness. +*(C'mon! Now that you're in power do something at least!)* +* Leader stores it's latest commit index. +* Leader sends Heartbeats to the cluster and waits for ACK from majority. Now it knows +that it's the leader. *(No successful coup. Yup, still the democratically elected dictator I was before!)* +* Leader waits for its state machine to advance to readIndex. +* Leader can now run the queries against state machine and reply to clients. + +Read-only queries can also be serviced by followers to reduce the load on the leader. But this +could lead to stale results unless the follower confirms that its leader is the real leader(network partition). +To do so, it would have to send a query to the leader, and the leader would have to do steps 1-3. +Then the follower can do 4-5. + +Read-only queries would have to be batched up, and then RPCs would have to go to the leader for each +batch, who in turn would have to send further RPCs to the whole cluster. *(This is not scalable +without considerable optimizations to deal with latency.)* + +**An alternative approach** would be to have the servers return the index corresponding to their +state machine. The client can then keep track of the maximum index it has received from replies so far. +And pass it along to the server for the next request. If a server's state machine hasn't reached the +index provided by the client, it will not service the request. This approach avoids inter-server +communication and is a lot more scalable. *(This approach does not guarantee linearizability, but +should converge quickly to the latest write.)* diff --git a/docusaurus-docs/docs/design-concepts/relationships-concept.md b/docusaurus-docs/docs/design-concepts/relationships-concept.md new file mode 100644 index 00000000..bb93e0d1 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/relationships-concept.md @@ -0,0 +1,24 @@ + +--- +title: Relationships +--- + + +Dgraph stores `relationships` among `nodes` to represent graph structures, and also stores literal properties of `nodes`. + +This makes it easy for Dgraph to ingest the RDF [N-Quad](https://www.w3.org/TR/n-quads/) format, where each line represents + +* `Node, RelationName, Node, Label` or +* `Node, RelationName, ValueLiteral, Label` + +The first represents relations among entities (nodes in graph terminology) and the second represents the relationship of a Node to all it's named attributes. + +Often, the optional `Label` is omitted, and therefore the N-Quad data is also referred to as "triples." When it is included, it represents which `Tenant` or `Namespace` the data lives in within Dgraph. + +:::tipDgraph can automatically generate a reverse relation. If the user wants to run +queries in that direction, they would need to define the [reverse relationship](/dgraph-overview/dql-schema#reverse-predicates) +::: + +For `Relationships`, the subject and object are represented as 64-bit numeric UIDs and the relationship name itself links them: <subjectUID> <relationshipName> <bjectUID>. + +For literal attributes of a `Node`, the subject must still (and always) be a numeric UID, but the Object will be a primitive value. These can be thought of as <subjectUID> <elationshipName> <value>, where value is not a 64-bit UID, and is instead a: string, float, int, dateTime, geopoint, or boolean. diff --git a/docusaurus-docs/docs/design-concepts/replication-concept.md b/docusaurus-docs/docs/design-concepts/replication-concept.md new file mode 100644 index 00000000..915fce4a --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/replication-concept.md @@ -0,0 +1,8 @@ +--- +title: High Availability Replication +--- + +Each Highly-Available (HA) group will be served by at least 3 instances (or two if one is temporarily unavailable). In the case of an alpha instance +failure, other alpha instances in the same group still handle the load for data in that group. In case of a zero instance failure, the remaining two zeros in the zero group will continue to hand out timestamps and perform other zero functions. + +In addition, Dgraph `Learner Nodes` are alpha instances that hold replicas of data, but this replication is to support read replicas, often in a different geography from the master cluster. This replication is implemented the same way as HA replication, but the learner nodes do not participate in quorum, and do not take over from failed nodes to provide high availability. diff --git a/docusaurus-docs/docs/design-concepts/transaction-mutation-concept.md b/docusaurus-docs/docs/design-concepts/transaction-mutation-concept.md new file mode 100644 index 00000000..8ca782cb --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/transaction-mutation-concept.md @@ -0,0 +1,8 @@ +--- +title: Transaction and Mutation +--- + + +Borrowing from GraphQL, Dgraph calls writes to the database `Mutations`. As noted elsewhere (MVCC, LSM Trees and Write Ahead Log sections) writes are written persistently to the Write Ahead Log, and ephemerally to a memtable. + +Data is queried from the combination of persistent SST files and ephemeral memtable data structures. The mutations therefore always go into the memtables first (though are also written durably to the WAL). The memtables are the "Level 0" in the LSM Tree, and conceptually sit on top of the immutable SST files. diff --git a/docusaurus-docs/docs/design-concepts/transactions-concept.md b/docusaurus-docs/docs/design-concepts/transactions-concept.md new file mode 100644 index 00000000..7d1e2e0b --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/transactions-concept.md @@ -0,0 +1,19 @@ +--- +title: ACID Transactions +--- + +ACID is an acronym for +* Atomic +* Consistent +* Isolated +* Durable + +If these properties are maintained, there is a guarantee that data updates will not be lost, corrupted or unpredictable. Broadly, an ACID database safely and reliably stores data, but other databases have failure modes where data can be lost or corrupted. + +### ACID in Dgraph +Dgraph supports distributed ACID transactions through snapshot isolation and the RAFT consensus protocol. Dgraph is fully transactional, and is tested via Jepsen tests, which is a gold standard to verify transactional consistency. + +Dgraph ensure snapshot isolation plus realtime safety: if transaction T1 commits before T2 begins, than the commit timestamp of T1 is strictly less than the start timestamp of T2. This ensures that the sequence of writes on shared data by many processes is reflected in database state. + +Snapshot isolation is ensured by maintaining a consistent view of the database at any (relatively recent) point in time. Every read (query) takes place at the point-in-time it was submitted, accesses a consistent snapshot that does not change or include any partial updates due to concurrent writes that are processing or committing. + diff --git a/docusaurus-docs/docs/design-concepts/wal-memtable-concept.md b/docusaurus-docs/docs/design-concepts/wal-memtable-concept.md new file mode 100644 index 00000000..cb3ea9a2 --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/wal-memtable-concept.md @@ -0,0 +1,8 @@ +--- +title: WAL and Memtable +--- + + +Per the RAFT (and MVCC) approach, transactions write data to a `Write-Ahead Log` (WAL) to ensure it is durably stored. Soon after commit, data is also updated in the `memtables` which are memory buffers holding recently-updated data. The `memtables` are mutable, unlike the SST files written to disk which hold most data. Once full, memtables are flushed to disk and become SST files. See Log Compaction for more details on this process. + +In the event of a system crash, the persistent data in the Write Ahead Logs is replayed to rebuild the memtables and restore the full system state from before the crash. diff --git a/docusaurus-docs/docs/design-concepts/workers-concept.md b/docusaurus-docs/docs/design-concepts/workers-concept.md new file mode 100644 index 00000000..b84c673f --- /dev/null +++ b/docusaurus-docs/docs/design-concepts/workers-concept.md @@ -0,0 +1,6 @@ +--- +title: Workers +--- + +### Workers and Worker Pools +Dgraph maintains a fixed set of worker processes (much like threads or goroutines) that retrieve and execute queries in parallel as they are sent over HTTP or gRPC. Dgraph also parallelizes Tasks within a single query execution, to maximize parallelism and more fully utilize system resources. Dgraph is written in the go language, which supports high numbers of parallel goroutines, enabling this approach without creating large numbers of OS threads which would be slower. diff --git a/docusaurus-docs/docs/dgraph-glossary.md b/docusaurus-docs/docs/dgraph-glossary.md new file mode 100644 index 00000000..0218b6f9 --- /dev/null +++ b/docusaurus-docs/docs/dgraph-glossary.md @@ -0,0 +1,80 @@ +--- +title: Dgraph Glossary +description: Dgraph terms +--- + +:::note +*This is a glossary of Dgraph terms* + +### Alpha ### +A Dgraph cluster consists of [Zero](#zero) and Alpha nodes. Alpha nodes host relationships (also known as predicates) and indexes. Dgraph scales horizontally by adding more Alphas. + +### Badger ### +Badger is a fast, open-source key-value database written in pure Go that provides the storage layer for Dgraph. +More at [Badger documentation](https://dgraph.io/docs/badger) + +### DQL ### +Dgraph Query Language is Dgraph's proprietary language to insert, update, delete and query data. It is based on GraphQL, but is more expressive. (See also: [GraphQL](#graphql)) + +### Edge ### +In the mental picture of a graph: bubbles connected by lines ; the bubbles are nodes, the lines are edges. +In Dgraph terminology edges are [relationships](#relationship) i.e an information about the relation between two nodes. + +### Facet ### +A facet represents a property of a [relationship](#relationship). + +### Graph ### +A graph is a simple structure that maps relations between objects. In Dgraph terminology, the objects are [nodes](#node) and the connections between them are [relationships](#relationship). + +### GraphQL ### +[GraphQL](https://graphql.org/) is a declarative language for querying data used by application developers to get the data they need using GraphQL APIs. GraphQL is an open standard with a robust ecosystem. Dgraph supports the deployment of a GraphQL data model (GraphQL schema) and automatically exposes a GraphQL API endpoint accepting GraphQL queries. + +### gRPC ### +[gRPC](https://grpc.io/) is a high performance Remote Procedure Call (RPC) framework used by Dgraph to interface with clients. Dgraph has official gRPC clients for go, C#, Java, JavaScript and Python. Applications written in those language can perform mutations and queries inside transactions using Dgraph clients. + +### Lambda ### +A Lambda Resolver (Lambda for short) is a GraphQL resolver supported within Dgraph. A Lambda is a user-defined JavaScript function that performs custom actions over the GraphQL types, interfaces, queries, and mutations. Dgraph Lambdas are unrelated to AWS Lambdas. + +### Mutation ### +A mutation is a request to modify the database. Mutations include insert, update, or delete operations. A Mutation can be combined with a query to form an [Upsert](#upsert). + +### Node ### +Conceptually, a node is "a thing" or an object of the business domain. For every node, Dgraph stores and maintains a universal identifier [UID](#uid), a list of properties, and the [relationships](#relationship) the node has with other nodes. + +The term "node" is also used in software architecture to reference a physical computer or a virtual machine running a module of Dgraph in a cluster. See [Aplha node](#alpha) and [Zero node](#zero). + +### Predicate ### +In [RDF](#rdf) terminology, a predicate is the smallest piece of information about an object. A predicate can hold a literal value or can describe a relation to another entity : +- when we store that an entity name is "Alice". The predicate is ``name`` and predicate value is the string "Alice". It becomes a node property. +- when we store that Alice knows Bob, we may use a predicate ``knows`` with the node representing Alice. The value of this predicate would be the [uid](#uid) of the node representing Bob. In that case, ``knows`` is a [relationship](#relationship). + +### RATEL ### +Ratel is an open source GUI tool for data visualization and cluster management that’s designed to work with Dgraph and DQL. See also: [Ratel Overview](/ratel). + +### RDF ### +RDF 1.1 is a Semantic Web Standard for data interchange. It allows us to make statements about resources. The format of these statements is simple and in the form of ` `. +Dgraph supports the RDF format to create, import and export data. Note that Dgraph also supports the JSON format. + + +### Relationship ### +A relationship is a named, directed link relating one [node](#node) to another. It is the Dgraph term similar to [edge](#edge) and [predicate](#predicate). In Dgraph a relationship may itself have properties representing information about the relation, such as weight, cost, timeframe, or type. In Dgraph the properties of a relationship are called [facets](#facet). + +### Sharding ### +Sharding is a database architecture pattern to achieve horizontal scale by distributing data among many servers. Dgraph shards data per relationship, so all data for one relationship form a single shard, and are stored on one (group of) servers, an approach referred to as 'predicate-based sharding'. + +### Triple ### +Because RDF statements consist of three elements: ` `, they are called triples. A triple represents a single atomic statement about a node. The object in an RDF triple can be a literal value or can point to another node. See [DQL RDF Syntax](/dgraph-overview/dql/dql-rdf) for more details. +- when we store that a node name is "Alice". The predicate is ``name`` and predicate value is the string "Alice". The string becomes a node property. +- when we store that Alice knows Bob, we may use a predicate ``knows`` with the node representing Alice. The value of this predicate would be the [uid](#uid) of the node representing Bob. In that case, ``knows`` is a [relationship](#relationship). + + +### UID ### +A UID is the Universal Identifier of a node. `uid` is a reserved property holding the UID value for every node. UIDs can either be generated by Dgraph when creating nodes, or can be set explicitly. + + +### Upsert ### +An upsert operation combines a Query with a [Mutation](#mutation). Typically, a node is searched for, and then depending on if it is found or not, a new node is created with associated predicates or the exixting node relationships are updated. Upsert operations are important to implement uniqueness of predicates. + +### Zero ### +Dgraph consists of Zero and [Alpha](#alpha) nodes. Zero nodes control the Dgraph database cluster. It assigns Alpha nodes to groups, re-balances data between groups, handles transaction timestamp and UID assignment. +::: diff --git a/docusaurus-docs/docs/dgraph-overview.md b/docusaurus-docs/docs/dgraph-overview.md new file mode 100644 index 00000000..bcf23974 --- /dev/null +++ b/docusaurus-docs/docs/dgraph-overview.md @@ -0,0 +1,128 @@ +--- +title: Overview +description: Introduction to Dgraph Database. Dgraph is a horizontally scalable and distributed graph database that supports GraphQL natively. You can run Dgraph on-premise, in your cloud infrastructure, or as a service fully-managed by Dgraph. +--- + +Dgraph is a distributed graph database designed for modern applications that need to work with highly connected data. It provides a scalable foundation for storing and querying complex relationships between entities. + +## Understanding the Graph Model + +At its core, Dgraph stores data as a graph composed of **nodes** and **relationships**. Nodes represent entities in your data (like users, products, or locations), while relationships connect these nodes to show how they relate to each other (like "follows", "purchased", or "located_in"). + +Each node is identified by a unique identifier (UID) and can have multiple **attributes** that describe its properties. For example, a person node might have attributes like name, age, and email. Attributes can store various data types including strings, integers, floats, dates, and geographic coordinates. + +## Data Formats + +Dgraph is flexible in how you provide data to it. You can save data in two formats: + +**RDF (Resource Description Format)** uses a triple-based structure with subject-predicate-object statements: +``` +<0x1> "Alice" . +<0x1> "30" . +<0x1> <0x2> . +``` + +**JSON** provides a more familiar structure for developers: +```json +{ + "uid": "0x1", + "name": "Alice", + "age": 30, + "friend": { + "uid": "0x2" + } +} +``` + +Both formats are stored internally as graph structures, allowing you to choose the format that best fits your workflow. + +## Schema and Types + +While Dgraph can operate in a schema-less manner (you can add any predicate to any node at any time), defining a schema provides important benefits. The schema tells Dgraph about your predicates—their data types and which indexes to use. +Indexes are required to use certain query functions. + +## Distributed Architecture + +Dgraph is built from the ground up as a distributed system. Data is automatically sharded across multiple nodes in a cluster, allowing you to scale horizontally as your graph grows. The distributed architecture enables Dgraph to handle graphs with billions of nodes and triples while maintaining low-latency query performance. + +Each Dgraph cluster consists of multiple server groups (shards) that work together to store and query your data. Queries are automatically distributed across the relevant shards and results are aggregated, making the distributed nature transparent to your application. This architecture provides both horizontal scalability and high availability. + +For detailed information about Dgraph's distributed architecture, clustering, and replication, see the [Architecture documentation](/dgraph-overview/installation/dgraph-architecture). + +## Enterprise-Grade Features + +Dgraph includes production-ready features for running mission-critical applications: + +**High Availability**: Configure multiple replicas within each server group to ensure your database remains available even when individual nodes fail. Automatic failover maintains service continuity without manual intervention. + +**Backup and Restore**: Create full and incremental backups of your graph data. Backups can be stored locally or in cloud storage, and point-in-time recovery allows you to restore your database to any previous state. + +**Monitoring and Observability**: Built-in metrics and integration with monitoring tools like Prometheus and Grafana provide visibility into cluster health, query performance, and resource utilization. + +**Access Control**: Fine-grained access control lists (ACLs) allow you to manage user permissions at the predicate level, ensuring data security in multi-tenant environments. + +**Encryption**: Support for encryption at rest and in transit protects your data throughout its lifecycle. + +These features make Dgraph suitable for production deployments requiring reliability, security, and operational excellence. + +## Querying Dgraph Query Language (DQL) + +Dgraph uses **DQL**, a query language inspired by GraphQL but extended with graph-specific capabilities. Queries in Dgraph allow you to traverse the graph, following relationships from node to node to retrieve connected data in a single request. + +A typical query starts at one or more nodes and traverses relationships to gather related information: +```graphql +{ + person(func: eq(name, "Alice")) { + name + age + friend { + name + friend { + name + } + } + } +} +``` + +This traverses from Alice to her friends, and then to her friends' friends, returning the nested structure in one query. + +## Graph Traversals and Filtering + +Dgraph excels at traversing complex relationships. You can filter at any level of traversal, aggregate data, sort results, and paginate through large result sets. The query language supports recursive queries for exploring paths of variable length, filtering by regular expressions, geographic proximity, and full-text search. + +Variables and value aggregation allow you to build sophisticated queries that analyze patterns across your graph, such as finding the most connected nodes or calculating metrics across relationships. + +## Mutations + +Data modifications in Dgraph are called **mutations**. You can add new nodes, update existing attributes, create or remove relationships, and delete nodes. Mutations can be submitted in either RDF or JSON format, and multiple operations can be batched together in a single transaction for consistency. + +## Transactions and Consistency + +Dgraph provides ACID transactions, ensuring that your data remains consistent even under concurrent access. Transactions can span multiple queries and mutations, and Dgraph handles conflicts automatically to maintain data integrity across your distributed cluster. + +## Getting Started + +Working with Dgraph typically involves: +1. Defining your schema (optional but recommended) +2. Loading your data through mutations +3. Querying the graph to retrieve and analyze connected information +4. Iterating on your schema and queries as your application evolves + +The graph model naturally represents connected data, making it straightforward to model domains like social networks, recommendation systems, knowledge graphs, access control systems, and any application where relationships between entities matter as much as the entities themselves. + + +## What's Next + +- Get familiar with some terms in our [Glossary](/dgraph-glossary) +- Go through some [tutorials](/dgraph-overview/learn) + + + + + + + + + + diff --git a/docusaurus-docs/docs/dql/dql-mutation.md b/docusaurus-docs/docs/dql/dql-mutation.md new file mode 100644 index 00000000..7508a7ab --- /dev/null +++ b/docusaurus-docs/docs/dql/dql-mutation.md @@ -0,0 +1,261 @@ +--- +title: Mutation +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + +Dgraph Query Language (DQL) is Dgraph's proprietary language to add, modify, delete and fetch data. + +Fetching data is done through [DQL Queries](/dgraph-overview/dql/query/dql-query). Adding, modifying or deleting data is done through ***DQL Mutations***. + +This overview explains the structure of DQL Mutations and provides links to the appropriate DQL reference documentation. + + +DQL mutations support JSON or [RDF](/dgraph-overview/dql/dql-rdf) format. + +## set block +In DQL, you add data using a set mutation, identified by the `set` keyword. + + +```dql + { + "set": [ + { + "name":"Star Wars: Episode IV - A New Hope", + "release_date": "1977-05-25", + "director": { + "name": "George Lucas", + "dgraph.type": "Person" + }, + "starring" : [ + { + "name": "Luke Skywalker" + }, + { + "name": "Princess Leia" + }, + { + "name": "Han Solo" + } + ] + }, + { + "name":"Star Trek: The Motion Picture", + "release_date": "1979-12-07" + } + ] + } +``` + + +``` +{ + set { + # triples in here + _:n1 "Star Wars: Episode IV - A New Hope" . + _:n1 "1977-05-25" . + _:n1 _:n2 . + _:n2 "George Lucas" . + + } +} +``` + +triples are in [RDF](/dgraph-overview/dql/dql-rdf) format. + +### Node reference +A mutation can include a blank nodes as an identifier for the subject or object, or a known UID. +``` +{ + set { + # triples in here + <0x632ea2> "1977-05-25" . + } +} +``` +will add the `release_date` information to the node identified by UID `0x632ea2`. + +### language support +``` +{ + set { + # triples in here + <0x632ea2> "Star Wars, épisode IV : Un nouvel espoir"@fr . + } +} +``` + + + + + +## delete block +A delete mutation, identified by the `delete` keyword, removes +[triples](/dgraph-overview/dql/dql-rdf) from the store. + +For example, if the store contained the following: +```RDF +<0xf11168064b01135b> "Lewis Carrol" +<0xf11168064b01135b> "1998" +<0xf11168064b01135b> "Person" . +``` + +Then, the following delete mutation deletes the specified erroneous data, and +removes it from any indexes: + +```sh +{ + delete { + <0xf11168064b01135b> "1998" . + } +} +``` + +### Wildcard delete + +In many cases you will need to delete multiple types of data for a predicate. +For a particular node `N`, all data for predicate `P` (and all corresponding +indexing) is removed with the pattern `S P *`. + +```sh +{ + delete { + <0xf11168064b01135b> * . + } +} +``` + +The pattern `S * *` deletes all the known edges out of a node, any reverse edges +corresponding to the removed edges, and any indexing for the removed data. + +:::note For mutations that fit the `S * *` pattern, only +predicates that are among the types associated with a given node (using +`dgraph.type`) are deleted. Any predicates that don't match one of the +node's types will remain after an `S * *` delete mutation.::: + +```sh +{ + delete { + <0xf11168064b01135b> * * . + } +} +``` + +If the node `S` in the delete pattern `S * *` has only a few predicates with a +type defined by `dgraph.type`, then only those triples with typed predicates are +deleted. A node that contains untyped predicates will still exist after a +`S * *` delete mutation. + +:::note The patterns `* P O` and `* * O` are not supported because +it's inefficient to store and find all the incoming edges. ::: + +### Deletion of non-list predicates + +Deleting the value of a non-list predicate (i.e a 1-to-1 relationship) can be +done in two ways. + +* Using the [wildcard delete](#wildcard-delete) (star notation) + mentioned in the last section. +* Setting the object to a specific value. If the value passed is not the +current value, the mutation will succeed but will have no effect. If the value +passed is the current value, the mutation will succeed and will delete the +non-list predicate. + +For language-tagged values, the following special syntax is supported: + +``` +{ + delete { + <0x12345> * . + } +} +``` + +In this example, the value of the `name` field that is tagged with the language +tag `es` is deleted. Other tagged values are left untouched. + +## upsert block +Upsert is an operation where: + +1. A node is searched for, and then +2. Depending on if it is found or not, either: + - Updating some of its attributes, or + - Creating a new node with those attributes. + +The upsert block allows performing queries and mutations in a single request. The upsert +block contains one query block and mutation blocks. + +The structure of the upsert block is as follows: + +``` +upsert { + query + mutation + [mutation ] + ... +} +``` + +Execution of an upsert block also returns the response of the query executed on the state +of the database *before mutation was executed*. +To get the latest result, you have to execute another query after the transaction is committed. + +Variables defined in the query block can be used in the mutation blocks using the [uid](/dgraph-overview/upserts#val-function) and [val](/dgraph-overview/upserts#val-function) functions. + +## conditional upsert +The upsert block also allows specifying conditional mutation blocks using an `@if` +directive. The mutation is executed only when the specified condition is true. If the +condition is false, the mutation is silently ignored. The general structure of +Conditional Upsert looks like as follows: + +``` +upsert { + query + [fragment ] + mutation [@if()] + [mutation [@if()] ] + ... +} +``` +The `@if` directive accepts a condition on variables defined in the query block and can be +connected using `AND`, `OR` and `NOT`. + +## Example of Conditional Upsert + +Let's say in our previous example, we know the `company1` has less than 100 employees. +For safety, we want the mutation to execute only when the variable `v` stores less than +100 but greater than 50 UIDs in it. This can be achieved as follows: + +```sh +curl -H "Content-Type: application/rdf" -X POST localhost:8080/mutate?commitNow=true -d $' +upsert { + query { + v as var(func: regexp(email, /.*@company1.io$/)) + } + + mutation @if(lt(len(v), 100) AND gt(len(v), 50)) { + delete { + uid(v) * . + uid(v) * . + uid(v) * . + } + } +}' | jq +``` + +We can achieve the same result using `json` dataset as follows: + +```sh +curl -H "Content-Type: application/json" -X POST localhost:8080/mutate?commitNow=true -d '{ + "query": "{ v as var(func: regexp(email, /.*@company1.io$/)) }", + "cond": "@if(lt(len(v), 100) AND gt(len(v), 50))", + "delete": { + "uid": "uid(v)", + "name": null, + "email": null, + "age": null + } +}' | jq +``` diff --git a/docusaurus-docs/docs/dql/dql-rdf.md b/docusaurus-docs/docs/dql/dql-rdf.md new file mode 100644 index 00000000..741bd71a --- /dev/null +++ b/docusaurus-docs/docs/dql/dql-rdf.md @@ -0,0 +1,138 @@ +--- +title: RDF Data Format +--- +Dgrpah natively supports Resource Description Framework (RDF) when creating, importing and exporting data. Dgraph Client libraries can be used to query RDF as well. + +[RDF 1.1](https://www.w3.org/RDF/) is a Semantic Web Standard for data interchange defined by the W3C. It expresses statements about resources. The format of these statements is simple and in the form of triples. + + +A triple has the form +``` + . +``` + +In RDF terminology, each triple represents one fact about a node. + +In Dgraph, the `` of a triple is always a node, and must be a numeric UID. The `` of a triple may be another node or a literal value: +``` +<0x01> "Alice" . +<0x01> <0x02> . +``` +The first triple specifies that a node has a name property of “Alice”. The subject is the UID of the first node, the predicate is `name`, and the object is the literal value string: `"Alice"`. +The second triple specifies that Alice knows Bob. The subject is again the UID of a node (the "alice" node), the predicate is `knows`, and the object of this triple is the uid of the other node (the "bob" node). When the object is a UID, the triple represents a relationship in Dgraph. + +Each triple representation in RDF ends with a period. + +### Blank nodes in mutations +When creating nodes in Dgraph, you often let Dgraph assign the node [UID](/dgraph-overview/dgraph-glossary#uid) by specifing a blank node starting with "_:". All references to the same blank node, such as `_:identifier123`, will identify the same node within a mutation. Dgraph creates a UID identifying each blank node. +### Language for string values +Languages are written using `@lang`. For example +``` +<0x01> "Adelaide"@en . +<0x01> "Аделаида"@ru . +<0x01> "Adélaïde"@fr . +<0x01> "Person" . +``` +See also [how language strings are handled in queries](/dgraph-overview/dql/query/language-support). + +### Types +Dgraph understands standard RDF types specified in RDF using the `^^` separator. For example +``` +<0x01> "32"^^ . +<0x01> "1985-06-08"^^ . +``` + +The supported [RDF datatypes](https://www.w3.org/TR/rdf11-concepts/#section-Datatypes) and the corresponding internal Dgraph type are as follows. + +| Storage Type | Dgraph type | +| ------------- | :------------: | +| <xs:string> | `string` | +| <xs:dateTime> | `dateTime` | +| <xs:date> | `datetime` | +| <xs:int> | `int` | +| <xs:integer> | `int` | +| <xs:boolean> | `bool` | +| <xs:double> | `float` | +| <xs:float> | `float` | +| <geo:geojson> | `geo` | +| <xs:password> | `password` | +| <http://www.w3.org/2001/XMLSchema#string> | `string` | +| <http://www.w3.org/2001/XMLSchema#dateTime> | `dateTime` | +| <http://www.w3.org/2001/XMLSchema#date> | `dateTime` | +| <http://www.w3.org/2001/XMLSchema#int> | `int` | +| <http://www.w3.org/2001/XMLSchema#positiveInteger> | `int` | +| <http://www.w3.org/2001/XMLSchema#integer> | `int` | +| <http://www.w3.org/2001/XMLSchema#boolean> | `bool` | +| <http://www.w3.org/2001/XMLSchema#double> | `float` | +| <http://www.w3.org/2001/XMLSchema#float> | `float` | + + +### Facets + +Dgraph is more expressive than RDF in that it allows properties to be stored on every relation. These properties are called Facets in Dgraph, and dgraph allows an extension to RDF where facet values are incuded in any triple. +#### Creating a list with facets + +The following set operation uses a sequence of RDF statements with additional facet information: +```sh +{ + set { + _:Julian "Julian" . + _:Julian "Jay-Jay" (kind="first") . + _:Julian "Jules" (kind="official") . + _:Julian "JB" (kind="CS-GO") . + } +} +``` + +```graphql +{ + q(func: eq(name,"Julian")){ + name + nickname @facets + } +} +``` +Result: +```JSON +{ + "data": { + "q": [ + { + "name": "Julian", + "nickname|kind": { + "0": "first", + "1": "official", + "2": "CS-GO" + }, + "nickname": [ + "Jay-Jay", + "Jules", + "JB" + ] + } + ] + } +} +``` +:::tip +Dgraph can automatically generate a reverse relation. If the user wants to run +queries in that direction, they would define the [reverse relationship](/dgraph-overview/dql-schema#reverse-predicates). +::: + +## N-quads format +While most RDF data uses only triples (with three parts) an optional fourth part is allowed. This fourth component in RDF is called a graph label, and in Dgraph it must be the UID of the namespace that the data should go into. + +## Processing RDF to comply with Dgraph syntax for subjects + +While it is valid RDF to specify subjects that are IRI strings, Dgraph requires a numeric UID or a blank node as the subject. If a string IRI is required, Dgraph support them via [xid properties](/dgraph-overview/upserts#external-ids). When importing RDF from another source that does not use numeric UID subjects, it will be required to replace arbitrary subject IRIs with blank node IRIs. + +Typically this is done simply by prepending "_:" to the start of the original IRI. So a triple such as: + +``` "somevalue"^^xs:string``` + +may be rewritten as + +```<_:http://abc.org/schema/foo#item1> "somevalue"^^xs:string``` + +Dgraph will create a consistent UID for all references to the uniquely-named blank node. To maintain this uniqueness over multiple data loads, use the [dgraph live](/dgraph-overview/dgraph-glossary#uid) utility with the xid option, or use specific UIDs such as the hash of the IRI in the source RDF directly. + diff --git a/docusaurus-docs/docs/dql/dql-schema.md b/docusaurus-docs/docs/dql/dql-schema.md new file mode 100644 index 00000000..057ce2e8 --- /dev/null +++ b/docusaurus-docs/docs/dql/dql-schema.md @@ -0,0 +1,433 @@ +--- +title: Schema +--- + +Here is an example of Dgraph types schema: +``` +name: string @index(term) . +release_date: datetime @index(year) . +revenue: float . +running_time: int . +starring: [uid] . +director: [uid] . +description: string . + +description_vector: float32vector @index(hnsw(metric:"cosine")) . + +type Person { + name +} + +type Film { + name + release_date + revenue + running_time + starring + director + description + description_vector +} +``` + +The schema contains information about [predicate types](#predicate-types) and [node types](#node-types). + + +A [predicate](/dgraph-overview/dgraph-glossary#predicate) is the smallest piece of information about an object. A predicate can hold a literal value or a relation to another entity : +- when we store that an entity name is "Alice". The predicate is ``name`` and predicate value is the string "Alice". +- when we store that Alice knows Bob, we may use a predicate ``knows`` with the node representing Alice. The value of this predicate would be the [uid](/dgraph-overview/dgraph-glossary#uid) of the node representing Bob. In that case, ``knows`` is a [relationship](#relationships). + + +Dgraph maintains a list of all predicates names and their type in the **Dgraph types schema**. + + + +## Predicates declaration + +The Dgraph Cluster **schema mode** defines if the Dgraph types must be declared before allowing mutations or not: +- In ``strict`` mode, you must declare the predicates before you can run a mutation using those predicates. +- In ``flexible`` mode (which is the default behavior), you can run a mutation without declaring the predicate in the DQL Schema. + + +:::note +When you deploy a [GraphQL API schema](/dgraph-overview/graphql), Dgraph generates all the underlying Dgraph types. + +Refer to [GraphQL and DQL schemas](/dgraph-overview/graphql-dql-schema) in the [GraphQL - DQL interoperability](/graphql-dql/) section for use cases using both approaches. +::: + +For example, you can run the following mutation (using the [RDF](/dgraph-overview/dql/dql-rdf) notation): +```graphql +{ + set { + <_:jedi1> "Luke Skywalker" . + <_:leia> "Leia" . + <_:sith1> "Anakin" (aka="Darth Vador",villain=true). + <_:sith1> <_:jedi1> . + <_:sith1> <_:leia> . + } +} +``` +In ``strict`` mode, the mutation will return an error if the predicates are not present in the Dgraph types schema. + +In ``flexible`` mode, Dgraph will execute the mutation and adds the predicates “character_name” and “has_for_child” to the Dgraph types. + + +## Predicate types + +All predicate types used in a Dgraph cluster are declared in the Dgraph schema. + +The Dgraph types schema is the way to specify predicates types and cardinality (if it is a list or not), to instruct Dgraph how to index predicates, and to declare if Dgraph needs to maintain different languages for a string predicate. + +A predicate type is either created +- by altering the Dgraph types schema (See [Update Dgraph types](/howto/update-dgraph-types/) ) +or +- during a mutation, if the Dgraph Cluster **schema mode** is ``flexible`` and the predicate used is not yet declared. + + If a predicate type isn't declared in the schema, then the type is inferred from the first mutation and added to the schema. + + If the mutation is using [RDF format](/dgraph-overview/dql/dql-rdf) with an RDF type, Dgraph uses this information to infer the predicate type. + + If no type can be inferred, the predicate type is set to `default`. + +A predicate can hold a literal value ([Scalar type](#scalar-types)) or a relation to another entity ([UID type](#uid-type)). + +### Scalar Types + +For all triples with a predicate of scalar types the object is a literal. + +| Dgraph Type | Go type | +| ------------|:--------| +| `default` | string | +| `int` | int64 | +| `float` | float | +| `string` | string | +| `bool` | bool | +| `dateTime` | time.Time (RFC3339 format [Optional timezone] eg: 2006-01-02T15:04:05.999999999+10:00 or 2006-01-02T15:04:05.999999999) | +| `geo` | [go-geom](https://github.com/twpayne/go-geom) | +| `password` | string (encrypted) | + + +:::noteDgraph supports date and time formats for `dateTime` scalar type only if they +are RFC 3339 compatible which is different from ISO 8601(as defined in the RDF spec). You should +convert your values to RFC 3339 format before sending them to Dgraph.::: + +### Vector Type + +The `float32vector` type denotes a vector of floating point numbers, i.e an ordered array of float32. A node type can contain more than one vector predicate. + +Vectors are normaly used to store embeddings obtained from other information through an ML model. When a `float32vector` is [indexed](/dql/predicate-indexing/), the DQL [similar_to](/dgraph-overview/functions#vector-similarity-search) function can be used for similarity search. + + + + +### UID Type + +The `uid` type denotes a relationship; internally each node is identified by it's UID which is a `uint64`. + + +### Predicate name rules + +Any alphanumeric combination of a predicate name is permitted. +Dgraph also supports [Internationalized Resource Identifiers](https://en.wikipedia.org/wiki/Internationalized_Resource_Identifier) (IRIs). +You can read more in [Predicates i18n](#predicates-i18n). + +:::noteYou can't define type names starting with `dgraph.`, it is reserved as the +namespace for Dgraph's internal types/predicates. For example, defining `dgraph.Student` as a +type is invalid.::: + +### Special characters + +Following characters are accepted if prefixed/suffixed with alphanumeric characters. + +``` +][&*()_-+=!#$% +``` + +*Note: You are not restricted to use @ suffix, but the suffix character gets ignored.* + + +The special characters below are not accepted. + +``` +^}|{`\~ +``` + + +### Predicates i18n +Dgraph supports [Internationalized Resource Identifiers](https://en.wikipedia.org/wiki/Internationalized_Resource_Identifier) (IRIs) for predicate names and values. + +If your predicate is a URI or has language-specific characters, then enclose +it with angle brackets `<>` when executing the schema mutation. + +Schema syntax: +``` +<职业>: string @index(exact) . +<年龄>: int @index(int) . +<地点>: geo @index(geo) . +<公司>: string . +``` + +This syntax allows for internationalized predicate names, but full-text indexing still defaults to English. +To use the right tokenizer for your language, you need to use the `@lang` directive and enter values using your +language tag. + +Schema: +``` +<公司>: string @index(fulltext) @lang . +``` +Mutation: +``` +{ + set { + _:a <公司> "Dgraph Labs Inc"@en . + _:b <公司> "夏新科技有限责任公司"@zh . + _:a "Company" . + } +} +``` +Query: +``` +{ + q(func: alloftext(<公司>@zh, "夏新科技有限责任公司")) { + uid + <公司>@. + } +} +``` + +### Unique Directive + + +The unique constraint enables us to guarantee that all values of a predicate are distinct. To implement the @unique +directive for a predicate, you should define it in the schema and create an index on the predicate based on its type. +If a user does not add the proper index to the predicate, then Dgraph will return an error. + +Dgraph will automatically include the @upsert directive for the predicate. To enforce this uniqueness constraint, +a predicate must have an index, as explained below. Currently, we only support the @unique directive on newly created +predicates with the data types string and integer. + +| Data Type | Index | +| -------- | ------- | +| string | hash, exact | +| int | int | + +This is how you define the unique directive for a predicate. + +``` +email: string @unique @index(exact) . +``` + +### Upsert directive + + +To use [upsert operations](/dgraph-overview/dql/upserts) on a predicate, specify the `@upsert` directive in the schema. + +When committing transactions involving predicates with the `@upsert` directive, Dgraph checks index keys for conflicts, helping to enforce uniqueness constraints when running concurrent upserts. + +This is how you specify the upsert directive for a predicate. +``` +email: string @index(exact) @upsert . +``` + +### Noconflict directive + +The NoConflict directive prevents conflict detection at the predicate level. This is an experimental feature and not a +recommended directive but exists to help avoid conflicts for predicates that don't have high +correctness requirements. This can cause data loss, especially when used for predicates with count +index. + +This is how you specify the `@noconflict` directive for a predicate. +``` +email: string @index(exact) @noconflict . +``` + +### Predicate types from RDF Types + +As well as implying a schema type for a first mutation, an RDF type can override a schema type for storage. +Dgraph supports a number of [RDF](/dgraph-overview/dql/dql-rdf) types. + +If a predicate has a schema type and a mutation has an RDF type with a different underlying Dgraph type, the convertibility to schema type is checked, and an error is thrown if they are incompatible, but the value is stored in the RDF type's corresponding Dgraph type. Query results are always returned in schema type. + +For example, if no schema is set for the `age` predicate. Given the mutation +``` +{ + set { + _:a "15"^^ . + _:b "13" . + _:c "14"^^ . + _:d "14.5"^^ . + _:e "14.5" . + } +} +``` +Dgraph: + +* sets the schema type to `int`, as implied by the first triple, +* converts `"13"` to `int` on storage, +* checks `"14"` can be converted to `int`, but stores as `string`, +* throws an error for the remaining two triples, because `"14.5"` can't be converted to `int`. + +### Password type + +A password for an entity is set with setting the schema for the attribute to be of type `password`. Passwords cannot be queried directly, only checked for a match using the `checkpwd` function. +The passwords are encrypted using [bcrypt](https://en.wikipedia.org/wiki/Bcrypt). + +For example: to set a password, first set schema, then the password: +``` +pass: password . +``` + +``` +{ + set { + <0x123> "Password Example" . + <0x123> "ThePassword" . + } +} +``` + +to check a password: +``` +{ + check(func: uid(0x123)) { + name + checkpwd(pass, "ThePassword") + } +} +``` + +output: +``` +{ + "data": { + "check": [ + { + "name": "Password Example", + "checkpwd(pass)": true + } + ] + } +} +``` + +You can also use alias with password type. + +``` +{ + check(func: uid(0x123)) { + name + secret: checkpwd(pass, "ThePassword") + } +} +``` + +output: +``` +{ + "data": { + "check": [ + { + "name": "Password Example", + "secret": true + } + ] + } +} +``` +## Predicate indexing + +The schema is also used to set [predicates indexes](/dql/predicate-indexing/) which are required to apply [filtering functions](/dgraph-overview/dql/query/functions) in DQL queries. + +## Node types +Node types are declared along with [predicate types](#predicate-types) in the Dgraph types schema. + +Node types are optional. + +### Node type definition + +Node type declares the list of predicates that could be present in a Node of this type. Node type are defined using the following syntax: + +``` +name: string @index(term) . +dob: datetime . +home_address: string . +friends: [uid] . + +type Student { + name + dob + home_address + friends +} +``` + +:::note All predicates used in a type must be defined in the Dgraph types schema itself.::: + +:::note Different node types can use the same predicates.::: + +### Reverse predicates +Reverse predicates can also be included inside a type definition. For example, the following schema, declares that a node of type Child may have a ``~children`` inverse relationhsip. . + +``` +children: [uid] @reverse . +name: string @index(term) . +type Parent { + name + children +} +type Child { + name + <~children> +} +``` +:::tip +Predicates with special caracter are enclosed with angle brackets `<>` +::: + +### Node type attribution +A node is given a type by setting the ``dgraph.type`` predicate value to the type name. + +A node may be given many types, ``dgraph.type`` is an array of strings. + +:::note DQL types is only declarative are not enforced by Dgraph. In DQL, +- you can always add node without a ``dgraph.type`` predicate, that is without a type. +- you can always add a predicate to a node that is not declared in the predicate list of the node type. +::: + +Here's an example of mutation to set the types of a node: + +``` +{ + set { + _:a "Garfield" . + _:a "Pet" . + _:a "Animal" . + } +} +``` + +### When to use node types + +Node types are optional, but there are two use cases where actually knowing the list of potential predicates of a node is necessary: +- deleting all the information about a node: this is the `delete { * * . }` mutation. +- retrieving all the predicates of a given node: this is done using the [expand(_all_)](/dgraph-overview/dql/query/expand-predicates) feature of DQL. + +The Dgraph node types are used in those 2 use cases: when executing the `delete all predicates` mutation or the `expand all` query, Dgraph will check if the node has a ``dgraph.type`` predicate. If so, the engine is using the declared type to find the list of predicates and apply the delete or the expand on all of them. + +When nodes have a type (i.e have a `dgraph.type` predicate), then you can use the function [type()](/dgraph-overview/functions#type) in queries. + +:::warning +`delete { * * . }` will only delete the predicates declared in the type. You may have added other predicates by running DQL mutation on this node: the node may still exist after the operation if it holds predicates not declared in the node type. `<>` +::: + + + + + + + + + + + + diff --git a/docusaurus-docs/docs/dql/index.md b/docusaurus-docs/docs/dql/index.md new file mode 100644 index 00000000..b714a7e9 --- /dev/null +++ b/docusaurus-docs/docs/dql/index.md @@ -0,0 +1,7 @@ +--- +title: Query Language +description: Dgraph Query Language (DQL) is Dgraph's proprietary language to add, modify, delete and fetch data. +--- + +Dgraph Query Language (DQL) is Dgraph’s proprietary language to add, modify, delete and fetch data. + diff --git a/docusaurus-docs/docs/dql/indexing-custom-tokenizers.md b/docusaurus-docs/docs/dql/indexing-custom-tokenizers.md new file mode 100644 index 00000000..a3b3db38 --- /dev/null +++ b/docusaurus-docs/docs/dql/indexing-custom-tokenizers.md @@ -0,0 +1,568 @@ +--- +title: Custom Tokenizers +--- + +Dgraph comes with a large toolkit of builtin indexes, but sometimes for niche +use cases they're not always enough. + +Dgraph allows you to implement custom tokenizers via a plugin system in order +to fill the gaps. + +## Caveats + +The plugin system uses Go's [`pkg/plugin`](https://golang.org/pkg/plugin/). +This brings some restrictions to how plugins can be used. + +- Plugins must be written in Go. + +- As of Go 1.9, `pkg/plugin` only works on Linux. Therefore, plugins will only + work on Dgraph instances deployed in a Linux environment. + +- The version of Go used to compile the plugin should be the same as the version + of Go used to compile Dgraph itself. Dgraph always uses the latest version of +Go (and so should you!). + +## Implementing a plugin + +:::note +You should consider Go's [plugin](https://golang.org/pkg/plugin/) documentation +to be supplementary to the documentation provided here. +::: + +Plugins are implemented as their own main package. They must export a +particular symbol that allows Dgraph to hook into the custom logic the plugin +provides. + +The plugin must export a symbol named `Tokenizer`. The type of the symbol must +be `func() interface{}`. When the function is called the result returned should +be a value that implements the following interface: + +``` +type PluginTokenizer interface { + // Name is the name of the tokenizer. It should be unique among all + // builtin tokenizers and other custom tokenizers. It identifies the + // tokenizer when an index is set in the schema and when search/filter + // is used in queries. + Name() string + + // Identifier is a byte that uniquely identifiers the tokenizer. + // Bytes in the range 0x80 to 0xff (inclusive) are reserved for + // custom tokenizers. + Identifier() byte + + // Type is a string representing the type of data that is to be + // tokenized. This must match the schema type of the predicate + // being indexed. Allowable values are shown in the table below. + Type() string + + // Tokens should implement the tokenization logic. The input is + // the value to be tokenized, and will always have a concrete type + // corresponding to Type(). The return value should be a list of + // the tokens generated. + Tokens(interface{}) ([]string, error) +} +``` + +The return value of `Type()` corresponds to the concrete input type of +`Tokens(interface{})` in the following way: + + `Type()` return value | `Tokens(interface{})` input type +-----------------------|---------------------------------- + `"int"` | `int64` + `"float"` | `float64` + `"string"` | `string` + `"bool"` | `bool` + `"datetime"` | `time.Time` + +## Building the plugin + +The plugin has to be built using the `plugin` build mode so that an `.so` file +is produced instead of a regular executable. For example: + +```sh +go build -buildmode=plugin -o myplugin.so ~/go/src/myplugin/main.go +``` + +## Running Dgraph with plugins + +When starting Dgraph, use the `--custom_tokenizers` flag to tell Dgraph which +tokenizers to load. It accepts a comma separated list of plugins. E.g. + +```sh +dgraph ...other-args... --custom_tokenizers=plugin1.so,plugin2.so +``` + +:::note +Plugin validation is performed on startup. If a problem is detected, Dgraph +will refuse to initialize. +::: + +## Adding the index to the schema + +To use a tokenization plugin, an index has to be created in the schema. + +The syntax is the same as adding any built-in index. To add an custom index +using a tokenizer plugin named `foo` to a `string` predicate named +`my_predicate`, use the following in the schema: + +```sh +my_predicate: string @index(foo) . +``` + +## Using the index in queries + +There are two functions that can use custom indexes: + + Mode | Behavior +--------|------- + `anyof` | Returns nodes that match on *any* of the tokens generated + `allof` | Returns nodes that match on *all* of the tokens generated + +The functions can be used either at the query root or in filters. + +There behavior here an analogous to `anyofterms`/`allofterms` and +`anyoftext`/`alloftext`. + +## Examples + +The following examples should make the process of writing a tokenization plugin +more concrete. + +### Unicode Characters + +This example shows the type of tokenization that is similar to term +tokenization of full-text search. Instead of being broken down into terms or +stem words, the text is instead broken down into its constituent unicode +codepoints (in Go terminology these are called *runes*). + +:::note +This tokenizer would create a very large index that would be expensive to +manage and store. That's one of the reasons that text indexing usually occurs +at a higher level; stem words for full-text search or terms for term search. +::: + +The implementation of the plugin looks like this: + +```go +package main + +import "encoding/binary" + +func Tokenizer() interface{} { return RuneTokenizer{} } + +type RuneTokenizer struct{} + +func (RuneTokenizer) Name() string { return "rune" } +func (RuneTokenizer) Type() string { return "string" } +func (RuneTokenizer) Identifier() byte { return 0xfd } + +func (t RuneTokenizer) Tokens(value interface{}) ([]string, error) { + var toks []string + for _, r := range value.(string) { + var buf [binary.MaxVarintLen32]byte + n := binary.PutVarint(buf[:], int64(r)) + tok := string(buf[:n]) + toks = append(toks, tok) + } + return toks, nil +} +``` + +**Hints and tips:** + +- Inside `Tokens`, you can assume that `value` will have concrete type + corresponding to that specified by `Type()`. It's safe to do a type +assertion. + +- Even though the return value is `[]string`, you can always store non-unicode + data inside the string. See [this blogpost](https://blog.golang.org/strings) +for some interesting background how string are implemented in Go and why they +can be used to store non-textual data. By storing arbitrary data in the string, +you can make the index more compact. In this case, varints are stored in the +return values. + +Setting up the indexing and adding data: +``` +name: string @index(rune) . +``` + + +``` +{ + set{ + _:ad "Adam" . + _:ad "Person" . + _:aa "Aaron" . + _:aa "Person" . + _:am "Amy" . + _:am "Person" . + _:ro "Ronald" . + _:ro "Person" . + } +} +``` +Now queries can be performed. + +The only person that has all of the runes `A` and `n` in their `name` is Aaron: +``` +{ + q(func: allof(name, rune, "An")) { + name + } +} +=> +{ + "data": { + "q": [ + { "name": "Aaron" } + ] + } +} +``` +But there are multiple people who have both of the runes `A` and `m`: +``` +{ + q(func: allof(name, rune, "Am")) { + name + } +} +=> +{ + "data": { + "q": [ + { "name": "Amy" }, + { "name": "Adam" } + ] + } +} +``` +Case is taken into account, so if you search for all names containing `"ron"`, +you would find `"Aaron"`, but not `"Ronald"`. But if you were to search for +`"no"`, you would match both `"Aaron"` and `"Ronald"`. The order of the runes in +the strings doesn't matter. + +It's possible to search for people that have *any* of the supplied runes in +their names (rather than *all* of the supplied runes). To do this, use `anyof` +instead of `allof`: +``` +{ + q(func: anyof(name, rune, "mr")) { + name + } +} +=> +{ + "data": { + "q": [ + { "name": "Adam" }, + { "name": "Aaron" }, + { "name": "Amy" } + ] + } +} +``` +`"Ronald"` doesn't contain `m` or `r`, so isn't found by the search. + +:::note +Understanding what's going on under the hood can help you intuitively +understand how `Tokens` method should be implemented. + +When Dgraph sees new edges that are to be indexed by your tokenizer, it +will tokenize the value. The resultant tokens are used as keys for posting +lists. The edge subject is then added to the posting list for each token. + +When a query root search occurs, the search value is tokenized. The result of +the search is all of the nodes in the union or intersection of the corresponding +posting lists (depending on whether `anyof` or `allof` was used). +::: + +### CIDR Range + +Tokenizers don't always have to be about splitting text up into its constituent +parts. This example indexes [IP addresses into their CIDR +ranges](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). This +allows you to search for all IP addresses that fall into a particular CIDR +range. + +The plugin code is more complicated than the rune example. The input is an IP +address stored as a string, e.g. `"100.55.22.11/32"`. The output are the CIDR +ranges that the IP address could possibly fall into. There could be up to 32 +different outputs (`"100.55.22.11/32"` does indeed have 32 possible ranges, one +for each mask size). + +```go +package main + +import "net" + +func Tokenizer() interface{} { return CIDRTokenizer{} } + +type CIDRTokenizer struct{} + +func (CIDRTokenizer) Name() string { return "cidr" } +func (CIDRTokenizer) Type() string { return "string" } +func (CIDRTokenizer) Identifier() byte { return 0xff } + +func (t CIDRTokenizer) Tokens(value interface{}) ([]string, error) { + _, ipnet, err := net.ParseCIDR(value.(string)) + if err != nil { + return nil, err + } + ones, bits := ipnet.Mask.Size() + var toks []string + for i := ones; i >= 1; i-- { + m := net.CIDRMask(i, bits) + tok := net.IPNet{ + IP: ipnet.IP.Mask(m), + Mask: m, + } + toks = append(toks, tok.String()) + } + return toks, nil +} +``` +An example of using the tokenizer: + +Setting up the indexing and adding data: +``` +ip: string @index(cidr) . + +``` + +``` +{ + set{ + _:a "100.55.22.11/32" . + _:b "100.33.81.19/32" . + _:c "100.49.21.25/32" . + _:d "101.0.0.5/32" . + _:e "100.176.2.1/32" . + } +} +``` +``` +{ + q(func: allof(ip, cidr, "100.48.0.0/12")) { + ip + } +} +=> +{ + "data": { + "q": [ + { "ip": "100.55.22.11/32" }, + { "ip": "100.49.21.25/32" } + ] + } +} +``` +The CIDR ranges of `100.55.22.11/32` and `100.49.21.25/32` are both +`100.48.0.0/12`. The other IP addresses in the database aren't included in the +search result, since they have different CIDR ranges for 12 bit masks +(`100.32.0.0/12`, `101.0.0.0/12`, `100.154.0.0/12` for `100.33.81.19/32`, +`101.0.0.5/32`, and `100.176.2.1/32` respectively). + +Note that we're using `allof` instead of `anyof`. Only `allof` will work +correctly with this index. Remember that the tokenizer generates all possible +CIDR ranges for an IP address. If we were to use `anyof` then the search result +would include all IP addresses under the 1 bit mask (in this case, `0.0.0.0/1`, +which would match all IPs in this dataset). + +### Anagram + +Tokenizers don't always have to return multiple tokens. If you just want to +index data into groups, have the tokenizer just return an identifying member of +that group. + +In this example, we want to find groups of words that are +[anagrams](https://en.wikipedia.org/wiki/Anagram) of each +other. + +A token to correspond to a group of anagrams could just be the letters in the +anagram in sorted order, as implemented below: + +```go +package main + +import "sort" + +func Tokenizer() interface{} { return AnagramTokenizer{} } + +type AnagramTokenizer struct{} + +func (AnagramTokenizer) Name() string { return "anagram" } +func (AnagramTokenizer) Type() string { return "string" } +func (AnagramTokenizer) Identifier() byte { return 0xfc } + +func (t AnagramTokenizer) Tokens(value interface{}) ([]string, error) { + b := []byte(value.(string)) + sort.Slice(b, func(i, j int) bool { return b[i] < b[j] }) + return []string{string(b)}, nil +} +``` +In action: + +Setting up the indexing and adding data: +``` +word: string @index(anagram) . +``` + +``` +{ + set{ + _:1 "airmen" . + _:2 "marine" . + _:3 "beat" . + _:4 "beta" . + _:5 "race" . + _:6 "care" . + } +} +``` +``` +{ + q(func: allof(word, anagram, "remain")) { + word + } +} +=> +{ + "data": { + "q": [ + { "word": "airmen" }, + { "word": "marine" } + ] + } +} +``` + +Since a single token is only ever generated, it doesn't matter if `anyof` or +`allof` is used. The result will always be the same. + +### Integer prime factors + +All of the custom tokenizers shown previously have worked with strings. +However, other data types can be used as well. This example is contrived, but +nonetheless shows some advanced usages of custom tokenizers. + +The tokenizer creates a token for each prime factor in the input. + +``` +package main + +import ( + "encoding/binary" + "fmt" +) + +func Tokenizer() interface{} { return FactorTokenizer{} } + +type FactorTokenizer struct{} + +func (FactorTokenizer) Name() string { return "factor" } +func (FactorTokenizer) Type() string { return "int" } +func (FactorTokenizer) Identifier() byte { return 0xfe } + +func (FactorTokenizer) Tokens(value interface{}) ([]string, error) { + x := value.(int64) + if x <= 1 { + return nil, fmt.Errorf("Cannot factor int <= 1: %d", x) + } + var toks []string + for p := int64(2); x > 1; p++ { + if x%p == 0 { + toks = append(toks, encodeInt(p)) + for x%p == 0 { + x /= p + } + } + } + return toks, nil + +} + +func encodeInt(x int64) string { + var buf [binary.MaxVarintLen64]byte + n := binary.PutVarint(buf[:], x) + return string(buf[:n]) +} +``` +:::note +Notice that the return of `Type()` is `"int"`, corresponding to the concrete +type of the input to `Tokens` (which is `int64`). +::: + +This allows you do things like search for all numbers that share prime +factors with a particular number. + +In particular, we search for numbers that contain any of the prime factors of +15, i.e. any numbers that are divisible by either 3 or 5. + +Setting up the indexing and adding data: +``` +num: int @index(factor) . +``` + +``` +{ + set{ + _:2 "2"^^ . + _:3 "3"^^ . + _:4 "4"^^ . + _:5 "5"^^ . + _:6 "6"^^ . + _:7 "7"^^ . + _:8 "8"^^ . + _:9 "9"^^ . + _:10 "10"^^ . + _:11 "11"^^ . + _:12 "12"^^ . + _:13 "13"^^ . + _:14 "14"^^ . + _:15 "15"^^ . + _:16 "16"^^ . + _:17 "17"^^ . + _:18 "18"^^ . + _:19 "19"^^ . + _:20 "20"^^ . + _:21 "21"^^ . + _:22 "22"^^ . + _:23 "23"^^ . + _:24 "24"^^ . + _:25 "25"^^ . + _:26 "26"^^ . + _:27 "27"^^ . + _:28 "28"^^ . + _:29 "29"^^ . + _:30 "30"^^ . + } +} +``` +``` +{ + q(func: anyof(num, factor, 15)) { + num + } +} +=> +{ + "data": { + "q": [ + { "num": 3 }, + { "num": 5 }, + { "num": 6 }, + { "num": 9 }, + { "num": 10 }, + { "num": 12 }, + { "num": 15 }, + { "num": 18 } + { "num": 20 }, + { "num": 21 }, + { "num": 25 }, + { "num": 24 }, + { "num": 27 }, + { "num": 30 }, + ] + } +} +``` diff --git a/docusaurus-docs/docs/dql/json-mutation-format.md b/docusaurus-docs/docs/dql/json-mutation-format.md new file mode 100644 index 00000000..e05aa99e --- /dev/null +++ b/docusaurus-docs/docs/dql/json-mutation-format.md @@ -0,0 +1,460 @@ +--- +title: JSON Data Format +--- +import Highlight from '@site/src/components/Highlight'; + + +Dgraph supports [Mutations](/dgraph-overview/dql/dql-mutation) in JSON or [RDF](/dgraph-overview/dql/dql-rdf) format. +When using JSON format Dgraph creates nodes and relationships from the JSON structure and assigns UIDs to nodes. + +## Quick Start Example + +If you followed the [Quick Start guide](../quick-start), you added data to your graph using RDF format. The same data can also be added using JSON format. Here's an example of how to create the movie data from the quick start using JSON: + +```dql +{ + "set": [ + { + "name": "Star Wars: Episode IV - A New Hope", + "release_date": "1977-05-25", + "director": { + "name": "George Lucas", + "dgraph.type": "Person" + }, + "starring": [ + { + "name": "Luke Skywalker" + }, + { + "name": "Princess Leia" + }, + { + "name": "Han Solo" + } + ] + }, + { + "name": "Star Trek: The Motion Picture", + "release_date": "1979-12-07" + } + ] +} +``` + +The sample JSON data is an array of two movies with some attributes. These are stored as [nodes](../dgraph-glossary#node) in Dgraph. + +The "Star Wars" movie has a `director` field which is a JSON object and a `starring` field which is an array of JSON objects. Each object is also stored as a node in Dgraph. The `director` and `starring` are stored as [relationships](../dgraph-glossary#relationship). + +## Specifying node UIDs + +When you create nodes using JSON mutations, Dgraph automatically assigns a [UID](../dgraph-glossary#uid) to each new node. Dgraph also generates an internal identifier during the transaction, which is then converted to the final UID. + +For example, this mutation creates a single node: + +```dql + { + "set": [ + { + "name": "diggy", + "dgraph.type": "Mascot" + } + ] + } +``` + +Dgraph responds with: +```json +{ + "data": { + "code": "Success", + "message": "Done", + "queries": null, + "uids": { + "dg.3162278161.22055": "0xfffd8d72745f0650" + } + } +``` + +Meaning that Dgraph has created one node from the JSON. It has used the identifier `dg.3162278161.22055` during the transaction. And the final UID value for this node is `0xfffd8d72745f0650`. + +You can control the identifier name by specifying a `uid` field in your JSON data and using the notation: +``` "uid" : "_:" ``` + + +In this mutation, there are two JSON objects and because they are referring to the same identifier, Dgraph creates only one node: + +```dql + { + "set": [ + { + "uid": "_:diggy", + "name": "diggy", + "dgraph.type": "Mascot" + }, + { + "uid": "_:diggy", + "specie": "badger" + } + ] + } +``` + +When you run this mutation, you can see that Dgraph returns the UID of the node that was created with the `diggy` identifier: + + +{`{ + "data": { + "code": "Success", + "message": "Done", + "queries": null, + "uids": { + "diggy": "0xfffd8d72745f0691" + } + } +}`} + + +Note that the `specie` field is added to the node already created with `name` and `dgraph.type` information. + +### Referencing existing nodes + +You can use the `"uid"` field to reference an existing node. To do so, you must specify the UID value of the node. + + +For example: +```dql + { + "set": [ + { + "uid": "0xfffd8d72745f0650", + "specie": "badger" + } + ] + } +``` + +Adds the `specie` information to the node that was created earlier. + + +## Language support + +To set a string value for a specific lnguage, append the language tag to the field name. +In case, `specie` predicate has the @lang directive, the JSON mutation +```dql + { + "set": [ + { + "uid": "_:diggy", + "name": "diggy", + "dgraph.type": "Mascot", + "specie@en" : "badger", + "specie@fr" : "blaireau" + } + ] + } +``` +Dgraph sets the `specie` string predicate in English and in French. + + +## Geolocation support + +Geo-location data must be specified using keys `type` and `coordinates` in the JSON document. +The supported types are `Point`, `Polygon`, or `MultiPolygon` . + +```dql + { + "set": [ + { + "name": "diggy", + "dgraph.type": "Mascot", + "home" : { + "type": "Point", + "coordinates": [-122.475537, 37.769229 ] + } + } + ] + } +``` + + + + + +## Relationships + +Relationships are simply created from the nested structure of JSON. + +For example: +```dql + { + "set": [ + { + "uid": "_:diggy", + "name": "diggy", + "dgraph.type": "Mascot", + "food" : [ + { + "uid":"_:f1", + "name": "earthworms" + }, + { + "uid":"_:f2", + "name": "apples" + }] + } + ] + } + +``` + +This result in the creation of three nodes and the `food` predicate as a relationship. + + +{`{ + "data": { + "code": "Success", + "message": "Done", + "queries": null, + "uids": { + "diggy": "0xfffd8d72745f06d7", + "f1": "0xfffd8d72745f06d8", + "f2": "0xfffd8d72745f06d9" + } + ... +}`} + + + + +You can use references to existing nodes at any level of your nested JSON. + + +## Deleting literal values + +To delete node predicates, specify the UID of the node you are changing and set +the predicates to delete to the JSON value `null`. + +For example, to remove the predicate `name` from node `0xfffd8d72745f0691` : +```dql +{ + "delete": [ + { + "uid": "0xfffd8d72745f0691", + "name": null + } + ] +} +``` + +## Deleting relationship + +A relationship can be defined with a cardinality of 1 or many (list). +Setting a relationship to `null` removes all the relationships. + +```JSON +{ + "uid": "0xfffd8d72745f06d7", + "food": null +} +``` + + +To delete a single relationship in a list, you must specify the target node of the relationship. + +```dql +{ + "delete": [ + { + "uid": "0xfffd8d72745f06d7", + "food": { + "uid": "0xfffd8d72745f06d9" + } + } + ] +} + +``` + +deletes only one `food` relationship. + + +To delete all predicates of a given node: +- make sure the node has a `dgraph.type` predicate +- the type is defined in the [Dgraph types schema](/dgraph-overview/dql/dql-schema) +- run a delete mutation specifying only the uid field + + +```JSON +{ + "delete": [ + { + "uid": "0x123" + } + ] +} +``` +## Handling arrays + +To create a predicate as a list of string: + +```JSON +{ + "set": [ + { + "testList": [ + "Grape", + "Apple", + "Strawberry", + "Banana", + "watermelon" + ] + } + ] +} +``` + +For example, if `0x06` is the UID of the node created. + +To remove one value from the list: + +```JSON +{ + "delete": { + "uid": "0x6", #UID of the list. + "testList": "Apple" + } +} +``` + +To remove multiple multiple values: +```JSON +{ + "delete": { + "uid": "0x6", + "testList": [ + "Strawberry", + "Banana", + "watermelon" + ] + } +} +``` + +To add a value: + +```JSON +{ + "uid": "0x6", #UID of the list. + "testList": "Pineapple" +} +``` + +## Adding Facets + +Facets can be created by using the `|` character to separate the predicate +and facet key in a JSON object field name. This is the same encoding schema +used to show facets in query results. E.g. +```JSON +{ + "name": "Carol", + "name|initial": "C", + "dgraph.type": "Person", + "friend": { + "name": "Daryl", + "friend|close": "yes", + "dgraph.type": "Person" + } +} +``` + +Facets do not contain type information but Dgraph will try to guess a type from +the input. If the value of a facet can be parsed to a number, it will be +converted to either a float or an int. If it can be parsed as a Boolean, it will +be stored as a Boolean. If the value is a string, it will be stored as a +datetime if the string matches one of the time formats that Dgraph recognizes +(YYYY, MM-YYYY, DD-MM-YYYY, RFC339, etc.) and as a double-quoted string +otherwise. If you do not want to risk the chance of your facet data being +misinterpreted as a time value, it is best to store numeric data as either an +int or a float. + +## Deleting Facets + +To delete a `Facet`, overwrite it. When you run a mutation for the same entity without a `Facet`, the existing `Facet` is deleted automatically. + + +## Facets in List +Schema: +```sh +: string @index(exact). +: [string] . +``` +To create a List-type predicate you need to specify all value in a single list. Facets for all +predicate values should be specified together. It is done in map format with index of predicate +values inside list being map key and their respective facets value as map values. Predicate values +which does not have facets values will be missing from facets map. E.g. +```JSON +{ + "set": [ + { + "uid": "_:Julian", + "name": "Julian", + "nickname": ["Jay-Jay", "Jules", "JB"], + "nickname|kind": { + "0": "first", + "1": "official", + "2": "CS-GO" + } + } + ] +} +``` +Above you see that we have three values ​​to enter the list with their respective facets. +You can run this query to check the list with facets: +```graphql +{ + q(func: eq(name,"Julian")) { + uid + nickname @facets + } +} +``` +Later, if you want to add more values ​​with facets, just do the same procedure, but this time instead of using Blank-node you must use the actual node's UID. +```JSON +{ + "set": [ + { + "uid": "0x3", + "nickname|kind": "Internet", + "nickname": "@JJ" + } + ] +} +``` +And the final result is: +```JSON +{ + "data": { + "q": [ + { + "uid": "0x3", + "nickname|kind": { + "0": "first", + "1": "Internet", + "2": "official", + "3": "CS-GO" + }, + "nickname": [ + "Jay-Jay", + "@JJ", + "Jules", + "JB" + ] + } + ] + } +} +``` + +## Reserved values + +The string values `uid(...)`, `val(...)` are not accepted. diff --git a/docusaurus-docs/docs/dql/predicate-indexing.md b/docusaurus-docs/docs/dql/predicate-indexing.md new file mode 100644 index 00000000..80be76b3 --- /dev/null +++ b/docusaurus-docs/docs/dql/predicate-indexing.md @@ -0,0 +1,247 @@ +--- +title: Indexes +--- + +Filtering on a predicate by applying a [function](/dgraph-overview/dql/query/functions) requires an index. + +Indices are defined in the [Dgraph types schema](dql/dql-schema) using `@index` directive. + +Here are some examples: +``` +name: string @index(term) . +release_date: datetime @index(year) . +description_vector: float32vector @index(hnsw(metric:"cosine")) . +``` + +When filtering by applying a function, Dgraph uses the index to make the search through a potentially large dataset efficient. + +All scalar types can be indexed. + +Types `int`, `float`, `bool` and `geo` have only a default index each: with tokenizers named `int`, `float`, `bool` and `geo`. + +Types `string` and `dateTime` have a number of indices. + +Type `float32vector` supports `hnsw` index. + +## String Indices +The indices available for strings are as follows. + +| Dgraph function | Required index / tokenizer | Notes | +| :----------------------- | :------------ | :--- | +| `eq` | `hash`, `exact`, `term`, or `fulltext` | The most performant index for `eq` is `hash`. Only use `term` or `fulltext` if you also require term or full-text search. If you're already using `term`, there is no need to use `hash` or `exact` as well. | +| `le`, `ge`, `lt`, `gt` | `exact` | Allows faster sorting. | +| `allofterms`, `anyofterms` | `term` | Allows searching by a term in a sentence. | +| `alloftext`, `anyoftext` | `fulltext` | Matching with language specific stemming and stopwords. | +| `regexp` | `trigram` | Regular expression matching. Can also be used for equality checking. | + +:::warning +Incorrect index choice can impose performance penalties and an increased +transaction conflict rate. Use only the minimum number of and simplest indexes +that your application needs. +::: + +## Vector Indices + +The indices available for `float32vector` are as follows. + +| Dgraph function | Required index / tokenizer | Notes | +| :----------------------- | :------------ | :--- | +| `similar_to` | `hnsw` | HNSW index supports parameters `metric` and `exponent`. | + + + +`hnsw` (**Hierarchical Navigable Small World**) index supports the following parameters +- metric : indicate the metric to use to compute vector similarity. One of `cosine`, `euclidean`, and `dotproduct`. Default is `euclidean`. + +- exponent : An integer, represented as a string, roughly representing the number of vectors expected in the index in power of 10. The exponent value,is used to set "reasonable defaults" for HNSW internal tuning parameters. Default is "4" (10^4 vectors). + + +Here are some examples: +``` +simple_vector: float32vector @index(hnsw) . +description_vector: float32vector @index(hnsw(metric:"cosine")) . +large_vector: float32vector @index(hnsw(metric:"euclidean",exponent:"6")) . +``` + +## DateTime Indices + +The indices available for `dateTime` are as follows. + +| Index name / Tokenizer | Part of date indexed | +| :----------- | :------------------------------------------------------------------ | +| `year` | index on year (default) | +| `month` | index on year and month | +| `day` | index on year, month and day | +| `hour` | index on year, month, day and hour | + +The choices of `dateTime` index allow selecting the precision of the index. Applications, such as the movies examples in these docs, that require searching over dates but have relatively few nodes per year may prefer the `year` tokenizer; applications that are dependent on fine grained date searches, such as real-time sensor readings, may prefer the `hour` index. + + +All the `dateTime` indices are sortable. + + +## Sortable Indices + +Not all the indices establish a total order among the values that they index. Sortable indices allow inequality functions and sorting. + +* Indexes `int` and `float` are sortable. +* `string` index `exact` is sortable. +* All `dateTime` indices are sortable. + +For example, given an edge `name` of `string` type, to sort by `name` or perform inequality filtering on names, the `exact` index must have been specified. In which case a schema query would return at least the following tokenizers. + +``` +{ + "predicate": "name", + "type": "string", + "index": true, + "tokenizer": [ + "exact" + ] +} +``` + +## Count index + +For predicates with the `@count` Dgraph indexes the number of edges out of each node. This enables fast queries of the form: +``` +{ + q(func: gt(count(pred), threshold)) { + ... + } +} +``` + +## List Type + +Predicate with scalar types can also store a list of values if specified in the schema. The scalar +type needs to be enclosed within `[]` to indicate that its a list type. + +``` +occupations: [string] . +score: [int] . +``` + +* A set operation adds to the list of values. The order of the stored values is non-deterministic. +* A delete operation deletes the value from the list. +* Querying for these predicates would return the list in an array. +* Indexes can be applied on predicates which have a list type and you can use [Functions](/dgraph-overview/dql/query/functions) on them. +* Sorting is not allowed using these predicates. +* These lists are like an unordered set. For example: `["e1", "e1", "e2"]` may get stored as `["e2", "e1"]`, i.e., duplicate values will not be stored and order may not be preserved. + +## Filtering on list + +Dgraph supports filtering based on the list. +Filtering works similarly to how it works on edges and has the same available functions. + +For example, `@filter(eq(occupations, "Teacher"))` at the root of the query or the +parent edge will display all the occupations from a list of each node in an array but +will only include nodes which have `Teacher` as one of the occupations. However, filtering +on value edge is not supported. + +## Reverse Edges + +A graph edge is unidirectional. For node-node edges, sometimes modeling requires reverse edges. If only some subject-predicate-object triples have a reverse, these must be manually added. But if a predicate always has a reverse, Dgraph computes the reverse edges if `@reverse` is specified in the schema. + +The reverse edge of `anEdge` is `~anEdge`. + +For existing data, Dgraph computes all reverse edges. For data added after the schema mutation, Dgraph computes and stores the reverse edge for each added triple. + +``` +type Person { + name +} +type Car { + regnbr + owner +} +owner: uid @reverse . +regnbr: string @index(exact) . +name: string @index(exact) . +``` + +This makes it possible to query Persons and their cars by using: +``` +q(func: type(Person)) { + name + ~owner { regnbr } +} +``` +To get a different key than `~owner` in the result, the query can be written with the wanted label +(`cars` in this case): + +``` +q(func: type(Person)) { + name + cars: ~owner { regnbr } +} +``` + +This also works if there are multiple "owners" of a `car`: +``` +owner [uid] @reverse . +``` + +In both cases the `owner` edge should be set on the `Car`: +``` +_:p1 "Mary" . +_:p1 "Person" . +_:c1 "ABC123" . +_:c1 "Car" . +_:c1 _:p1 . +``` + +## Querying Schema + +A schema query queries for the whole schema: + +``` +schema {} +``` + +:::note Unlike regular queries, the schema query is not surrounded +by curly braces. Also, schema queries and regular queries cannot be combined. +::: + +You can query for particular schema fields in the query body. + +``` +schema { + type + index + reverse + tokenizer + list + count + upsert + lang +} +``` + +You can also query for particular predicates: + +``` +schema(pred: [name, friend]) { + type + index + reverse + tokenizer + list + count + upsert + lang +} +``` + +:::note If ACL is enabled, then the schema query returns only the +predicates for which the logged-in ACL user has read access. ::: + +Types can also be queried. Below are some example queries. + +``` +schema(type: Movie) {} +schema(type: [Person, Animal]) {} +``` + +Note that type queries do not contain anything between the curly braces. The +output will be the entire definition of the requested types. diff --git a/docusaurus-docs/docs/dql/query/aggregation.md b/docusaurus-docs/docs/dql/query/aggregation.md new file mode 100644 index 00000000..64ac73b1 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/aggregation.md @@ -0,0 +1,215 @@ +--- +title: Aggregation +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +Syntax Example: `AG(val(varName))` + +For `AG` replaced with + +* `min` : select the minimum value in the value variable `varName` +* `max` : select the maximum value +* `sum` : sum all values in value variable `varName` +* `avg` : calculate the average of values in `varName` + +Schema Types: + +| Aggregation | Schema Types | +|:-----------|:--------------| +| `min` / `max` | `int`, `float`, `string`, `dateTime`, `default` | +| `sum` / `avg` | `int`, `float` | + +Aggregation can only be applied to [value variables](/dgraph-overview/variables#value-variables). An index is not required (the values have already been found and stored in the value variable mapping). + +An aggregation is applied at the query block enclosing the variable definition. As opposed to query variables and value variables, which are global, aggregation is computed locally. For example: +``` +A as predicateA { + ... + B as predicateB { + x as ...some value... + } + min(val(x)) +} +``` +Here, `A` and `B` are the lists of all UIDs that match these blocks. Value variable `x` is a mapping from UIDs in `B` to values. The aggregation `min(val(x))`, however, is computed for each UID in `A`. That is, it has a semantics of: for each UID in `A`, take the slice of `x` that corresponds to `A`'s outgoing `predicateB` edges and compute the aggregation for those values. + +Aggregations can themselves be assigned to value variables, making a UID to aggregation map. + + +## Min + +### Usage at Root + +Query Example: Get the min initial release date for any Harry Potter movie. + +The release date is assigned to a variable, then it is aggregated and fetched in an empty block. + + +```dql +{ + var(func: allofterms(name@en, "Harry Potter")) { + d as initial_release_date + } + me() { + min(val(d)) + } +} +``` + + + +### Usage at other levels + +Query Example: Directors called Steven and the date of release of their first movie, in ascending order of first movie. + + + +```dql +{ + stevens as var(func: allofterms(name@en, "steven")) { + director.film { + ird as initial_release_date + # ird is a value variable mapping a film UID to its release date + } + minIRD as min(val(ird)) + # minIRD is a value variable mapping a director UID to their first release date + } + + byIRD(func: uid(stevens), orderasc: val(minIRD)) { + name@en + firstRelease: val(minIRD) + } +} +``` + + + +## Max + +### Usage at Root + +Query Example: Get the max initial release date for any Harry Potter movie. + +The release date is assigned to a variable, then it is aggregated and fetched in an empty block. + + +```dql +{ + var(func: allofterms(name@en, "Harry Potter")) { + d as initial_release_date + } + me() { + max(val(d)) + } +} +``` + + + +### Usage at other levels + +Query Example: Quentin Tarantino's movies and date of release of the most recent movie. + + + +```dql +{ + director(func: allofterms(name@en, "Quentin Tarantino")) { + director.film { + name@en + x as initial_release_date + } + max(val(x)) + } +} +``` + + + +## Sum and Avg + +### Usage at Root + +Query Example: Get the sum and average of number of count of movies directed by people who have +Steven or Tom in their name. + + + +```dql +{ + var(func: anyofterms(name@en, "Steven Tom")) { + a as count(director.film) + } + + me() { + avg(val(a)) + sum(val(a)) + } +} +``` + + + +### Usage at other levels + +Query Example: Steven Spielberg's movies, with the number of recorded genres per movie, and the total number of genres and average genres per movie. + + + +```dql +{ + director(func: eq(name@en, "Steven Spielberg")) { + name@en + director.film { + name@en + numGenres : g as count(genre) + } + totalGenres : sum(val(g)) + genresPerMovie : avg(val(g)) + } +} +``` + + + + +## Aggregating Aggregates + +Aggregations can be assigned to value variables, and so these variables can in turn be aggregated. + +Query Example: For each actor in a Peter Jackson film, find the number of roles played in any movie. Sum these to find the total number of roles ever played by all actors in the movie. Then sum the lot to find the total number of roles ever played by actors who have appeared in Peter Jackson movies. Note that this demonstrates how to aggregate aggregates; the answer in this case isn't quite precise though, because actors that have appeared in multiple Peter Jackson movies are counted more than once. + + + +```dql +{ + PJ as var(func:allofterms(name@en, "Peter Jackson")) { + director.film { + starring { # starring an actor + performance.actor { + movies as count(actor.film) + # number of roles for this actor + } + perf_total as sum(val(movies)) + } + movie_total as sum(val(perf_total)) + # total roles for all actors in this movie + } + gt as sum(val(movie_total)) + } + + PJmovies(func: uid(PJ)) { + name@en + director.film (orderdesc: val(movie_total), first: 5) { + name@en + totalRoles : val(movie_total) + } + grandTotal : val(gt) + } +} +``` + + + diff --git a/docusaurus-docs/docs/dql/query/alias.md b/docusaurus-docs/docs/dql/query/alias.md new file mode 100644 index 00000000..16eeb898 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/alias.md @@ -0,0 +1,45 @@ +--- +title: Aliases +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +Syntax Examples: + +* `aliasName : predicate` +* `aliasName : predicate { ... }` +* `aliasName : varName as ...` +* `aliasName : count(predicate)` +* `aliasName : max(val(varName))` + +An alias provides an alternate name in results. Predicates, variables and aggregates can be aliased by prefixing with the alias name and `:`. Aliases do not have to be different to the original predicate name, but, within a block, an alias must be distinct from predicate names and other aliases returned in the same block. Aliases can be used to return the same predicate multiple times within a block. + +Query Example: Directors with `name` matching term `Steven`, their UID, English name, average number of actors per movie, total number of films, and the name of each film in English and French. + + +```dql +{ + ID as var(func: allofterms(name@en, "Steven")) @filter(has(director.film)) { + director.film { + num_actors as count(starring) + } + average as avg(val(num_actors)) + } + + films(func: uid(ID)) { + director_id : uid + english_name : name@en + average_actors : val(average) + num_films : count(director.film) + + films : director.film { + name : name@en + english_name : name@en + french_name : name@fr + } + } +} +``` + + diff --git a/docusaurus-docs/docs/dql/query/count.md b/docusaurus-docs/docs/dql/query/count.md new file mode 100644 index 00000000..bfe63be0 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/count.md @@ -0,0 +1,73 @@ +--- +title: Count +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +Syntax Examples: + +* `count(predicate)` +* `count(uid)` + +The form `count(predicate)` counts how many `predicate` edges lead out of a node. + +The form `count(uid)` counts the number of UIDs matched in the enclosing block. + +Query Example: The number of films acted in by each actor with `Orlando` in their name. + + + +```dql +{ + me(func: allofterms(name@en, "Orlando")) @filter(has(actor.film)) { + name@en + count(actor.film) + } +} +``` + + + +Count can be used at root and [aliased](/dgraph-overview/dql/query/alias). + +Query Example: Count of directors who have directed more than five films. When used at the query root, the [count index](/dgraph-overview/predicate-indexing#count-index) is required. + + + +```dql +{ + directors(func: gt(count(director.film), 5)) { + totalDirectors : count(uid) + } +} +``` + + + + +Count can be assigned to a [value variable](/dgraph-overview/variables#value-variables). + +Query Example: The actors of Ang Lee's "Eat Drink Man Woman" ordered by the number of movies acted in. + + + +```dql +{ + var(func: allofterms(name@en, "eat drink man woman")) { + starring { + actors as performance.actor { + totalRoles as count(actor.film) + } + } + } + + edmw(func: uid(actors), orderdesc: val(totalRoles)) { + name@en + name@zh + totalRoles : val(totalRoles) + } +} +``` + + diff --git a/docusaurus-docs/docs/dql/query/debug.md b/docusaurus-docs/docs/dql/query/debug.md new file mode 100644 index 00000000..1d5c44a7 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/debug.md @@ -0,0 +1,60 @@ +--- +title: Debug +--- + +For the purposes of debugging, you can attach a query parameter `debug=true` to a query. Attaching this parameter lets you retrieve the `uid` attribute for all the entities along with the `server_latency` and `start_ts` information under the `extensions` key of the response. + +- `parsing_ns`: Latency in nanoseconds to parse the query. +- `processing_ns`: Latency in nanoseconds to process the query. +- `encoding_ns`: Latency in nanoseconds to encode the JSON response. +- `start_ts`: The logical start timestamp of the transaction. + +Query with debug as a query parameter +```sh +curl -H "Content-Type: application/dql" http://localhost:8080/query?debug=true -XPOST -d $'{ + tbl(func: allofterms(name@en, "The Big Lebowski")) { + name@en + } +}' | python -m json.tool | less +``` + +Returns `uid` and `server_latency` +``` +{ + "data": { + "tbl": [ + { + "uid": "0x41434", + "name@en": "The Big Lebowski" + }, + { + "uid": "0x145834", + "name@en": "The Big Lebowski 2" + }, + { + "uid": "0x2c8a40", + "name@en": "Jeffrey \"The Big\" Lebowski" + }, + { + "uid": "0x3454c4", + "name@en": "The Big Lebowski" + } + ], + "extensions": { + "server_latency": { + "parsing_ns": 18559, + "processing_ns": 802990982, + "encoding_ns": 1177565 + }, + "txn": { + "start_ts": 40010 + } + } + } +} +``` +:::note +GraphQL+- has been renamed to Dgraph Query Language (DQL). While `application/dql` +is the preferred value for the `Content-Type` header, we will continue to support +`Content-Type: application/graphql+-` to avoid making breaking changes. +::: diff --git a/docusaurus-docs/docs/dql/query/directive/cascade-directive.md b/docusaurus-docs/docs/dql/query/directive/cascade-directive.md new file mode 100644 index 00000000..b30e6624 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/directive/cascade-directive.md @@ -0,0 +1,280 @@ +--- +title: "@cascade" +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +With the `@cascade` directive, nodes that don't have all predicates specified in the query are removed. This can be useful in cases where some filter was applied or if nodes might not have all listed predicates. + + +Query Example: Harry Potter movies, with each actor and characters played. With `@cascade`, any character not played by an actor called Warwick is removed, as is any Harry Potter movie without any actors called Warwick. Without `@cascade`, every character is returned, but only those played by actors called Warwick also have the actor name. + + +```dql +{ + HP(func: allofterms(name@en, "Harry Potter")) @cascade { + name@en + starring{ + performance.character { + name@en + } + performance.actor @filter(allofterms(name@en, "Warwick")){ + name@en + } + } + } +} +``` + + + +You can apply `@cascade` on inner query blocks as well. + + +```dql +{ + HP(func: allofterms(name@en, "Harry Potter")) { + name@en + genre { + name@en + } + starring @cascade { + performance.character { + name@en + } + performance.actor @filter(allofterms(name@en, "Warwick")){ + name@en + } + } + } +} +``` + + + +## Parameterized `@cascade` + +The `@cascade` directive can optionally take a list of fields as an argument. +This changes the default behavior, considering only the supplied fields as mandatory instead of all the fields for a type. +Listed fields are automatically cascaded as a required argument to nested selection sets. +A parameterized cascade works on levels (e.g. on the root function or on lower levels), so +you need to specify `@cascade(param)` on the exact level where you want it to be applied. + +:::tip +The rule with `@cascade(predicate)` is that the predicate needs to be in the query at the same level `@cascade` is. +::: + +Take the following query as an example: + + + +```dql +{ + nodes(func: allofterms(name@en, "jones indiana")) { + name@en + genre @filter(anyofterms(name@en, "action adventure")) { + name@en + } + produced_by { + name@en + } + } +} +``` + + + +This query gets nodes that have all the terms _"jones indiana"_ and then traverses to `genre` and `produced_by`. +It also adds an additional filter for `genre`, to only get the ones that either have _"action"_ or _"adventure"_ in the name. +The results include nodes that have no `genre` and nodes that have no `genre` and no `producer`. + +If you apply a regular `@cascade` without a parameter, you'll lose the ones that had `genre` but no `producer`. + +To get the nodes that have the traversed `genre` but possibly not `produced_by`, you can parameterize the cascade: + + + +```dql +{ + nodes(func: allofterms(name@en, "jones indiana")) @cascade(genre) { + name@en + genre @filter(anyofterms(name@en, "action adventure")) { + name@en + } + produced_by { + name@en + } + written_by { + name@en + } + } +} +``` + + + +If you want to check for multiple fields, just comma separate them. For example, to cascade over `produced_by` and `written_by`: + + + +```dql +{ + nodes(func: allofterms(name@en, "jones indiana")) @cascade(produced_by,written_by) { + name@en + genre @filter(anyofterms(name@en, "action adventure")) { + name@en + } + produced_by { + name@en + } + written_by { + name@en + } + } +} +``` + + + +### Nesting and parameterized cascade + +The cascading nature of field selection is overwritten by a nested `@cascade`. + +The previous example can be cascaded down the chain as well, and be overridden on each level as needed. + +For example, if you only want the _"Indiana Jones movies that were produced by the same person who produced a Jurassic World movie"_: + + + +```dql +{ + nodes(func: allofterms(name@en, "jones indiana")) @cascade(produced_by) { + name@en + genre @filter(anyofterms(name@en, "action adventure")) { + name@en + } + produced_by @cascade(producer.film) { + name@en + producer.film @filter(allofterms(name@en, "jurassic world")) { + name@en + } + } + written_by { + name@en + } + } +} +``` + + + +Another nested example: _"Find the Indiana Jones movie that was written by the same person who wrote a Star Wars movie and was produced by the same person who produced Jurassic World"_: + + + +```dql +{ + nodes(func: allofterms(name@en, "jones indiana")) @cascade(produced_by,written_by) { + name@en + genre @filter(anyofterms(name@en, "action adventure")) { + name@en + } + produced_by @cascade(producer.film) { + name@en + producer.film @filter(allofterms(name@en, "jurassic world")) { + name@en + } + } + written_by @cascade(writer.film) { + name@en + writer.film @filter(allofterms(name@en, "star wars")) { + name@en + } + } + } +} +``` + + + +## Cascade Performance + +The `@cascade` directive processes the nodes after the query, but before Dgraph +returns query results. This means that all of the nodes that would normally be +returned if there was no `@cascade` applied are still touched in the internal +query process. If you see slower-than-expected performance when using the +`@cascade` directive, it is probably because the internal query process returns +a large set of nodes but the cascade reduces those to a small set of nodes in query +results. To improve the performance of queries that use the `@cascade` directive, +you might want to use `var` blocks or `has` filters, as described below. + +### Cascade with `var` blocks + +The performance impact of using `var` blocks is that it reduces the graph that is touched to generate the final query results. +For example, many of the previous examples could be replaced entirely using [`var` blocks](/dgraph-overview/dql-query#var-block) instead of utilizing `@cascade`. + +The following query provides an alternative way to structure the query shown above, +_"Find the Indiana Jones movie that was written by the same person who wrote a +Star Wars movie and was produced by the same person who produced Jurassic World"_, +without using the `@cascade` directive: + + + +```dql +{ + var(func: allofterms(name@en, "jurassic world")) { + produced_by { + ProducedBy as producer.film + } + } + var(func: allofterms(name@en, "star wars")) { + written_by { + WrittenBy as writer.film + } + } + nodes(func: allofterms(name@en,"indiana jones")) @filter(uid(ProducedBy) AND uid(WrittenBy)) { + name@en + genre { + name@en + } + } +} +``` + + + +The performance impact of building queries with multiple `var` blocks versus +using `@cascade` depends on the nodes touched to reach the end results. Depending +on the size of your data set and distribution between nodes, refactoring a query +with `var` blocks instead of `@cascade` might actually decrease performance +if the query must touch more nodes as a result of the refactor. + +### Cascade with `has` filter + +In cases where only a small set of nodes have the predicates where `@cascade` is +applied, it might be beneficial to query performance to include a `has` filter +for those predicates. + +For example, you could run a query like _"Find movies that have a sequel whose name contains the term **Star Wars**"_ as follows: + + + +```dql +{ + nodes(func: has(sequel)) @filter(type(Film)) @cascade { + count(uid) + name@en + sequel @filter(allofterms(name@en,"Star Wars")) { + name@en + } + } +} +``` + + + +By using a `has` filter in the root function instead of `type(Movie)`, you can +reduce the root graph from `275,195` nodes down to `7,747` nodes. Reducing the +root graph before the post-query cascade process results in a higher-performing +query. diff --git a/docusaurus-docs/docs/dql/query/directive/filter.md b/docusaurus-docs/docs/dql/query/directive/filter.md new file mode 100644 index 00000000..06a7382c --- /dev/null +++ b/docusaurus-docs/docs/dql/query/directive/filter.md @@ -0,0 +1,91 @@ +--- +title: "@filter" +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +The `@filter` directive allows you to apply additional filtering conditions to nodes in a query block. Filters use [functions](/dgraph-overview/dql/query/functions) to test node attributes or relationships and can be applied to both root query blocks and nested blocks. + +## Using @filter + +### In Query Blocks + +A query block may have a combination of filters to apply to the root nodes. The `@filter` directive appears after the `func:` criteria and before the opening curly bracket: + +```graphql +{ + me(func: eq(name@en, "Steven Spielberg")) @filter(has(director.film)) { + name@en + director.film { + name@en + } + } +} +``` + +### In Nested Blocks + +For relationships to fetch, nested blocks may specify filters to apply on the related nodes: + +```graphql +{ + director(func: eq(name@en, "Steven Spielberg")) { + name@en + director.film @filter(allofterms(name@en, "indiana jones")) { + uid + name@en + } + } +} +``` + +Nested blocks may also specify criteria on the relationships attributes using [filtering on facets](../facets#filtering-on-facets). + +## Filter Functions + +Filters use the same [functions](../functions) that are available for root criteria. These functions can test: + +- **String attributes**: term matching, regular expressions, fuzzy matching, full-text search +- **Attribute values**: equality, inequalities, ranges +- **Node properties**: predicate existence, UID, relationships, node type +- **Relationship counts**: equality and inequality comparisons +- **Geolocation attributes**: proximity, containment, intersection + +Common functions include: + +- String matching: [allofterms](../functions#allofterms), [anyofterms](../functions#anyofterms), [regexp](../functions#regular-expressions), [match](../functions#fuzzy-matching), [alloftext](../functions#full-text-search) +- Value comparisons: [eq](../functions#equal-to), [le, lt, ge, gt](../functions#less-than-less-than-or-equal-to-greater-than-and-greater-than-or-equal-to), [between](../functions#between) +- Node tests: [has](../functions#has), [uid](../functions#uid), [uid_in](../functions#uid_in), `type()` +- Geolocation: [near](../functions#near), [within](../functions#within), [contains](../functions#contains), [intersects](../functions#intersects) + +Variables may be used as function parameters in filters. See [query variables](/dgraph-overview/variables#query-variables) and [value variables](/dgraph-overview/variables#value-variables) for more information. + +Filters can also be combined with directives like [@cascade](/dgraph-overview/dql/query/directive/cascade-directive) to create pattern matching queries where only nodes matching the complete query structure are returned. + +## Connecting Filters + +Within `@filter` multiple functions can be used with boolean operators AND, OR, and NOT. + +### AND, OR and NOT + +Connectives `AND`, `OR` and `NOT` join filters and can be built into arbitrarily complex filters, such as `(NOT A OR B) AND (C AND NOT (D OR E))`. Note that, `NOT` binds more tightly than `AND` which binds more tightly than `OR`. + +Query Example: All Steven Spielberg movies that contain either both "indiana" and "jones" OR both "jurassic" and "park". + + + +```dql +{ + me(func: eq(name@en, "Steven Spielberg")) @filter(has(director.film)) { + name@en + director.film @filter(allofterms(name@en, "jones indiana") OR allofterms(name@en, "jurassic park")) { + uid + name@en + } + } +} +``` + + + diff --git a/docusaurus-docs/docs/dql/query/directive/groupby.md b/docusaurus-docs/docs/dql/query/directive/groupby.md new file mode 100644 index 00000000..cf6d6089 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/directive/groupby.md @@ -0,0 +1,64 @@ +--- +title: "@groupby" +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +Syntax Examples: + +* `q(func: ...) @groupby(predicate) { min(...) }` +* `predicate @groupby(pred) { count(uid) }` + + +A `groupby` query aggregates query results given a set of properties on which to group elements. For example, a query containing the block `friend @groupby(age) { count(uid) }`, finds all nodes reachable along the friend edge, partitions these into groups based on age, then counts how many nodes are in each group. The returned result is the grouped edges and the aggregations. + +Inside a `groupby` block, only aggregations are allowed and `count` may only be applied to `uid`. + +If the `groupby` is applied to a `uid` predicate, the resulting aggregations can be saved in a variable (mapping the grouped UIDs to aggregate values) and used elsewhere in the query to extract information other than the grouped or aggregated edges. + +Query Example: For Steven Spielberg movies, count the number of movies in each genre and for each of those genres return the genre name and the count. The name can't be extracted in the `groupby` because it is not an aggregate, but `uid(a)` can be used to extract the UIDs from the UID to value map and thus organize the `byGenre` query by genre UID. + + + + +```dql +{ + var(func:allofterms(name@en, "steven spielberg")) { + director.film @groupby(genre) { + a as count(uid) + # a is a genre UID to count value variable + } + } + + byGenre(func: uid(a), orderdesc: val(a)) { + name@en + total_movies : val(a) + } +} +``` + + + +Query Example: Actors from Tim Burton movies and how many roles they have played in Tim Burton movies. + + +```dql +{ + var(func:allofterms(name@en, "Tim Burton")) { + director.film { + starring @groupby(performance.actor) { + a as count(uid) + # a is an actor UID to count value variable + } + } + } + + byActor(func: uid(a), orderdesc: val(a)) { + name@en + val(a) + } +} +``` + + diff --git a/docusaurus-docs/docs/dql/query/directive/ignorereflex-directive.md b/docusaurus-docs/docs/dql/query/directive/ignorereflex-directive.md new file mode 100644 index 00000000..c9ac7a83 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/directive/ignorereflex-directive.md @@ -0,0 +1,30 @@ +--- +title: "@ignorereflex" +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +The `@ignorereflex` directive forces the removal of child nodes that are reachable from themselves as a parent, through any path in the query result + +Query Example: All the co-actors of Rutger Hauer. Without `@ignorereflex`, the result would also include Rutger Hauer for every movie. + + + +```dql +{ + coactors(func: eq(name@en, "Rutger Hauer")) @ignorereflex { + actor.film { + performance.film { + starring { + performance.actor { + name@en + } + } + } + } + } +} +``` + + \ No newline at end of file diff --git a/docusaurus-docs/docs/dql/query/directive/index.md b/docusaurus-docs/docs/dql/query/directive/index.md new file mode 100644 index 00000000..b4acaa65 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/directive/index.md @@ -0,0 +1,30 @@ +--- +title: Directives +--- + +Directives in Dgraph Query Language (DQL) are special annotations that modify how queries are executed or how results are formatted. They are prefixed with the `@` symbol and can be applied to query blocks or predicates to change their behavior. + +Directives provide powerful control over: + +- **Filtering**: Apply conditions to filter nodes in query results +- **Response structure**: Format and organize query results +- **Graph traversal**: Control how the graph is explored +- **Pattern matching**: Filter results based on complete query structure +- **Aggregation**: Group and aggregate data + +## Available Directives + +- **[@filter](/dgraph-overview/dql/query/directive/filter)**: Applies additional filtering conditions to nodes in query blocks using functions and boolean operators. + +- **[@normalize](/dgraph-overview/dql/query/directive/normalize-directive)**: Flattens the response structure by removing nesting and returning only aliased predicates. + +- **[@cascade](/dgraph-overview/dql/query/directive/cascade-directive)**: Filters out nodes that don't match all predicates specified in the query at any nested level, enabling pattern matching behavior. + +- **[@recurse](/dgraph-overview/dql/query/directive/recurse-query)**: Performs recursive graph traversal, following relationships to explore paths of variable depth. + +- **[@ignorereflex](/dgraph-overview/dql/query/directive/ignorereflex-directive)**: Ignores reflexive edges (edges that point back to the same node) during graph traversal. + +- **[@groupby](/dgraph-overview/dql/query/directive/groupby)**: Groups query results based on specified predicates and allows aggregation functions to be applied to each group. + +Directives can be combined in a single query to achieve complex querying and result formatting requirements. + diff --git a/docusaurus-docs/docs/dql/query/directive/normalize-directive.md b/docusaurus-docs/docs/dql/query/directive/normalize-directive.md new file mode 100644 index 00000000..9e404123 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/directive/normalize-directive.md @@ -0,0 +1,64 @@ +--- +title: "@normalize" +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +With the `@normalize` directive, only aliased predicates are returned and the result is flattened to remove nesting. + +Query Example: Film name, country and first two actors (by UID order) of every Steven Spielberg movie, without `initial_release_date` because no alias is given and flattened by `@normalize` + + +```dql +{ + director(func:allofterms(name@en, "steven spielberg")) @normalize { + director: name@en + director.film { + film: name@en + initial_release_date + starring(first: 2) { + performance.actor { + actor: name@en + } + performance.character { + character: name@en + } + } + country { + country: name@en + } + } + } +} +``` + + + +You can also apply `@normalize` on nested query blocks. It will work similarly but only flatten the result of the nested query block where `@normalize` has been applied. `@normalize` will return a list irrespective of the type of attribute on which it is applied. + + +```dql +{ + director(func:allofterms(name@en, "steven spielberg")) { + director: name@en + director.film { + film: name@en + initial_release_date + starring(first: 2) @normalize { + performance.actor { + actor: name@en + } + performance.character { + character: name@en + } + } + country { + country: name@en + } + } + } +} +``` + + \ No newline at end of file diff --git a/docusaurus-docs/docs/dql/query/directive/recurse-query.md b/docusaurus-docs/docs/dql/query/directive/recurse-query.md new file mode 100644 index 00000000..7deef23a --- /dev/null +++ b/docusaurus-docs/docs/dql/query/directive/recurse-query.md @@ -0,0 +1,34 @@ +--- +title: "@recurse" +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +`Recurse` queries let you traverse a set of predicates (with filter, facets, etc.) until we reach all leaf nodes or we reach the maximum depth which is specified by the `depth` parameter. + +To get 10 movies from a genre that has more than 30000 films and then get two actors for those movies we'd do something as follows: + + +```dql +{ + me(func: gt(count(~genre), 30000), first: 1) @recurse(depth: 5, loop: true) { + name@en + ~genre (first:10) @filter(gt(count(starring), 2)) + starring (first: 2) + performance.actor + } +} +``` + + +Some points to keep in mind while using recurse queries are: + +- You can specify only one level of predicates after root. These would be traversed recursively. Both scalar and entity-nodes are treated similarly. +- Only one recurse block is advised per query. +- Be careful as the result size could explode quickly and an error would be returned if the result set gets too large. In such cases use more filters, limit results using pagination, or provide a depth parameter at root as shown in the example above. +- The `loop` parameter can be set to false, in which case paths which lead to a loop would be ignored + while traversing. +- If not specified, the value of the `loop` parameter defaults to false. +- If the value of the `loop` parameter is false and depth is not specified, `depth` will default to `math.MaxUint64`, which means that the entire graph might be traversed until all the leaf nodes are reached. + diff --git a/docusaurus-docs/docs/dql/query/dql-query.md b/docusaurus-docs/docs/dql/query/dql-query.md new file mode 100644 index 00000000..5b0e7f34 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/dql-query.md @@ -0,0 +1,317 @@ +--- +title: Query Structure +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +Fetching data with Dgraph Query Language (DQL), is done through **DQL Queries**. Adding, modifying or deleting data is done through [DQL Mutations](/dgraph-overview/dql/dql-mutation). + +This overview explains the structure of DQL Queries and provides links to the appropriate DQL reference documentation. + +### DQL query structure +DQL is **declarative**, which means that queries return a response back in a similar shape to the query. It gives the client application the control of what it gets: the request return exactly what you ask for, nothing less and nothing more. In this, DQL is similar to GraphQL from which it is inspired. + +A DQL query finds nodes based on search criteria, matches patterns in the graph and returns the node attributes, relationships specified in the query. + +A DQL query has +- an optional parameterization, ie a name and a list of parameters +- an opening curly bracket +- at least one [query block](#query-block), but can contain many blocks +- optional var blocks +- a closing curly bracket + +![DQL Query with parameterization](/images/dql-syntax/query-syntax-1.png) + + +### Query parameterization +**Parameters** +* must have a name starting with a `$` symbol. +* must have a type `int`, `float`, `bool` or `string`. +* may have a default value. In the example below, `$age` has a default value of `95` +* may be mandatory by suffixing the type with a `!`. Mandatory parameters can't have a default value. + +Parameters can be used in the query where a string, float, int or bool value are needed. + +You can also use a variable holding ``uids`` by using a string variable and by providing the value as a quoted list in square brackets: +`query title($uidsParam: string = "[0x1, 0x2, 0x3]") { ... }`. + + + +**Error handling** +When submitting a query using parameters, Dgraph responds with errors if +* A parameter value is not parsable to the given type. +* The query is using a parameter that is not declared. +* A mandatory parameter is not provided + + +The query parameterization is optional. If you don't use parameters you can omit it and send only the query blocks. + +![DQL Query without parameters](/images/dql-syntax/query-syntax-2.png) +:::noteThe current documentation is usually using example of queries without parameters. ::: + +If you execute this query in our [Movies demo database](/dgraph-overview/dql/query/running-examples) you can see that Dgraph will return a JSON structure similar to the request : +![DQL response structure](/images/dql-syntax/query-syntax-3.png) + +### Query block + +A query block specifies information to retrieve from Dgraph. + +A query block +- must have name +- must have a node criteria defined by the keyword ``func:`` +- may have ordering and pagination information +- may have a combination of filters (to apply to the root nodes) +- must provide the list of attributes and relationships to fetch for each node matching the root nodes. + +Refer to [pagination](/dgraph-overview/dql/query/pagination), [ordering](/dgraph-overview/dql/query/sorting), [connecting filters](/dgraph-overview/filter#connecting-filters) for more information. + +For each relationships to fetch, the query is using a nested block. + +A nested block +- may specify filters to apply on the related nodes +- may specify criteria on the relationships attributes using [filtering on facets](/dgraph-overview/facets#filtering-on-facets)) +- provides the list of relationship attributes ([facets](/dgraph-overview/dql/query/facets))) to fetch. +- provides the list of attributes and relationships to fetch for the related nodes. + +A nested block may contain another nested block, and such at any level. + +### Multiple query blocks +Inside a single query, multiple query blocks are allowed, and each block can +have a name. Multiple query blocks are executed in parallel, and they don't +need to be related in any way. + +Query Example: _"All of Angelina Jolie's films, with genres, and Peter Jackson's films since 2008"_ + + + +```dql +{ + AngelinaInfo(func:allofterms(name@en, "angelina jolie")) { + name@en + actor.film { + performance.film { + genre { + name@en + } + } + } + } + + DirectorInfo(func: eq(name@en, "Peter Jackson")) { + name@en + director.film @filter(ge(initial_release_date, "2008")) { + Release_date: initial_release_date + Name: name@en + } + } +} +``` + + + + +If queries contain some overlap in answers, the result sets are still independent. + +Query Example: _"The movies Mackenzie Crook has acted in and the movies Jack Davenport has acted in"_ + +The results sets overlap because both have acted in the _Pirates of the Caribbean_ +movies, but the results are independent and both contain the full answers sets. + + + +```dql +{ + Mackenzie(func:allofterms(name@en, "Mackenzie Crook")) { + name@en + actor.film { + performance.film { + uid + name@en + } + performance.character { + name@en + } + } + } + + Jack(func:allofterms(name@en, "Jack Davenport")) { + name@en + actor.film { + performance.film { + uid + name@en + } + performance.character { + name@en + } + } + } +} +``` + + + +### Escape characters in predicate names + If your predicate has special characters, wrap it with angular brackets `< >` in the query. + + E.g. + ` + ` + +### Formatting options +Dgraph returns the attributes and relationships that you specified in the query. You can specify an alternate name for the result by using [aliases](/dgraph-overview/dql/query/alias). + +You can flatten the response structure at any level using [@normalize](/dgraph-overview/dql/query/directive/normalize-directive) directive. + +Entering the list of all the attributes you want to fetch could be fastidious for large queries or repeating blocks : you may take advantage of [fragments](/dgraph-overview/dql/query/fragments) and the [expand function](/dgraph-overview/dql/query/expand-predicates). + +### Node criteria (used by root function or by filter) + +Root criteria and filters are using [functions](/dgraph-overview/dql/query/functions) applied to nodes attributes or variables. + +Dgraph offers functions for +- testing string attributes + - term matching : [allofterms](/dgraph-overview/functions#allofterms), [anyofterms](/dgraph-overview/functions#anyofterms) + - regular Expression : [regexp](/dgraph-overview/functions#regular-expressions) + - fuzzy match : [match](/dgraph-overview/functions#fuzzy-matching) + - full-text search : [alloftext](/dgraph-overview/functions#full-text-search) +- testing attribute value + - equality : [eq](/dgraph-overview/functions#equal-to) + - inequalities : [le,lt,ge,gt](/dgraph-overview/functions#less-than-less-than-or-equal-to-greater-than-and-greater-than-or-equal-to) + - range : [between](/dgraph-overview/functions#between) +- testing if a node + - has a particular predicate (an attribute or a relation) : [has](/dgraph-overview/functions#has) + - has a given UID : [uid](/dgraph-overview/functions#uid) + - has a relationship to a given node : [uid_in](/dgraph-overview/functions#uid_in) + - is of a given type : type() +- testing the number of node relationships + - equality : [eq](/dgraph-overview/functions#equal-to) + - inequalities : [le,lt,ge,gt](/dgraph-overview/functions#less-than-less-than-or-equal-to-greater-than-and-greater-than-or-equal-to) +- testing geolocation attributes + - if geo location is within distance : [near](/dgraph-overview/functions#near) + - if geo location lies within a given area : [within](/dgraph-overview/functions#within) + - if geo area contains a given location : [contains](/dgraph-overview/functions#contains) + - if geo area intersects a given are : [intersects](/dgraph-overview/functions#intersects) + + +### Var block + + Variable blocks (`var` blocks) start with the keyword `var` instead of a block name. + + var blocks are not reflected in the query result. They are used to compute [query-variables](/dgraph-overview/variables#query-variables) which are lists of node UIDs, or [value-variables](/dgraph-overview/variables#value-variables) which are maps from node UIDs to the corresponding scalar values. + + Note that query-variables and value-variables can also be computed in query blocks. In that case, the query block is used to fetch and return data, and to define some variables which must be used in other blocks of the same query. + + Variables may be used as functions parameters in filters or root criteria in other blocks. + + Query Example: _"Angelina Jolie's movies ordered by genre"_ + + + +```dql +{ + var(func:allofterms(name@en, "angelina jolie")) { + name@en + actor.film { + A AS performance.film { + B AS genre + } + } + } + + films(func: uid(B), orderasc: name@en) { + name@en + ~genre @filter(uid(A)) { + name@en + } + } +} +``` + + + +## Multiple `var` blocks + +You can also use multiple `var` blocks within a single query operation. You can +use variables from one `var` block in any of the subsequent blocks, but not +within the same block. + +Query Example: _"Movies containing both Angelina Jolie and Morgan Freeman sorted by name"_ + + + +```dql +{ + var(func:allofterms(name@en, "angelina jolie")) { + name@en + actor.film { + A AS performance.film + } + } + var(func:allofterms(name@en, "morgan freeman")) { + name@en + actor.film { + B as performance.film @filter(uid(A)) + } + } + + films(func: uid(B), orderasc: name@en) { + name@en + } +} +``` + + + + +### Combining multiple `var` blocks + +You could get the same query results by logically combining both both `var` blocks +in the films block, as follows: +``` +{ + var(func:allofterms(name@en, "angelina jolie")) { + name@en + actor.film { + A AS performance.film + } + } + var(func:allofterms(name@en, "morgan freeman")) { + name@en + actor.film { + B as performance.film + } + } + films(func: uid(A,B), orderasc: name@en) @filter(uid(A) AND uid(B)) { + name@en + } +} +``` +The root `uid` function unions the `uid`s from `var` `A` and `B`, so you need a +filter to intersect the `uid`s from `var` `A` and `B`. + +### Summarizing functions + +When dealing with array attributes or with relationships to many node, the query may use summary functions [count](/dgraph-overview/dql/query/count) , [min](/dgraph-overview/aggregation#min), [max](/dgraph-overview/aggregation#max), [avg](/dgraph-overview/aggregation#sum-and-avg) or [sum](/dgraph-overview/aggregation#sum-and-avg). + +The query may also contain [mathematical functions](/dgraph-overview/variables#math-on-value-variables) on value variables. + +Summary functions can be used in conjunction with [@grouby](/dgraph-overview/dql/query/directive/groupby) directive to create aggregated value variables. + +The query may contain **anonymous block** to return computed values. **Anonymous block** don't have a root criteria as they are not used to search for nodes but only to returned computed values. + +### Graph traversal + +When you specify nested blocks and filters you basically describe a way to traverse the graph. + +[@recurse](/dgraph-overview/dql/query/directive/recurse-query) and [@ignorereflex](/dgraph-overview/dql/query/directive/ignorereflex-directive) are directives used to optionally configure the graph traversal. + +### Pattern matching +Queries with nested blocks with filters may be turned into pattern matching using [@cascade](/dgraph-overview/dql/query/directive/cascade-directive) directive : nodes that don’t have all attributes and all relationships specified in the query at any sub level are not considered in the result. So only nodes "matching" the complete query structure are returned. + +### Graph algorithms +The query can ask for the shortest path between a source (from) node and destination (to) node using the [shortest](/dgraph-overview/dql/query/kshortest-path-queries) query block. + +### Comments +Anything on a line following a `#` is a comment diff --git a/docusaurus-docs/docs/dql/query/expand-predicates.md b/docusaurus-docs/docs/dql/query/expand-predicates.md new file mode 100644 index 00000000..60784fd3 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/expand-predicates.md @@ -0,0 +1,87 @@ +--- +title: Expand Predicates +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +The `expand()` function can be used to expand the predicates out of a node. To +use `expand()`, the [type system](/dgraph-overview/dql/dql-schema) is required. +Refer to the section on the type system to check how to set the types +nodes. The rest of this section assumes familiarity with that section. + +There are two ways to use the `expand` function. + +* Types can be passed to `expand()` to expand all the predicates in the type. + +Query example: List the movies from the Harry Potter series: + + + +```dql +{ + all(func: eq(name@en, "Harry Potter")) @filter(type(Series)) { + name@en + expand(Series) { + name@en + expand(Film) + } + } +} +``` + + + +* If `_all_` is passed as an argument to `expand()`, the predicates to be +expanded will be the union of fields in the types assigned to a given node. + +The `_all_` keyword requires that the nodes have types. Dgraph will look for all +the types that have been assigned to a node, query the types to check which +attributes they have, and use those to compute the list of predicates to expand. + +For example, consider a node that has types `Animal` and `Pet`, which have +the following definitions: + +``` +type Animal { + name + species + dob +} + +type Pet { + owner + veterinarian +} +``` + +When `expand(_all_)` is called on this node, Dgraph will first check which types +the node has (`Animal` and `Pet`). Then it will get the definitions of `Animal` +and `Pet` and build a list of predicates from their type definitions. + +``` +name +species +dob +owner +veterinarian +``` + +:::note +For `string` predicates, `expand` only returns values not tagged with a language +(see [language preference](/dgraph-overview/dql/query/language-support)). So it's often +required to add `name@fr` or `name@.` as well to an expand query. +::: + +## Filtering during expand + +Expand queries support filters on the type of the outgoing edge. For example, +`expand(_all_) @filter(type(Person))` will expand on all the predicates but will +only include edges whose destination node is of type Person. Since only nodes of +type `uid` can have a type, this query will filter out any scalar values. + +Please note that other type of filters and directives are not currently supported +with the expand function. The filter needs to use the `type` function for the +filter to be allowed. Logical `AND` and `OR` operations are allowed. For +example, `expand(_all_) @filter(type(Person) OR type(Animal))` will only expand +the edges that point to nodes of either type. diff --git a/docusaurus-docs/docs/dql/query/facets.md b/docusaurus-docs/docs/dql/query/facets.md new file mode 100644 index 00000000..02d6853b --- /dev/null +++ b/docusaurus-docs/docs/dql/query/facets.md @@ -0,0 +1,459 @@ +--- +title: Facets and Edge attributes +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +Dgraph supports facets --- **key value pairs on edges** --- as an extension to RDF triples. That is, facets add properties to edges, rather than to nodes. +For example, a `friend` edge between two nodes may have a Boolean property of `close` friendship. +Facets can also be used as `weights` for edges. + +Though you may find yourself leaning towards facets many times, they should not be misused. It wouldn't be correct modeling to give the `friend` edge a facet `date_of_birth`. That should be an edge for the friend. However, a facet like `start_of_friendship` might be appropriate. Facets are however not first class citizen in Dgraph like predicates. + +Facet keys are strings and values can be `string`, `bool`, `int`, `float` and `dateTime`. +For `int` and `float`, only 32-bit signed integers and 64-bit floats are accepted. + +The following mutation is used throughout this section on facets. The mutation adds data for some peoples and, for example, records a `since` facet in `mobile` and `car` to record when Alice bought the car and started using the mobile number. + +First we add some schema. +```sh +curl localhost:8080/alter -XPOST -d $' + name: string @index(exact, term) . + rated: [uid] @reverse @count . +' | python -m json.tool | less +``` + +```sh +curl -H "Content-Type: application/rdf" localhost:8080/mutate?commitNow=true -XPOST -d $' +{ + set { + + # -- Facets on scalar predicates + _:alice "Alice" . + _:alice "Person" . + _:alice "040123456" (since=2006-01-02T15:04:05) . + _:alice "MA0123" (since=2006-02-02T13:01:09, first=true) . + + _:bob "Bob" . + _:bob "Person" . + _:bob "MA0134" (since=2006-02-02T13:01:09) . + + _:charlie "Charlie" . + _:charlie "Person" . + _:dave "Dave" . + _:dave "Person" . + + + # -- Facets on UID predicates + _:alice _:bob (close=true, relative=false) . + _:alice _:charlie (close=false, relative=true) . + _:alice _:dave (close=true, relative=true) . + + + # -- Facets for variable propagation + _:movie1 "Movie 1" . + _:movie1 "Movie" . + _:movie2 "Movie 2" . + _:movie2 "Movie" . + _:movie3 "Movie 3" . + _:movie3 "Movie" . + + _:alice _:movie1 (rating=3) . + _:alice _:movie2 (rating=2) . + _:alice _:movie3 (rating=5) . + + _:bob _:movie1 (rating=5) . + _:bob _:movie2 (rating=5) . + _:bob _:movie3 (rating=5) . + + _:charlie _:movie1 (rating=2) . + _:charlie _:movie2 (rating=5) . + _:charlie _:movie3 (rating=1) . + } +}' | python -m json.tool | less +``` + +## Facets on scalar predicates + + +Querying `name`, `mobile` and `car` of Alice gives the same result as without facets. + + + +```dql +{ + data(func: eq(name, "Alice")) { + name + mobile + car + } +} +{{}} +``` + + + + +The syntax `@facets(facet-name)` is used to query facet data. For Alice the `since` facet for `mobile` and `car` are queried as follows. + + + +```dql +{ + data(func: eq(name, "Alice")) { + name + mobile @facets(since) + car @facets(since) + } +} +{{}} +``` + + + + +Facets are returned at the same level as the corresponding edge and have keys like edge|facet. + +All facets on an edge are queried with `@facets`. + + + +```dql +{ + data(func: eq(name, "Alice")) { + name + mobile @facets + car @facets + } +} +{{}} +``` + + + +## Facets i18n + +Facets keys and values can use language-specific characters directly when mutating. But facet keys need to be enclosed in angle brackets `<>` when querying. This is similar to predicates. See [Predicates i18n](/dgraph-overview/dql-schema#predicates-i18n) for more info. + +:::noteDgraph supports [Internationalized Resource Identifiers](https://en.wikipedia.org/wiki/Internationalized_Resource_Identifier) (IRIs) for facet keys when querying.::: + +Example: +``` +{ + set { + _:person1 "Daniel" (वंश="स्पेनी", ancestry="Español") . + _:person1 "Person" . + _:person2 "Raj" (वंश="हिंदी", ancestry="हिंदी") . + _:person2 "Person" . + _:person3 "Zhang Wei" (वंश="चीनी", ancestry="中文") . + _:person3 "Person" . + } +} +``` +Query, notice the `<>`'s: +``` +{ + q(func: has(name)) { + name @facets(<वंश>) + } +} +``` + +## Alias with facets + +Alias can be specified while requesting specific predicates. Syntax is similar to how would request +alias for other predicates. `orderasc` and `orderdesc` are not allowed as alias as they have special +meaning. Apart from that anything else can be set as alias. + +Here we set `car_since`, `close_friend` alias for `since`, `close` facets respectively. + + +```dql +{ + data(func: eq(name, "Alice")) { + name + mobile + car @facets(car_since: since) + friend @facets(close_friend: close) { + name + } + } +} +{{}} +``` + + + + + +## Facets on UID predicates + +Facets on UID edges work similarly to facets on value edges. + +For example, `friend` is an edge with facet `close`. +It was set to true for friendship between Alice and Bob +and false for friendship between Alice and Charlie. + +A query for friends of Alice. + + + +```dql +{ + data(func: eq(name, "Alice")) { + name + friend { + name + } + } +} +{{}} +``` + + + +A query for friends and the facet `close` with `@facets(close)`. + + + +```dql +{ + data(func: eq(name, "Alice")) { + name + friend @facets(close) { + name + } + } +} +{{}} +``` + + + + +For uid edges like `friend`, facets go to the corresponding child under the key edge|facet. In the above +example you can see that the `close` facet on the edge between Alice and Bob appears with the key `friend|close` +along with Bob's results. + + + +```dql +{ + data(func: eq(name, "Alice")) { + name + friend @facets { + name + car @facets + } + } +} +{{}} +``` + + + +Bob has a `car` and it has a facet `since`, which, in the results, is part of the same object as Bob +under the key car|since. +Also, the `close` relationship between Bob and Alice is part of Bob's output object. +Charlie does not have `car` edge and thus only UID facets. + +## Filtering on facets + +Dgraph supports filtering edges based on facets. +Filtering works similarly to how it works on edges without facets and has the same available functions. + + +Find Alice's close friends + + +```dql +{ + data(func: eq(name, "Alice")) { + friend @facets(eq(close, true)) { + name + } + } +} +{{}} +``` + + + + +To return facets as well as filter, add another `@facets()` to the query. + + + +```dql +{ + data(func: eq(name, "Alice")) { + friend @facets(eq(close, true)) @facets(relative) { # filter close friends and give relative status + name + } + } +} +{{}} +``` + + + + +Facet queries can be composed with `AND`, `OR` and `NOT`. + + + +```dql +{ + data(func: eq(name, "Alice")) { + friend @facets(eq(close, true) AND eq(relative, true)) @facets(relative) { # filter close friends in my relation + name + } + } +} +{{}} +``` + + + + +## Sorting using facets + +Sorting is possible for a facet on a uid edge. Here we sort the movies rated by Alice, Bob and +Charlie by their `rating` which is a facet. + + + +```dql +{ + me(func: anyofterms(name, "Alice Bob Charlie")) { + name + rated @facets(orderdesc: rating) { + name + } + } +} +{{}} +``` + + + + + +## Assigning Facet values to a variable + +Facets on UID edges can be stored in [value variables](/dgraph-overview/variables#value-variables). The variable is a map from the edge target to the facet value. + +Alice's friends reported by variables for `close` and `relative`. + + +```dql +{ + var(func: eq(name, "Alice")) { + friend @facets(a as close, b as relative) + } + + friend(func: uid(a)) { + name + val(a) + } + + relative(func: uid(b)) { + name + val(b) + } +} +``` + + + +## Facets and Variable Propagation + +Facet values of `int` and `float` can be assigned to variables and thus the [values propagate](/dgraph-overview/variables#variable-propagation). + + +Alice, Bob and Charlie each rated every movie. A value variable on facet `rating` maps movies to ratings. A query that reaches a movie through multiple paths sums the ratings on each path. The following sums Alice, Bob and Charlie's ratings for the three movies. + + +```dql +{ + var(func: anyofterms(name, "Alice Bob Charlie")) { + num_raters as math(1) + rated @facets(r as rating) { + total_rating as math(r) # sum of the 3 ratings + average_rating as math(total_rating / num_raters) + } + } + data(func: uid(total_rating)) { + name + val(total_rating) + val(average_rating) + } + +} +``` + + + + +## Facets and Aggregation + +Facet values assigned to value variables can be aggregated. + + + +```dql +{ + data(func: eq(name, "Alice")) { + name + rated @facets(r as rating) { + name + } + avg(val(r)) + } +} +{{}} +``` + + + + +Note though that `r` is a map from movies to the sum of ratings on edges in the query reaching the movie. Hence, the following does not correctly calculate the average ratings for Alice and Bob individually --- it calculates 2 times the average of both Alice and Bob's ratings. + + + +```dql +{ + data(func: anyofterms(name, "Alice Bob")) { + name + rated @facets(r as rating) { + name + } + avg(val(r)) + } +} + +``` + + + +Calculating the average ratings of users requires a variable that maps users to the sum of their ratings. + + + +```dql +{ + var(func: has(rated)) { + num_rated as math(1) + rated @facets(r as rating) { + avg_rating as math(r / num_rated) + } + } + + data(func: uid(avg_rating)) { + name + val(avg_rating) + } +} +``` + diff --git a/docusaurus-docs/docs/dql/query/fragments.md b/docusaurus-docs/docs/dql/query/fragments.md new file mode 100644 index 00000000..3fc1ed80 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/fragments.md @@ -0,0 +1,32 @@ +--- +title: Fragments +--- + +The `fragment` keyword lets you define new fragments that can be referenced +in a query, per the [Fragments section of the GraphQL specification](http://spec.graphql.org/June2018/#sec-Language.Fragments). +Fragments allow for the reuse of common repeated selections of fields, reducing +duplicated text in the DQL documents. Fragments can be nested inside fragments, +but no cycles are allowed in such cases. For example: + +```sh +curl -H "Content-Type: application/dql" localhost:8080/query -XPOST -d $' +query { + debug(func: uid(1)) { + name@en + ...TestFrag + } +} +fragment TestFrag { + initial_release_date + ...TestFragB +} +fragment TestFragB { + country +}' | python -m json.tool | less +``` + +:::note +GraphQL+- has been renamed to Dgraph Query Language (DQL). While `application/dql` +is the preferred value for the `Content-Type` header, we will continue to support +`Content-Type: application/graphql+-` to avoid making breaking changes. +::: diff --git a/docusaurus-docs/docs/dql/query/functions.md b/docusaurus-docs/docs/dql/query/functions.md new file mode 100644 index 00000000..1d7fb564 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/functions.md @@ -0,0 +1,834 @@ +--- +title: Functions +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +Functions allow filtering based on properties of nodes or [variables](/dgraph-overview/variables#value-variables). Functions can be applied in the query root or in filters. + + +Comparison functions (`eq`, `ge`, `gt`, `le`, `lt`) in the query root (aka `func:`) can only +be applied on [indexed predicates](/dgraph-overview/dql/predicate-indexing). +Comparison functions can be used on [@filter](/dgraph-overview/dql/query/directive/filter) directives even on predicates that have not been indexed. +Filtering on non-indexed predicates can be slow for large datasets, as they require +iterating over all of the possible values at the level where the filter is being used. + +All other functions, in the query root or in the filter can only be applied to indexed predicates. + +For functions on string valued predicates, if no language preference is given, the function is applied to all languages and strings without a language tag; if a language preference is given, the function is applied only to strings of the given language. + +## Term matching + +### allofterms + +Syntax Example: `allofterms(predicate, "space-separated term list")` + +Schema Types: `string` + +Index Required: `term` + + +Matches strings that have all specified terms in any order; case insensitive. +#### Usage at root + +Query Example: All nodes that have `name` containing terms `indiana` and `jones`, returning the English name and genre in English. + + + +```dql +{ + me(func: allofterms(name@en, "jones indiana")) { + name@en + genre { + name@en + } + } +} +``` + + +#### Usage as Filter + +Query Example: All Steven Spielberg films that contain the words `indiana` and `jones`. The `@filter(has(director.film))` removes nodes with name Steven Spielberg that aren't the director --- the data also contains a character in a film called Steven Spielberg. + + + +```dql +{ + me(func: eq(name@en, "Steven Spielberg")) @filter(has(director.film)) { + name@en + director.film @filter(allofterms(name@en, "jones indiana")) { + name@en + } + } +} +``` + + + +### anyofterms + + +Syntax Example: `anyofterms(predicate, "space-separated term list")` + +Schema Types: `string` + +Index Required: `term` + + +Matches strings that have any of the specified terms in any order; case insensitive. +#### Usage at root + +Query Example: All nodes that have a `name` containing either `poison` or `peacock`. Many of the returned nodes are movies, but people like Joan Peacock also meet the search terms because without a [cascade directive](/dgraph-overview/dql/query/directive/cascade-directive) the query doesn't require a genre. + + + +```dql +{ + me(func:anyofterms(name@en, "poison peacock")) { + name@en + genre { + name@en + } + } +} +``` + + + +#### Usage as filter + +Query Example: All Steven Spielberg movies that contain `war` or `spies`. The `@filter(has(director.film))` removes nodes with name Steven Spielberg that aren't the director --- the data also contains a character in a film called Steven Spielberg. + + + +```dql +{ + me(func: eq(name@en, "Steven Spielberg")) @filter(has(director.film)) { + name@en + director.film @filter(anyofterms(name@en, "war spies")) { + name@en + } + } +} +``` + + + +## Regular Expressions + + +Syntax Examples: `regexp(predicate, /regular-expression/)` or case insensitive `regexp(predicate, /regular-expression/i)` + +Schema Types: `string` + +Index Required: `trigram` + + +Matches strings by regular expression. The regular expression language is that of [go regular expressions](https://golang.org/pkg/regexp/syntax/). + +Query Example: At root, match nodes with `Steven Sp` at the start of `name`, followed by any characters. For each such matched uid, match the films containing `ryan`. Note the difference with `allofterms`, which would match only `ryan` but regular expression search will also match within terms, such as `bryan`. + + + +```dql +{ + directors(func: regexp(name@en, /^Steven Sp.*$/)) { + name@en + director.film @filter(regexp(name@en, /ryan/i)) { + name@en + } + } +} +``` + + + +### Technical details + +A Trigram is a substring of three continuous runes. For example, `Dgraph` has trigrams `Dgr`, `gra`, `rap`, `aph`. + +To ensure efficiency of regular expression matching, Dgraph uses [trigram indexing](https://swtch.com/~rsc/regexp/regexp4.html). That is, Dgraph converts the regular expression to a trigram query, uses the trigram index and trigram query to find possible matches and applies the full regular expression search only to the possibles. +### Writing Efficient Regular Expressions and Limitations + +Keep the following in mind when designing regular expression queries. + +- At least one trigram must be matched by the regular expression (patterns shorter than 3 runes are not supported). That is, Dgraph requires regular expressions that can be converted to a trigram query. +- The number of alternative trigrams matched by the regular expression should be as small as possible (`[a-zA-Z][a-zA-Z][0-9]` is not a good idea). Many possible matches means the full regular expression is checked against many strings; where as, if the expression enforces more trigrams to match, Dgraph can make better use of the index and check the full regular expression against a smaller set of possible matches. +- Thus, the regular expression should be as precise as possible. Matching longer strings means more required trigrams, which helps to effectively use the index. +- If repeat specifications (`*`, `+`, `?`, `{n,m}`) are used, the entire regular expression must not match the _empty_ string or _any_ string: for example, `*` may be used like `[Aa]bcd*` but not like `(abcd)*` or `(abcd)|((defg)*)` +- Repeat specifications after bracket expressions (e.g. `[fgh]{7}`, `[0-9]+` or `[a-z]{3,5}`) are often considered as matching any string because they match too many trigrams. +- If the partial result (for subset of trigrams) exceeds 1000000 uids during index scan, the query is stopped to prohibit expensive queries. + +## Fuzzy matching + + +Syntax: `match(predicate, string, distance)` + +Schema Types: `string` + +Index Required: `trigram` + +Matches predicate values by calculating the [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) to the string, +also known as _fuzzy matching_. The distance parameter must be greater than zero (0). Using a greater distance value can yield more but less accurate results. + +Query Example: At root, fuzzy match nodes similar to `Stephen`, with a distance value of less than or equal to 8. + + + +```dql +{ + directors(func: match(name@en, Stephen, 8)) { + name@en + } +} +``` + + + +Same query with a Levenshtein distance of 3. + + + +```dql +{ + directors(func: match(name@en, Stephen, 3)) { + name@en + } +} +``` + + + +## Vector Similarity Search + +Syntax Examples: `similar_to(predicate, 3, "[0.9, 0.8, 0, 0]")` + +Alternatively the vector can be passed as a variable: `similar_to(predicate, 3, $vec)` + +This function finds the nodes that have `predicate` close to the provided vector. The search is based on the distance metric specified in the index (`cosine`, `euclidean`, or `dotproduct`). The shorter distance indicates more similarity. +The second parameter, `3` specifies that top 3 matches be returned. + +Schema Types: `float32vector` + +Index Required: `hnsw` + + + +## Full-Text Search + +Syntax Examples: `alloftext(predicate, "space-separated text")` and `anyoftext(predicate, "space-separated text")` + +Schema Types: `string` + +Index Required: `fulltext` + + +Apply full-text search with stemming and stop words to find strings matching all or any of the given text. + +The following steps are applied during index generation and to process full-text search arguments: + +1. Tokenization (according to Unicode word boundaries). +1. Conversion to lowercase. +1. Unicode-normalization (to [Normalization Form KC](http://unicode.org/reports/tr15/#Norm_Forms)). +1. Stemming using language-specific stemmer (if supported by language). +1. Stop words removal (if supported by language). + +Dgraph uses [bleve](https://github.com/blevesearch/bleve) for its full-text search indexing. See also the bleve language specific [stop word lists](https://github.com/blevesearch/bleve/tree/master/analysis/lang). + +Following table contains all supported languages, corresponding country-codes, stemming and stop words filtering support. + +| Language | Country Code | Stemming | Stop words | +| :--------: | :----------: | :------: | :--------: | +| Arabic | ar | ✓ | ✓ | +| Armenian | hy | | ✓ | +| Basque | eu | | ✓ | +| Bulgarian | bg | | ✓ | +| Catalan | ca | | ✓ | +| Chinese | zh | ✓ | ✓ | +| Czech | cs | | ✓ | +| Danish | da | ✓ | ✓ | +| Dutch | nl | ✓ | ✓ | +| English | en | ✓ | ✓ | +| Finnish | fi | ✓ | ✓ | +| French | fr | ✓ | ✓ | +| Gaelic | ga | | ✓ | +| Galician | gl | | ✓ | +| German | de | ✓ | ✓ | +| Greek | el | | ✓ | +| Hindi | hi | ✓ | ✓ | +| Hungarian | hu | ✓ | ✓ | +| Indonesian | id | | ✓ | +| Italian | it | ✓ | ✓ | +| Japanese | ja | ✓ | ✓ | +| Korean | ko | ✓ | ✓ | +| Norwegian | no | ✓ | ✓ | +| Persian | fa | | ✓ | +| Portuguese | pt | ✓ | ✓ | +| Romanian | ro | ✓ | ✓ | +| Russian | ru | ✓ | ✓ | +| Spanish | es | ✓ | ✓ | +| Swedish | sv | ✓ | ✓ | +| Turkish | tr | ✓ | ✓ | + + +Query Example: All names that have `dog`, `dogs`, `bark`, `barks`, `barking`, etc. Stop word removal eliminates `the` and `which`. + + + +```dql +{ + movie(func:alloftext(name@en, "the dog which barks")) { + name@en + } +} +``` + + + +## Inequality +### equal to + +Syntax Examples: + +* `eq(predicate, value)` +* `eq(val(varName), value)` +* `eq(predicate, val(varName))` +* `eq(count(predicate), value)` +* `eq(predicate, [val1, val2, ..., valN])` +* `eq(predicate, [$var1, "value", ..., $varN])` + +Schema Types: `int`, `float`, `bool`, `string`, `dateTime` + +Index Required: An index is required for the `eq(predicate, ...)` forms (see table below) when used at query root. For `count(predicate)` at the query root, the `@count` index is required. For variables the values have been calculated as part of the query, so no index is required. + +| Type | Index Options | +|:-----------|:--------------| +| `int` | `int` | +| `float` | `float` | +| `bool` | `bool` | +| `string` | `exact`, `hash`, `term`, `fulltext` | +| `dateTime` | `dateTime` | + +Test for equality of a predicate or variable to a value or find in a list of values. + +The boolean constants are `true` and `false`, so with `eq` this becomes, for example, `eq(boolPred, true)`. + +Query Example: Movies with exactly thirteen genres. + + + +```dql +{ + me(func: eq(count(genre), 13)) { + name@en + genre { + name@en + } + } +} +``` + + + + +Query Example: Directors called Steven who have directed 1,2 or 3 movies. + + + +```dql +{ + steve as var(func: allofterms(name@en, "Steven")) { + films as count(director.film) + } + + stevens(func: uid(steve)) @filter(eq(val(films), [1,2,3])) { + name@en + numFilms : val(films) + } +} +``` + + + +### less than, less than or equal to, greater than and greater than or equal to + +Syntax Examples: for inequality `IE` + +* `IE(predicate, value)` +* `IE(val(varName), value)` +* `IE(predicate, val(varName))` +* `IE(count(predicate), value)` + +With `IE` replaced by + +* `le` less than or equal to +* `lt` less than +* `ge` greater than or equal to +* `gt` greater than + +Schema Types: `int`, `float`, `string`, `dateTime` + +Index required: An index is required for the `IE(predicate, ...)` forms (see table below) when used at query root. For `count(predicate)` at the query root, the `@count` index is required. For variables the values have been calculated as part of the query, so no index is required. + +| Type | Index Options | +|:-----------|:--------------| +| `int` | `int` | +| `float` | `float` | +| `string` | `exact` | +| `dateTime` | `dateTime` | + + +Query Example: Ridley Scott movies released before 1980. + + + +```dql +{ + me(func: eq(name@en, "Ridley Scott")) { + name@en + director.film @filter(lt(initial_release_date, "1980-01-01")) { + initial_release_date + name@en + } + } +} +``` + + + + +Query Example: Movies with directors with `Steven` in `name` and have directed more than `100` actors. + + + +```dql +{ + ID as var(func: allofterms(name@en, "Steven")) { + director.film { + num_actors as count(starring) + } + total as sum(val(num_actors)) + } + + dirs(func: uid(ID)) @filter(gt(val(total), 100)) { + name@en + total_actors : val(total) + } +} +``` + + + + + +Query Example: A movie in each genre that has over 30000 movies. Because there is no order specified on genres, the order will be by UID. The [count index](/dgraph-overview/predicate-indexing#count-index) records the number of edges out of nodes and makes such queries more . + + + +```dql +{ + genre(func: gt(count(~genre), 30000)){ + name@en + ~genre (first:1) { + name@en + } + } +} +``` + + + +Query Example: Directors called Steven and their movies which have `initial_release_date` greater +than that of the movie Minority Report. + + + +```dql +{ + var(func: eq(name@en,"Minority Report")) { + d as initial_release_date + } + + me(func: eq(name@en, "Steven Spielberg")) { + name@en + director.film @filter(ge(initial_release_date, val(d))) { + initial_release_date + name@en + } + } +} +``` + + + +## between + +Syntax Example: `between(predicate, startDateValue, endDateValue)` + +Schema Types: Scalar types, including `dateTime`, `int`, `float` and `string` + +Index Required: `dateTime`, `int`, `float`, and `exact` on strings + +Returns nodes that match an inclusive range of indexed values. The `between` +keyword performs a range check on the index to improve query efficiency, +helping to prevent a wide-ranging query on a large set of data from running +slowly. + +A common use case for the `between` keyword is to search within a +dataset indexed by `dateTime`. The following example query demonstrates this +use case. + +Query Example: Movies initially released in 1977, listed by genre. + + + +```dql +{ + me(func: between(initial_release_date, "1977-01-01", "1977-12-31")) { + name@en + genre { + name@en + } + } +} +``` + + + +## uid + +Syntax Examples: + +* `q(func: uid()) ` +* `predicate @filter(uid(, ..., ))` +* `predicate @filter(uid(a))` for variable `a` +* `q(func: uid(a,b))` for variables `a` and `b` +* `q(func: uid($uids))` for multiple uids in DQL Variables. You have to set the value of this variable as a string (e.g`"[0x1, 0x2, 0x3]"`) in queryWithVars. + +Filters nodes at the current query level to only nodes in the given set of UIDs. + +For query variable `a`, `uid(a)` represents the set of UIDs stored in `a`. For value variable `b`, `uid(b)` represents the UIDs from the UID to value map. With two or more variables, `uid(a,b,...)` represents the union of all the variables. + +`uid()`, like an identity function, will return the requested UID even if the node does not have any edges. + +:::tip +If the UID of a node is known, values for the node can be read directly. +::: + +Query Example: The films of Priyanka Chopra by known UID. + + +```dql +{ + films(func: uid(0x2c964)) { + name@hi + actor.film { + performance.film { + name@hi + } + } + } +} +``` + + + +Query Example: The films of Taraji Henson by genre. + + +```dql +{ + var(func: allofterms(name@en, "Taraji Henson")) { + actor.film { + F as performance.film { + G as genre + } + } + } + + Taraji_films_by_genre(func: uid(G)) { + genre_name : name@en + films : ~genre @filter(uid(F)) { + film_name : name@en + } + } +} +``` + + + + + +Query Example: Taraji Henson films ordered by number of genres, with genres listed in order of how many films Taraji has made in each genre. + + +```dql +{ + var(func: allofterms(name@en, "Taraji Henson")) { + actor.film { + F as performance.film { + G as count(genre) + genre { + C as count(~genre @filter(uid(F))) + } + } + } + } + + Taraji_films_by_genre_count(func: uid(G), orderdesc: val(G)) { + film_name : name@en + genres : genre (orderdesc: val(C)) { + genre_name : name@en + } + } +} +``` + + + +## uid_in + +Syntax Examples: + +* `q(func: ...) @filter(uid_in(predicate, ))` +* `predicate1 @filter(uid_in(predicate2, ))` +* `predicate1 @filter(uid_in(predicate2, [, ..., ]))` +* `predicate1 @filter(uid_in(predicate2, uid(myVariable) ))` + +Schema Types: UID + +Index Required: none + +While the `uid` function filters nodes at the current level based on UID, function `uid_in` allows looking ahead along an edge to check that it leads to a particular UID. This can often save an extra query block and avoids returning the edge. + +`uid_in` cannot be used at root. It accepts multiple UIDs as its argument, and it accepts a UID variable (which can contain a map of UIDs). + +Query Example: The collaborations of Marc Caro and Jean-Pierre Jeunet (UID 0x99706). If the UID of Jean-Pierre Jeunet is known, querying this way removes the need to have a block extracting his UID into a variable and the extra edge traversal and filter for `~director.film`. + + + +```dql +{ + caro(func: eq(name@en, "Marc Caro")) { + name@en + director.film @filter(uid_in(~director.film, 0x99706)) { + name@en + } + } +} +``` + + + +You can also query for Jean-Pierre Jeunet if you don't know his UID and use it in a UID variable. + + + +```dql +{ + getJeunet as q(func: eq(name@fr, "Jean-Pierre Jeunet")) + + caro(func: eq(name@en, "Marc Caro")) { + name@en + director.film @filter(uid_in(~director.film, uid(getJeunet) )) { + name@en + } + } +} +``` + + +## type + + +Query Example: all nodes of type "Animal" + + + +```dql +{ + q(func: type(Animal)) { + uid + name + } +} +``` + + + +`type(Animal)` equivalent to `eq(dgraph.type,"Animal")` + +type() can also be used as a filter: + + + +```dql +{ + q(func: has(parent)) { + uid + parent @filter(type(Person)) { + uid + name + } + } +} +``` + + +## has + +Syntax Examples: `has(predicate)` + +Schema Types: all + +Determines if a node has a particular predicate. + +Query Example: First five directors and all their movies that have a release date recorded. Directors have directed at least one film --- equivalent semantics to `gt(count(director.film), 0)`. + + +```dql +{ + me(func: has(director.film), first: 5) { + name@en + director.film @filter(has(initial_release_date)) { + initial_release_date + name@en + } + } +} +``` + + +## Geolocation + +:::note As of now we only support indexing Point, Polygon and MultiPolygon [geometry types](https://github.com/twpayne/go-geom#geometry-types). However, Dgraph can store other types of gelocation data. ::: + +Note that for geo queries, any polygon with holes is replace with the outer loop, ignoring holes. Also, as for version 0.7.7 polygon containment checks are approximate. +### Mutations + +To make use of the geo functions you would need an index on your predicate. +``` +loc: geo @index(geo) . +``` + +Here is how you would add a `Point`. + +``` +{ + set { + <_:0xeb1dde9c> "{'type':'Point','coordinates':[-122.4220186,37.772318]}"^^ . + <_:0xeb1dde9c> "Hamon Tower" . + <_:0xeb1dde9c> "Location" . + } +} +``` + +Here is how you would associate a `Polygon` with a node. Adding a `MultiPolygon` is also similar. + +``` +{ + set { + <_:0xf76c276b> "{'type':'Polygon','coordinates':[[[-122.409869,37.7785442],[-122.4097444,37.7786443],[-122.4097544,37.7786521],[-122.4096334,37.7787494],[-122.4096233,37.7787416],[-122.4094004,37.7789207],[-122.4095818,37.7790617],[-122.4097883,37.7792189],[-122.4102599,37.7788413],[-122.409869,37.7785442]],[[-122.4097357,37.7787848],[-122.4098499,37.778693],[-122.4099025,37.7787339],[-122.4097882,37.7788257],[-122.4097357,37.7787848]]]}"^^ . + <_:0xf76c276b> "Best Western Americana Hotel" . + <_:0xf76c276b> "Location" . + } +} +``` + +The above examples have been picked from our [SF Tourism](https://github.com/dgraph-io/benchmarks/blob/master/data/sf.tourism.gz?raw=true) dataset. +### Query +#### near + +Syntax Example: `near(predicate, [long, lat], distance)` + +Schema Types: `geo` + +Index Required: `geo` + +Matches all entities where the location given by `predicate` is within `distance` meters of geojson coordinate `[long, lat]`. + +Query Example: Tourist destinations within 1000 meters (1 kilometer) of a point in Golden Gate Park in San Francisco. + + + +```dql +{ + tourist(func: near(loc, [-122.469829, 37.771935], 1000) ) { + name + } +} +``` + + + +#### within + +Syntax Example: `within(predicate, [[[long1, lat1], ..., [longN, latN]]])` + +Schema Types: `geo` + +Index Required: `geo` + +Matches all entities where the location given by `predicate` lies within the polygon specified by the geojson coordinate array. + +Query Example: Tourist destinations within the specified area of Golden Gate Park, San Francisco. + + + +```dql +{ + tourist(func: within(loc, [[[-122.47266769409178, 37.769018558337926 ], [ -122.47266769409178, 37.773699921075135 ], [ -122.4651575088501, 37.773699921075135 ], [ -122.4651575088501, 37.769018558337926 ], [ -122.47266769409178, 37.769018558337926]]] )) { + name + } +} +``` + + + +#### contains + +Syntax Examples: `contains(predicate, [long, lat])` or `contains(predicate, [[long1, lat1], ..., [longN, latN]])` + +Schema Types: `geo` + +Index Required: `geo` + +Matches all entities where the polygon describing the location given by `predicate` contains geojson coordinate `[long, lat]` or given geojson polygon. + +Query Example : All entities that contain a point in the flamingo enclosure of San Francisco Zoo. + + +```dql +{ + tourist(func: contains(loc, [ -122.50326097011566, 37.73353615592843 ] )) { + name + } +} +``` + + + +#### intersects + +Syntax Example: `intersects(predicate, [[[long1, lat1], ..., [longN, latN]]])` + +Schema Types: `geo` + +Index Required: `geo` + +Matches all entities where the polygon describing the location given by `predicate` intersects the given geojson polygon. + + + + +```dql +{ + tourist(func: intersects(loc, [[[-122.503325343132, 37.73345766902749 ], [ -122.503325343132, 37.733903134117966 ], [ -122.50271648168564, 37.733903134117966 ], [ -122.50271648168564, 37.73345766902749 ], [ -122.503325343132, 37.73345766902749]]] )) { + name + } +} +``` + + diff --git a/docusaurus-docs/docs/dql/query/graphql-variables.md b/docusaurus-docs/docs/dql/query/graphql-variables.md new file mode 100644 index 00000000..5df70cec --- /dev/null +++ b/docusaurus-docs/docs/dql/query/graphql-variables.md @@ -0,0 +1,99 @@ +--- +title: Query parameters +--- + +Syntax Examples (using default values): + +* `query title($name: string = "Bauman") { ... }` +* `query title($age: int = "95") { ... }` +* `query title($uids: string = "0x1") { ... }` +* `query title($uids: string = "[0x1, 0x2, 0x3]") { ... }`. The value of the variable is a quoted array. + +`Variables` can be defined and used in queries which helps in query reuse and avoids costly string building in clients at runtime by passing a separate variable map. A variable starts with a `$` symbol. +For **HTTP requests** with Query parameters, we must use `Content-Type: application/json` header and pass data with a JSON object containing `query` and `variables`. + +```sh +curl -H "Content-Type: application/json" localhost:8080/query -XPOST -d $'{ + "query": "query test($a: string) { test(func: eq(name, $a)) { \n uid \n name \n } }", + "variables": { "$a": "Alice" } +}' | python -m json.tool | less +``` + + +```dql + +query test($a: int, $b: int, $name: string) { + me(func: allofterms(name@en, $name)) { + name@en + director.film (first: $a, offset: $b) { + name @en + genre(first: $a) { + name@en + } + } + } +} +``` + + +* Variables can have default values. In the example below, `$a` has a default value of `2`. Since the value for `$a` isn't provided in the variable map, `$a` takes on the default value. +* Variables whose type is suffixed with a `!` can't have a default value but must have a value as part of the variables map. +* The value of the variable must be parsable to the given type, if not, an error is thrown. +* The variable types that are supported as of now are: `int`, `float`, `bool` and `string`. +* Any variable that is being used must be declared in the named query clause in the beginning. + + + +```dql +{{< runnable vars="{\"$b\": \"10\", \"$name\": \"Steven Spielberg\"}" >}} +query test($a: int = 2, $b: int!, $name: string) { + me(func: allofterms(name@en, $name)) { + director.film (first: $a, offset: $b) { + genre(first: $a) { + name@en + } + } + } +} +``` + + +You can also use array with Query parameters. + + +```dql +{{< runnable vars="{\"$b\": \"10\", \"$aName\": \"Steven Spielberg\", \"$bName\": \"Quentin Tarantino\"}" >}} +query test($a: int = 2, $b: int!, $aName: string, $bName: string) { + me(func: eq(name@en, [$aName, $bName])) { + director.film (first: $a, offset: $b) { + genre(first: $a) { + name@en + } + } + } +} +``` + + +We also support variable substitution in facets. + + +```dql +{{< runnable vars="{\"$name\": \"Alice\", \"$IsClose\": \"true\"}" >}} +query test($name: string = "Alice", $IsClose: string = "true") { + data(func: eq(name, $name)) { + friend @facets(eq(close, $IsClose)) { + name + } + colleague : friend @facets(eq(close, false)) { + name + } + } +} +``` + + +:::note +If you want to input a list of uids as a GraphQL variable value, you can have the variable as string type and +have the value surrounded by square brackets like `["13", "14"]`. +::: \ No newline at end of file diff --git a/docusaurus-docs/docs/dql/query/index.md b/docusaurus-docs/docs/dql/query/index.md new file mode 100644 index 00000000..ced3d8b0 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/index.md @@ -0,0 +1,9 @@ +--- +title: Query +--- + +Dgraph Query Language (DQL) is Dgraph’s proprietary language to add, modify, delete and fetch data. + +Fetching data is done through [Queries](/dgraph-overview/dql/query/dql-query). + +Adding, modifying or deleting data is done through [Mutations](/dgraph-overview/dql/dql-mutation). diff --git a/docusaurus-docs/docs/dql/query/kshortest-path-queries.md b/docusaurus-docs/docs/dql/query/kshortest-path-queries.md new file mode 100644 index 00000000..5e5671aa --- /dev/null +++ b/docusaurus-docs/docs/dql/query/kshortest-path-queries.md @@ -0,0 +1,288 @@ +--- +title: Shortest Path Queries +--- + +The shortest path between a source (`from`) node and destination (`to`) node can be found using the keyword `shortest` for the query block name. It requires the source node UID, destination node UID and the predicates (at least one) that have to be considered for traversal. A `shortest` query block returns the shortest path under `_path_` in the query response. The path can also be stored in a variable which is used in other query blocks. + +## K-Shortest Path queries + +By default the shortest path is returned. With `numpaths: k`, and `k > 1`, the k-shortest paths are returned. Cyclical paths are pruned out from the result of k-shortest path query. With `depth: n`, the paths up to `n` depth away are returned. + +:::note +- If no predicates are specified in the `shortest` block, no path can be fetched as no edge is traversed. +- If you're seeing queries take a long time, you can set a [gRPC deadline](https://grpc.io/blog/deadlines) to stop the query after a certain amount of time. +::: + +For example: + +```sh +curl localhost:8080/alter -XPOST -d $' + name: string @index(exact) . +' | python -m json.tool | less +``` + +```graphql +{ + set { + _:a _:b (weight=0.1) . + _:b _:c (weight=0.2) . + _:c _:d (weight=0.3) . + _:a _:d (weight=1) . + _:a "Alice" . + _:a "Person" . + _:b "Bob" . + _:b "Person" . + _:c "Tom" . + _:c "Person" . + _:d "Mallory" . + _:d "Person" . + } +} +``` + +The shortest path between Alice and Mallory (assuming UIDs `0x2` and `0x5` respectively) can be found with this query: + +```graphql +{ + path as shortest(from: 0x2, to: 0x5) { + friend + } + path(func: uid(path)) { + name + } +} +``` + +Which returns the following results. + +:::note +without considering the `weight` facet, each edges' weight is considered as `1` +::: + +``` +{ + "data": { + "path": [ + { + "name": "Alice" + }, + { + "name": "Mallory" + } + ], + "_path_": [ + { + "uid": "0x2", + "friend": [ + { + "uid": "0x5" + } + ] + } + ] + } +} +``` + +We can return more paths by specifying `numpaths`. Setting `numpaths: 2` returns the shortest two paths: + +```graphql +{ + + A as var(func: eq(name, "Alice")) + M as var(func: eq(name, "Mallory")) + + path as shortest(from: uid(A), to: uid(M), numpaths: 2) { + friend + } + path(func: uid(path)) { + name + } +} +``` + +:::noteIn the query above, instead of using UID literals, we query both people using var blocks and the `uid()` function. You can also combine it with [GraphQL Variables](/dgraph-overview/dql/query/graphql-variables).::: + +## Edge weight + +The shortest path implementation in Dgraph relies on facets to provide weights. Using `facets` on the edges let you define the edges' weight as follows: + +:::noteOnly one facet per predicate is allowed in the shortest query block.::: + +```graphql +{ + path as shortest(from: 0x2, to: 0x5) { + friend @facets(weight) + } + + path(func: uid(path)) { + name + } +} +``` + +``` +{ + "data": { + "path": [ + { + "name": "Alice" + }, + { + "name": "Bob" + }, + { + "name": "Tom" + }, + { + "name": "Mallory" + } + ], + "_path_": [ + { + "uid": "0x2", + "friend": [ + { + "uid": "0x3", + "friend|weight": 0.1, + "friend": [ + { + "uid": "0x4", + "friend|weight": 0.2, + "friend": [ + { + "uid": "0x5", + "friend|weight": 0.3 + } + ] + } + ] + } + ] + } + ] + } +} +``` + +### Traverse example + +Here is a graph traversal example that allows you to find the shortest path between friends using a `Car` or a `Bus`. + +:::tip +Car and Bus movement for each relation is modeled as facets and specified in the shortest query +::: + +```graphql +{ + set { + _:a _:b (weightCar=10, weightBus=1 ) . + _:b _:c (weightCar=20, weightBus=1) . + _:c _:d (weightCar=11, weightBus=1.1) . + _:a _:d (weightCar=70, weightBus=2) . + _:a "Alice" . + _:a "Person" . + _:b "Bob" . + _:b "Person" . + _:c "Tom" . + _:c "Person" . + _:d "Mallory" . + _:d "Person" . + } +} +``` + +Query to find the shortest path relying on `Car` and `Bus`: + +```graphql +{ + + A as var(func: eq(name, "Alice")) + M as var(func: eq(name, "Mallory")) + + sPathBus as shortest(from: uid(A), to: uid(M)) { + friend + @facets(weightBus) + } + + sPathCar as shortest(from: uid(A), to: uid(M)) { + friend + @facets(weightCar) + } + + pathBus(func: uid(sPathBus)) { + name + } + + pathCar(func: uid(sPathCar)) { + name + } +} +``` + +The response contains the following paths conforming to the specified weights: + +``` + "pathBus": [ + { + "name": "Alice" + }, + { + "name": "Mallory" + } + ], + "pathCar": [ + { + "name": "Alice" + }, + { + "name": "Bob" + }, + { + "name": "Tom" + }, + { + "name": "Mallory" + } + ] +``` + +## Constraints + +Constraints can be applied to the intermediate nodes as follows. + +```graphql +{ + path as shortest(from: 0x2, to: 0x5) { + friend @filter(not eq(name, "Bob")) @facets(weight) + relative @facets(liking) + } + + relationship(func: uid(path)) { + name + } +} +``` + +The k-shortest path algorithm (used when `numpaths` > 1) also accepts the arguments `minweight` and `maxweight`, which take a float as their value. When they are passed, only paths within the weight range `[minweight, maxweight]` will be considered as valid paths. This can be used, for example, to query the shortest paths that traverse between 2 and 4 nodes. + +```graphql +{ + path as shortest(from: 0x2, to: 0x5, numpaths: 2, minweight: 2, maxweight: 4) { + friend + } + path(func: uid(path)) { + name + } +} +``` + +## Notes + +Some points to keep in mind for shortest path queries: + +- Weights must be non-negative. Dijkstra's algorithm is used to calculate the shortest paths. +- Only one facet per predicate in the shortest query block is allowed. +- Only one `shortest` path block is allowed per query. Only one `_path_` is returned in the result. For queries with `numpaths` > 1, `_path_` contains all the paths. +- Cyclical paths are not included in the result of k-shortest path query. +- For k-shortest paths (when `numpaths` > 1), the result of the shortest path query variable will only return a single path which will be the shortest path among the k paths. All k paths are returned in `_path_`. diff --git a/docusaurus-docs/docs/dql/query/language-support.md b/docusaurus-docs/docs/dql/query/language-support.md new file mode 100644 index 00000000..458e8015 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/language-support.md @@ -0,0 +1,70 @@ +--- +title: Language Support +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + + +:::noteA `@lang` directive must be specified in the schema to query or mutate +predicates with language tags.::: + +Dgraph supports UTF-8 strings. + +In a query, for a string valued edge `edge`, the syntax +``` +edge@lang1:...:langN +``` +specifies the preference order for returned languages, with the following rules. + +* At most one result will be returned (except in the case where the language list is set to *). +* The preference list is considered left to right: if a value in given language is not found, the next language from the list is considered. +* If there are no values in any of the specified languages, no value is returned. +* A final `.` means that a value without a specified language is returned or if there is no value without language, a value in ''some'' language is returned. +* Setting the language list value to * will return all the values for that predicate along with their language. Values without a language tag are also returned. + +For example: + +- `name` => Look for an untagged string; return nothing if no untagged value exits. +- `name@.` => Look for an untagged string, then any language. +- `name@en` => Look for `en` tagged string; return nothing if no `en` tagged string exists. +- `name@en:.` => Look for `en`, then untagged, then any language. +- `name@en:pl` => Look for `en`, then `pl`, otherwise nothing. +- `name@en:pl:.` => Look for `en`, then `pl`, then untagged, then any language. +- `name@*` => Look for all the values of this predicate and return them along with their language. For example, if there are two values with languages en and hi, this query will return two keys named "name@en" and "name@hi". + + +:::note + +In functions, language lists (including the `@*` notation) are not allowed. +Untagged predicates, Single language tags, and `.` notation work as described +above. + +--- +In [full-text search functions](/dgraph-overview/functions#full-text-search) +(`alloftext`, `anyoftext`), when no language is specified (untagged or `@.`), +the default (English) full-text tokenizer is used. This does not mean that +the value with the `en` tag will be searched when querying the untagged value, +but that untagged values will be treated as English text. If you don't want that +to be the case, use the appropriate tag for the desired language, both for +mutating and querying the value. +::: +Query Example: Some of Bollywood director and actor Farhan Akhtar's movies have a name stored in Russian as well as Hindi and English, others do not. + + +```dql +{ + q(func: allofterms(name@en, "Farhan Akhtar")) { + name@hi + name@en + director.film { + name@ru:hi:en + name@en + name@hi + name@ru + } + } +} +``` + + \ No newline at end of file diff --git a/docusaurus-docs/docs/dql/query/pagination.md b/docusaurus-docs/docs/dql/query/pagination.md new file mode 100644 index 00000000..965b33f3 --- /dev/null +++ b/docusaurus-docs/docs/dql/query/pagination.md @@ -0,0 +1,154 @@ +--- +title: Pagination +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +Pagination allows returning only a portion, rather than the whole, result set. This can be useful for top-k style queries as well as to reduce the size of the result set for client side processing or to allow paged access to results. + +Pagination is often used with [sorting](/dgraph-overview/dql/query/sorting). + +:::noteWithout a sort order specified, the results are sorted by `uid`, which is assigned randomly. So the ordering, while deterministic, might not be what you expected.::: +## First + +Syntax Examples: + +* `q(func: ..., first: N)` +* `predicate (first: N) { ... }` +* `predicate @filter(...) (first: N) { ... }` + +For positive `N`, `first: N` retrieves the first `N` results, by sorted or UID order. + +For negative `N`, `first: N` retrieves the last `N` results, by sorted or UID order. Currently, negative is only supported when no order is applied. To achieve the effect of a negative with a sort, reverse the order of the sort and use a positive `N`. + + +Query Example: Last two films, by UID order, directed by Steven Spielberg and the first three genres of those movies, sorted alphabetically by English name. + + + +```dql +{ + me(func: allofterms(name@en, "Steven Spielberg")) { + director.film (first: -2) { + name@en + initial_release_date + genre (orderasc: name@en) (first: 3) { + name@en + } + } + } +} +``` + + + + + +Query Example: The three directors named Steven who have directed the most actors of all directors named Steven. + + + +```dql +{ + ID as var(func: allofterms(name@en, "Steven")) @filter(has(director.film)) { + director.film { + stars as count(starring) + } + totalActors as sum(val(stars)) + } + + mostStars(func: uid(ID), orderdesc: val(totalActors), first: 3) { + name@en + stars : val(totalActors) + + director.film { + name@en + } + } +} +``` + + +## Offset + +Syntax Examples: + +* `q(func: ..., offset: N)` +* `predicate (offset: N) { ... }` +* `predicate (first: M, offset: N) { ... }` +* `predicate @filter(...) (offset: N) { ... }` + +With `offset: N` the first `N` results are not returned. Used in combination with first, `first: M, offset: N` skips over `N` results and returns the following `M`. + +:::noteSkipping over `N` results takes time proportional to `N` (complexity `O(N)`). In other words, the larger `N`, the longer it takes to compute the result set. Prefer [after](#after) over `offset`.::: + +Query Example: Order Hark Tsui's films by English title, skip over the first 4 and return the following 6. + + + +```dql +{ + me(func: allofterms(name@en, "Hark Tsui")) { + name@zh + name@en + director.film (orderasc: name@en) (first:6, offset:4) { + genre { + name@en + } + name@zh + name@en + initial_release_date + } + } +} +``` + + +## After + +Syntax Examples: + +* `q(func: ..., after: UID)` +* `predicate (first: N, after: UID) { ... }` +* `predicate @filter(...) (first: N, after: UID) { ... }` + +Another way to get results after skipping over some results is to use the default UID ordering and skip directly past a node specified by UID. For example, a first query could be of the form `predicate (after: 0x0, first: N)`, or just `predicate (first: N)`, with subsequent queries of the form `predicate(after: , first: N)`. + +:::noteSkipping over results with `after` takes constant time (complexity `O(1)`). In other words, no matter how many results are skipped, no extra time adds to computing the result set. This should be preferred over [offset](#offset).::: + +Query Example: The first five of Baz Luhrmann's films, sorted by UID order. + + + +```dql +{ + me(func: allofterms(name@en, "Baz Luhrmann")) { + name@en + director.film (first:5) { + uid + name@en + } + } +} +``` + + + +The fifth movie is the Australian movie classic Strictly Ballroom. It has UID `0x99e44`. The results after Strictly Ballroom can now be obtained with `after`. + + + +```dql +{ + me(func: allofterms(name@en, "Baz Luhrmann")) { + name@en + director.film (first:5, after: 0x99e44) { + uid + name@en + } + } +} +``` + + diff --git a/docusaurus-docs/docs/dql/query/running-examples.md b/docusaurus-docs/docs/dql/query/running-examples.md new file mode 100644 index 00000000..b28b14bd --- /dev/null +++ b/docusaurus-docs/docs/dql/query/running-examples.md @@ -0,0 +1,55 @@ +--- +title: Running examples +--- + +The following pages are the language reference for DQL. + +They contain examples that you can run interactively using a database of 21 million triples about movies and actors. + +The queries are executed on an instance of Dgraph running at https://play.dgraph.io/. + +#### Example database schema + +The example movie database uses the following schema: + +``` +# Define Directives and index + +director.film: [uid] @reverse . +actor.film: [uid] @count . +genre: [uid] @reverse . +initial_release_date: dateTime @index(year) . +name: string @index(exact, term) @lang . +starring: [uid] . +performance.film: [uid] . +performance.character_note: string . +performance.character: [uid] . +performance.actor: [uid] . +performance.special_performance_type: [uid] . +type: [uid] . + +# Define Types + +type Person { + name + director.film + actor.film +} + +type Movie { + name + initial_release_date + genre + starring +} + +type Genre { + name +} + +type Performance { + performance.film + performance.character + performance.actor +} +``` diff --git a/docusaurus-docs/docs/dql/query/sorting.md b/docusaurus-docs/docs/dql/query/sorting.md new file mode 100644 index 00000000..a61a1d2c --- /dev/null +++ b/docusaurus-docs/docs/dql/query/sorting.md @@ -0,0 +1,89 @@ +--- +title: Sorting +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +Syntax Examples: + +* `q(func: ..., orderasc: predicate)` +* `q(func: ..., orderdesc: val(varName))` +* `predicate (orderdesc: predicate) { ... }` +* `predicate @filter(...) (orderasc: N) { ... }` +* `q(func: ..., orderasc: predicate1, orderdesc: predicate2)` + +Sortable Types: `int`, `float`, `String`, `dateTime`, `default` + +Results can be sorted in ascending order (`orderasc`) or descending order (`orderdesc`) by a predicate or variable. + +For sorting on predicates with [sortable indices](/dgraph-overview/predicate-indexing#sortable-indices), Dgraph sorts on the values and with the index in parallel and returns whichever result is computed first. + +:::note +Dgraph returns `null` values at the end of the results, irrespective of their sort. This behavior is consistent across indexed and non-indexed sorts. +::: + +:::tip +Sorted queries retrieve up to 1000 results by default. This can be changed with [first](/dgraph-overview/pagination#first). +::: + + +Query Example: French director Jean-Pierre Jeunet's movies sorted by release date. + + + +```dql +{ + me(func: allofterms(name@en, "Jean-Pierre Jeunet")) { + name@fr + director.film(orderasc: initial_release_date) { + name@fr + name@en + initial_release_date + } + } +} +``` + + + +Sorting can be performed at root and on value variables. + +Query Example: All genres sorted alphabetically and the five movies in each genre with the most genres. + + + +```dql +{ + genres as var(func: has(~genre)) { + ~genre { + numGenres as count(genre) + } + } + + genres(func: uid(genres), orderasc: name@en) { + name@en + ~genre (orderdesc: val(numGenres), first: 5) { + name@en + genres : val(numGenres) + } + } +} +``` + + + +Sorting can also be performed by multiple predicates as shown below. If the values are equal for the +first predicate, then they are sorted by the second predicate and so on. + +Query Example: Find all nodes which have type Person, sort them by their first_name and among those +that have the same first_name sort them by last_name in descending order. + +``` +{ + me(func: type("Person"), orderasc: first_name, orderdesc: last_name) { + first_name + last_name + } +} +``` diff --git a/docusaurus-docs/docs/dql/query/variables.md b/docusaurus-docs/docs/dql/query/variables.md new file mode 100644 index 00000000..d4036dcb --- /dev/null +++ b/docusaurus-docs/docs/dql/query/variables.md @@ -0,0 +1,307 @@ +--- +title: Variables +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + +## Query Variables +Syntax Examples: + +* `varName as q(func: ...) { ... }` +* `varName as var(func: ...) { ... }` +* `varName as predicate { ... }` +* `varName as predicate @filter(...) { ... }` + +Types : `uid` + +Nodes (UIDs) matched at one place in a query can be stored in a variable and used elsewhere. Query variables can be used in other query blocks or in a child node of the defining block. + +Query variables do not affect the semantics of the query at the point of definition. Query variables are evaluated to all nodes matched by the defining block. + +In general, query blocks are executed in parallel, but variables impose an evaluation order on some blocks. Cycles induced by variable dependence are not permitted. + +If a variable is defined, it must be used elsewhere in the query. + +A query variable is used by extracting the UIDs in it with `uid(var-name)`. + +The syntax `func: uid(A,B)` or `@filter(uid(A,B))` means the union of UIDs for variables `A` and `B`. + +Query Example: The movies of Angelia Jolie and Brad Pitt where both have acted on movies in the same genre. Note that `B` and `D` match all genres for all movies, not genres per movie. + + +```dql +{ + var(func:allofterms(name@en, "angelina jolie")) { + actor.film { + A AS performance.film { # All films acted in by Angelina Jolie + B As genre # Genres of all the films acted in by Angelina Jolie + } + } + } + + var(func:allofterms(name@en, "brad pitt")) { + actor.film { + C AS performance.film { # All films acted in by Brad Pitt + D as genre # Genres of all the films acted in by Brad Pitt + } + } + } + + films(func: uid(D)) @filter(uid(B)) { # Genres from both Angelina and Brad + name@en + ~genre @filter(uid(A, C)) { # Movies in either A or C. + name@en + } + } +} +``` + + + +## Value Variables +Syntax Examples: + +* `varName as scalarPredicate` +* `varName as count(predicate)` +* `varName as avg(...)` +* `varName as math(...)` + +Types : `int`, `float`, `String`, `dateTime`, `default`, `geo`, `bool` + +Value variables store scalar values. Value variables are a map from the UIDs of the enclosing block to the corresponding values. + +It therefore only makes sense to use the values from a value variable in a context that matches the same UIDs - if used in a block matching different UIDs the value variable is undefined. + +It is an error to define a value variable but not use it elsewhere in the query. + +Value variables are used by extracting the values with `val(var-name)`, or by extracting the UIDs with `uid(var-name)`. + +[Facet](/dgraph-overview/dql/query/facets) values can be stored in value variables. + +Query Example: The number of movie roles played by the actors of the 80's classic "The Princess Bride". Query variable `pbActors` matches the UIDs of all actors from the movie. Value variable `roles` is thus a map from actor UID to number of roles. Value variable `roles` can be used in the `totalRoles` query block because that query block also matches the `pbActors` UIDs, so the actor to number of roles map is available. + + + +```dql +{ + var(func:allofterms(name@en, "The Princess Bride")) { + starring { + pbActors as performance.actor { + roles as count(actor.film) + } + } + } + totalRoles(func: uid(pbActors), orderasc: val(roles)) { + name@en + numRoles : val(roles) + } +} +``` + + + + +Value variables can be used in place of UID variables by extracting the UID list from the map. + +Query Example: The same query as the previous example, but using value variable `roles` for matching UIDs in the `totalRoles` query block. + + + +```dql +{ + var(func:allofterms(name@en, "The Princess Bride")) { + starring { + performance.actor { + roles as count(actor.film) + } + } + } + totalRoles(func: uid(roles), orderasc: val(roles)) { + name@en + numRoles : val(roles) + } +} +``` + + + + +## Variable Propagation + +Like query variables, value variables can be used in other query blocks and in blocks nested within the defining block. When used in a block nested within the block that defines the variable, the value is computed as a sum of the variable for parent nodes along all paths to the point of use. This is called variable propagation. + +For example: +``` +{ + q(func: uid(0x01)) { + myscore as math(1) # A + friends { # B + friends { # C + ...myscore... + } + } + } +} +``` +At line A, a value variable `myscore` is defined as mapping node with UID `0x01` to value 1. At B, the value for each friend is still 1: there is only one path to each friend. Traversing the friend edge twice reaches the friends of friends. The variable `myscore` gets propagated such that each friend of friend will receive the sum of its parents values: if a friend of a friend is reachable from only one friend, the value is still 1, if they are reachable from two friends, the value is two and so on. That is, the value of `myscore` for each friend of friends inside the block marked C will be the number of paths to them. + +**The value that a node receives for a propagated variable is the sum of the values of all its parent nodes.** + +This propagation is useful, for example, in normalizing a sum across users, finding the number of paths between nodes and accumulating a sum through a graph. + + + +Query Example: For each Harry Potter movie, the number of roles played by actor Warwick Davis. + + +```dql +{ + num_roles(func: eq(name@en, "Warwick Davis")) @cascade @normalize { + + paths as math(1) # records number of paths to each character + + actor : name@en + + actor.film { + performance.film @filter(allofterms(name@en, "Harry Potter")) { + film_name : name@en + characters : math(paths) # how many paths (i.e. characters) reach this film + } + } + } +} +``` + + + + +Query Example: Each actor who has been in a Peter Jackson movie and the fraction of Peter Jackson movies they have appeared in. + + +```dql +{ + movie_fraction(func:eq(name@en, "Peter Jackson")) @normalize { + + paths as math(1) + total_films : num_films as count(director.film) + director : name@en + + director.film { + starring { + performance.actor { + fraction : math(paths / (num_films/paths)) + actor : name@en + } + } + } + } +} +``` + + + +More examples can be found in two Dgraph blog posts about using variable propagation for recommendation engines ([post 1](https://open.dgraph.io/post/recommendation/), [post 2](https://open.dgraph.io/post/recommendation2/)). + +## Math on value variables +Value variables can be combined using mathematical functions. For example, this could be used to associate a score which is then used to order or perform other operations, such as might be used in building news feeds, simple recommendation systems, and so on. + +Math statements must be enclosed within `math( )` and must be stored to a value variable. + +The supported operators are as follows: + +| Operators | Types accepted | What it does | +| :------------: | :--------------: | :------------------------: | +| `+` `-` `*` `/` `%` | `int`, `float` | performs the corresponding operation | +| `min` `max` | All types except `geo`, `bool` (binary functions) | selects the min/max value among the two | +| `<` `>` `<=` `>=` `==` `!=` | All types except `geo`, `bool` | Returns true or false based on the values | +| `floor` `ceil` `ln` `exp` `sqrt` | `int`, `float` (unary function) | performs the corresponding operation | +| `since` | `dateTime` | Returns the number of seconds in float from the time specified | +| `pow(a, b)` | `int`, `float` | Returns `a to the power b` | +| `logbase(a,b)` | `int`, `float` | Returns `log(a)` to the base `b` | +| `cond(a, b, c)` | first operand must be a Boolean | selects `b` if `a` is true else `c` | + + +:::note +If an integer overflow occurs, or an operand is passed to a math operation (such as `ln`, `logbase`, `sqrt`, `pow`) +which results in an illegal operation, Dgraph will return an error. +::: + +Query Example: Form a score for each of Steven Spielberg's movies as the sum of number of actors, number of genres and number of countries. List the top five such movies in order of decreasing score. + + + +```dql +{ + var(func:allofterms(name@en, "steven spielberg")) { + films as director.film { + p as count(starring) + q as count(genre) + r as count(country) + score as math(p + q + r) + } + } + + TopMovies(func: uid(films), orderdesc: val(score), first: 5){ + name@en + val(score) + } +} +``` + + + +Value variables and aggregations of them can be used in filters. + +Query Example: Calculate a score for each Steven Spielberg movie with a condition on release date to penalize movies that are more than 20 years old, filtering on the resulting score. + + + +```dql +{ + var(func:allofterms(name@en, "steven spielberg")) { + films as director.film { + p as count(starring) + q as count(genre) + date as initial_release_date + years as math(since(date)/(365*24*60*60)) + score as math(cond(years > 20, 0, ln(p)+q-ln(years))) + } + } + + TopMovies(func: uid(films), orderdesc: val(score)) @filter(gt(val(score), 2)){ + name@en + val(score) + val(date) + } +} +``` + + + + +Values calculated with math operations are stored to value variables and so can be aggregated. + +Query Example: Compute a score for each Steven Spielberg movie and then aggregate the score. + + + +```dql +{ + steven as var(func:eq(name@en, "Steven Spielberg")) @filter(has(director.film)) { + director.film { + p as count(starring) + q as count(genre) + r as count(country) + score as math(p + q + r) + } + directorScore as sum(val(score)) + } + + score(func: uid(steven)){ + name@en + val(directorScore) + } +} +``` + + diff --git a/docusaurus-docs/docs/dql/tips/index.md b/docusaurus-docs/docs/dql/tips/index.md new file mode 100644 index 00000000..392236df --- /dev/null +++ b/docusaurus-docs/docs/dql/tips/index.md @@ -0,0 +1,168 @@ +--- +title: "DQL: Tips and Tricks" +--- +import RunnableCodeBlock from '@site/src/components/RunnableCodeBlock'; + + + +## Get Sample Data + +Use the `has` function to get some sample nodes. + + + +```dql +{ + result(func: has(director.film), first: 10) { + uid + expand(_all_) + } +} +``` + + + + +## Count number of connecting nodes + +Use `expand(_all_)` to expand the nodes' edges, then assign them to a variable. +The variable can now be used to iterate over the unique neighboring nodes. +Then use `count(uid)` to count the number of nodes in a block. + + + +```dql +{ + uids(func: has(director.film), first: 1) { + uid + expand(_all_) { u as uid } + } + + result(func: uid(u)) { + count(uid) + } +} +``` + + + +## Search on non-indexed predicates + +Use the `has` function among the value variables to search on non-indexed predicates. + + + +```dql +{ + var(func: has(festival.date_founded)) { + p as festival.date_founded + } + query(func: eq(val(p), "1961-01-01T00:00:00Z")) { + uid + name@en + name@ru + name@pl + festival.date_founded + festival.focus { name@en } + festival.individual_festivals { total : count(uid) } + } +} +``` + + + +## Sort edge by nested node values + +Dgraph [sorting](/dgraph-overview/dql/query/sorting) is based on a single +level of the subgraph. To sort a level by the values of a deeper level, use +[query variables](/dgraph-overview/variables#query-variables) to bring +nested values up to the level of the edge to be sorted. + +Example: Get all actors from a Steven Spielberg movie sorted alphabetically. +The actor's name is not accessed from a single traversal from the `starring` edge; +the name is accessible via `performance.actor`. + + + +```dql +{ + spielbergMovies as var(func: allofterms(name@en, "steven spielberg")) { + name@en + director.film (orderasc: name@en, first: 1) { + starring { + performance.actor { + ActorName as name@en + } + # Stars is a uid-to-value map mapping + # starring edges to performance.actor names + Stars as min(val(ActorName)) + } + } + } + + movies(func: uid(spielbergMovies)) @cascade { + name@en + director.film (orderasc: name@en, first: 1) { + name@en + starring (orderasc: val(Stars)) { + performance.actor { + name@en + } + } + } + } +} +``` + + + +## Obtain unique results by using variables + +To obtain unique results, assign the node's edge to a variable. +The variable can now be used to iterate over the unique nodes. + +Example: Get all unique genres from all of the movies directed by Steven Spielberg. + + + +```dql +{ + var(func: eq(name@en, "Steven Spielberg")) { + director.film { + genres as genre + } + } + + q(func: uid(genres)) { + name@. + } +} +``` + + + +## Usage of checkpwd boolean + +Store the result of `checkpwd` in a query variable and then match it against `1` (`checkpwd` is `true`) or `0` (`checkpwd` is `false`). + + + +```dql +{ + exampleData(func: has(email)) { + uid + email + check as checkpwd(pass, "1bdfhJHb!fd") + } + userMatched(func: eq(val(check), 1)) { + uid + email + } + userIncorrect(func: eq(val(check), 0)) { + uid + email + } +} +``` + + diff --git a/docusaurus-docs/docs/dql/upserts.md b/docusaurus-docs/docs/dql/upserts.md new file mode 100644 index 00000000..17237418 --- /dev/null +++ b/docusaurus-docs/docs/dql/upserts.md @@ -0,0 +1,427 @@ +--- +title: Upsert +--- + +Upsert-style operations are operations where: + +1. A node is searched for, and then +2. Depending on if it is found or not, either: + - Updating some of its attributes, or + - Creating a new node with those attributes. + +The upsert has to be an atomic operation such that either a new node is +created, or an existing node is modified. It's not allowed that two concurrent +upserts both create a new node. + +There are many examples where upserts are useful. Most examples involve the +creation of a 1 to 1 mapping between two different entities. E.g. associating +email addresses with user accounts. + +Upserts are common in both traditional RDBMSs and newer NoSQL databases. +Dgraph is no exception. + +## Upsert Procedure + +In Dgraph, upsert-style behavior can be implemented by users on top of +transactions. The steps are as follows: + +1. Create a new transaction. + +2. Query for the node. This will usually be as simple as `{ q(func: eq(email, + "bob@example.com")) { uid }}`. If a `uid` result is returned, then that's the +`uid` for the existing node. If no results are returned, then the user account +doesn't exist. + +3. In the case where the user account doesn't exist, then a new node has to be + created. This is done in the usual way by making a mutation (inside the +transaction), e.g. the RDF `_:newAccount "bob@example.com" .`. The +`uid` assigned can be accessed by looking up the blank node name `newAccount` +in the `Assigned` object returned from the mutation. + +4. Now that you have the `uid` of the account (either new or existing), you can + modify the account (using additional mutations) or perform queries on it in +whichever way you wish. + +## Upserts in DQL and GraphQL + +You can also use the `Upsert Block` in DQL to achieve the upsert procedure in a single + mutation. The request will contain both the query and the mutation as explained +[here](/dgraph-overview/dql-mutation#upsert-block). + +In GraphQL, you can use the `upsert` input variable in an `add` mutation, as explained [here](graphql/mutations/upsert). + +## Conflicts + +Upsert operations are intended to be run concurrently, as per the needs of the +application. As such, it's possible that two concurrently running operations +could try to add the same node at the same time. For example, both try to add a +user with the same email address. If they do, then one of the transactions will +fail with an error indicating that the transaction was aborted. + +If this happens, the transaction is rolled back and it's up to the user's +application logic to retry the whole operation. The transaction has to be +retried in its entirety, all the way from creating a new transaction. + +The choice of index placed on the predicate is important for performance. +**Hash is almost always the best choice of index for equality checking.** + +:::note +It's the _index_ that typically causes upsert conflicts to occur. The index is +stored as many key/value pairs, where each key is a combination of the +predicate name and some function of the predicate value (e.g. its hash for the +hash index). If two transactions modify the same key concurrently, then one +will fail. +::: + +The upsert block contains one query block and mutation blocks. Variables defined +in the query block can be used in the mutation blocks using the `uid` and `val` function. + +The `uid` function allows extracting UIDs from variables defined in the query block. +There are two possible outcomes based on the results of executing the query block: + +* If the variable is empty i.e. no node matched the query, the `uid` function returns a new UID in case of a `set` operation and is thus treated similar to a blank node. On the other hand, for `delete/del` operation, it returns no UID, and thus the operation becomes a no-op and is silently ignored. A blank node gets the same UID across all the mutation blocks. +* If the variable stores one or more than one UIDs, the `uid` function returns all the UIDs stored in the variable. In this case, the operation is performed on all the UIDs returned, one at a time. + + +## Example of `uid` Function + +Consider an example with the following schema: + +```sh +curl localhost:8080/alter -X POST -d $' + name: string @index(term) . + email: string @index(exact, trigram) @upsert . + age: int @index(int) .' | jq +``` + +Now, let's say we want to create a new user with `email` and `name` information. +We also want to make sure that one email has exactly one corresponding user in +the database. To achieve this, we need to first query whether a user exists +in the database with the given email. If a user exists, we use its UID +to update the `name` information. If the user doesn't exist, we create +a new user and update the `email` and `name` information. + +We can do this using the upsert block as follows: + +```sh +curl -H "Content-Type: application/rdf" -X POST localhost:8080/mutate?commitNow=true -d $' +upsert { + query { + q(func: eq(email, "user@company1.io")) { + v as uid + name + } + } + + mutation { + set { + uid(v) "first last" . + uid(v) "user@company1.io" . + } + } +}' | jq +``` + +Result: + +```json +{ + "data": { + "q": [], + "code": "Success", + "message": "Done", + "uids": { + "uid(v)": "0x1" + } + }, + "extensions": {...} +} +``` + +The query part of the upsert block stores the UID of the user with the provided email +in the variable `v`. The mutation part then extracts the UID from variable `v`, and +stores the `name` and `email` information in the database. If the user exists, +the information is updated. If the user doesn't exist, `uid(v)` is treated +as a blank node and a new user is created as explained above. + +If we run the same mutation again, the data would just be overwritten, and no new uid is +created. Note that the `uids` map is empty in the result when the mutation is executed +again and the `data` map (key `q`) contains the uid that was created in the previous upsert. + +```json +{ + "data": { + "q": [ + { + "uid": "0x1", + "name": "first last" + } + ], + "code": "Success", + "message": "Done", + "uids": {} + }, + "extensions": {...} +} +``` + +We can achieve the same result using `json` dataset as follows: + +```sh +curl -H "Content-Type: application/json" -X POST localhost:8080/mutate?commitNow=true -d ' +{ + "query": "{ q(func: eq(email, \"user@company1.io\")) {v as uid, name} }", + "set": { + "uid": "uid(v)", + "name": "first last", + "email": "user@company1.io" + } +}' | jq +``` + +Now, we want to add the `age` information for the same user having the same email +`user@company1.io`. We can use the upsert block to do the same as follows: + +```sh +curl -H "Content-Type: application/rdf" -X POST localhost:8080/mutate?commitNow=true -d $' +upsert { + query { + q(func: eq(email, "user@company1.io")) { + v as uid + } + } + + mutation { + set { + uid(v) "28" . + } + } +}' | jq +``` + +Result: + +```json +{ + "data": { + "q": [ + { + "uid": "0x1" + } + ], + "code": "Success", + "message": "Done", + "uids": {} + }, + "extensions": {...} +} +``` + +Here, the query block queries for a user with `email` as `user@company1.io`. It stores +the `uid` of the user in variable `v`. The mutation block then updates the `age` of the +user by extracting the uid from the variable `v` using `uid` function. + +We can achieve the same result using `json` dataset as follows: + +```sh +curl -H "Content-Type: application/json" -X POST localhost:8080/mutate?commitNow=true -d $' +{ + "query": "{ q(func: eq(email, \\"user@company1.io\\")) {v as uid} }", + "set":{ + "uid": "uid(v)", + "age": "28" + } +}' | jq +``` + +If we want to execute the mutation only when the user exists, we could use +[Conditional Upsert](/dgraph-overview/dql-mutation#conditional-upsert). + + + +## Bulk Delete Example + +Let's say we want to delete all the users of `company1` from the database. This can be +achieved in just one query using the upsert block as follows: + +```sh +curl -H "Content-Type: application/rdf" -X POST localhost:8080/mutate?commitNow=true -d $' +upsert { + query { + v as var(func: regexp(email, /.*@company1.io$/)) + } + + mutation { + delete { + uid(v) * . + uid(v) * . + uid(v) * . + } + } +}' | jq +``` + +We can achieve the same result using `json` dataset as follows: + +```sh +curl -H "Content-Type: application/json" -X POST localhost:8080/mutate?commitNow=true -d '{ + "query": "{ v as var(func: regexp(email, /.*@company1.io$/)) }", + "delete": { + "uid": "uid(v)", + "name": null, + "email": null, + "age": null + } +}' | jq +``` +## val function +Variables defined in the query block can be used in the mutation blocks using the `uid` and `val` function. + + +The `val` function allows extracting values from value variables. Value variables store +a mapping from UIDs to their corresponding values. Hence, `val(v)` is replaced by the value +stored in the mapping for the UID (Subject) in the N-Quad. If the variable `v` has no value +for a given UID, the mutation is silently ignored. The `val` function can be used with the +result of aggregate variables as well, in which case, all the UIDs in the mutation would +be updated with the aggregate value. + + +### Example of `val` Function + +Let's say we want to migrate the predicate `age` to `other`. We can do this using the +following mutation: + +```sh +curl -H "Content-Type: application/rdf" -X POST localhost:8080/mutate?commitNow=true -d $' +upsert { + query { + v as var(func: has(age)) { + a as age + } + } + + mutation { + # we copy the values from the old predicate + set { + uid(v) val(a) . + } + + # and we delete the old predicate + delete { + uid(v) * . + } + } +}' | jq +``` + +Result: + +```json +{ + "data": { + "code": "Success", + "message": "Done", + "uids": {} + }, + "extensions": {...} +} +``` + +Here, variable `a` will store a mapping from all the UIDs to their `age`. The mutation +block then stores the corresponding value of `age` for each UID in the `other` predicate +and deletes the `age` predicate. + +We can achieve the same result using `json` dataset as follows: + +```sh +curl -H "Content-Type: application/json" -X POST localhost:8080/mutate?commitNow=true -d $'{ + "query": "{ v as var(func: regexp(email, /.*@company1.io$/)) }", + "delete": { + "uid": "uid(v)", + "age": null + }, + "set": { + "uid": "uid(v)", + "other": "val(a)" + } +}' | jq +``` +## External ids +The upsert block makes managing external IDs easy. + +Set the schema. +``` +xid: string @index(exact) . +: string @index(exact) . +: [uid] @reverse . +``` + +Set the type first of all. +``` +{ + set { + _:blank "http://schema.org/Person" . + _:blank "ExternalType" . + } +} +``` + +Now you can create a new person and attach its type using the upsert block. +``` + upsert { + query { + var(func: eq(xid, "http://schema.org/Person")) { + Type as uid + } + var(func: eq(, "Robin Wright")) { + Person as uid + } + } + mutation { + set { + uid(Person) "https://www.themoviedb.org/person/32-robin-wright" . + uid(Person) uid(Type) . + uid(Person) "Robin Wright" . + uid(Person) "Person" . + } + } + } +``` + +You can also delete a person and detach the relation between Type and Person Node. It's the same as above, but you use the keyword "delete" instead of "set". "`http://schema.org/Person`" will remain but "`Robin Wright`" will be deleted. + +``` + upsert { + query { + var(func: eq(xid, "http://schema.org/Person")) { + Type as uid + } + var(func: eq(, "Robin Wright")) { + Person as uid + } + } + mutation { + delete { + uid(Person) "https://www.themoviedb.org/person/32-robin-wright" . + uid(Person) uid(Type) . + uid(Person) "Robin Wright" . + uid(Person) "Person" . + } + } + } +``` + +Query by user. +``` +{ + q(func: eq(, "Robin Wright")) { + uid + xid + + { + uid + xid + } + } +} +``` \ No newline at end of file diff --git a/docusaurus-docs/docs/howto/commandline/about-cli.md b/docusaurus-docs/docs/howto/commandline/about-cli.md new file mode 100644 index 00000000..62039d1e --- /dev/null +++ b/docusaurus-docs/docs/howto/commandline/about-cli.md @@ -0,0 +1,22 @@ +--- +title: Command-line completion +--- + +Command-line completion is a feature in shells such as `bash` or `zsh` that saves you extra typing and helps out when you cannot remember a command’s syntax. +This functionality automatically fills in partially typed commands when you press the tab key. + +Some of the advantages of command-line completion are: + +* saves you from typing text when it can be auto-completed +* helps you know what are the available continuations for the commands +* prevents errors and improve the experience by hiding or showing options based on what you have already typed + +## Completion script + +The command-line interpreter requires a completion script to define which completion suggestions can be displayed for a given executable. + +Using the `dgraph completion` command you can generate a file that can be added to your shell configuration. After you add the file you can auto-complete any `dgraph` command. + +:::note +Dgraph command completion currently supports `bash` and `zsh` shells. +::: diff --git a/docusaurus-docs/docs/howto/commandline/create-cli.md b/docusaurus-docs/docs/howto/commandline/create-cli.md new file mode 100644 index 00000000..6d0702aa --- /dev/null +++ b/docusaurus-docs/docs/howto/commandline/create-cli.md @@ -0,0 +1,76 @@ +--- +title: Create a completion script +--- + +Create a completion script +The completion script is code that uses the builtin bash command complete to define which completion suggestions can be displayed for a given executable. The nature of the completion options vary from simple static to highly sophisticated. + +## Before you begin + +* [Install Dgraph](/dgraph-overview/installation/download). +* Determine the shell you are running: + ```bash + echo $0 + ``` + An output similar to the following appears: + ```bash + user@workstation:~/dgraph$ echo $0 + bash + ``` + +### Creating a completion script for Bash shell + +1. To generate a `dgraph-completion.sh` configuration file for your ``, run the `completion` command: + + ```bash + dgraph completion > ~/dgraph-completion.sh + ``` + The contents of the file is similar to: + + ```bash + [Decoder]: Using assembly version of decoder + Page Size: 4096 + # bash completion for dgraph -*- shell-script -*- + + __dgraph_debug() + { + if [[ -n ${BASH_COMP_DEBUG_FILE} ]]; then + echo "$*" >> "${BASH_COMP_DEBUG_FILE}" + fi + } + ... + .. + . + ``` + The generated file has 2 lines at the beginning that need to be removed for the script to run properly. + +1. You can comment out the 2 lines with a `#`, or remove them with the following command: + + ```bash + sed -i.bak '1d;2d' ~/dgraph-completion.sh + ``` +1. Make the file executable by running the following command. You may require root user `sudo` privileges to run it: + + ```bash + chmod +x ~/dgraph-completion.sh + ``` +1. Open the `.bashrc` file with any text editor. You might need `sudo` privileges to apply changes. For example: + ```bash + nano ~/.bashrc + ``` +1. Add the path to `dgraph-completion.sh` using the following syntax and save the file: + ```bash + . path/to/dgraph-completion.sh + ``` +1. Reload the `bashrc` settings with the following command: + ```bash + source ~/.bashrc + ``` +Now you can start typing `dgraph` and press tab to get auto-completion and suggestions: + +```bash +user@workstation:~/dgraph$ dgraph +acl cert debug increment migrate tool zero +alpha completion debuginfo live raftmigrate upgrade +bulk conv export_backup lsbackup restore version +``` diff --git a/docusaurus-docs/docs/howto/commandline/index.md b/docusaurus-docs/docs/howto/commandline/index.md new file mode 100644 index 00000000..4caa1490 --- /dev/null +++ b/docusaurus-docs/docs/howto/commandline/index.md @@ -0,0 +1,3 @@ +--- +title: Command line +--- diff --git a/docusaurus-docs/docs/howto/completion.md b/docusaurus-docs/docs/howto/completion.md new file mode 100644 index 00000000..89bda9f9 --- /dev/null +++ b/docusaurus-docs/docs/howto/completion.md @@ -0,0 +1,95 @@ +--- +description: Dgraph supports command-line completion, a common feature provided by shells like bash or zsh that helps you to type commands in a fast and easy way. +title: Shell Completion +--- + +Command-line completion is a common feature provided by shells like `bash` or `zsh` that lets you type commands in a fast and easy way. +This functionality automatically fills in partially typed commands when the user press the tab key. + +## Completion script + +The command-line interpreter requires a completion script to define which completion suggestions can be displayed for a given executable. + +Using the `dgraph completion` command you can generate a file that can be added to your shell configuration. Once added, you will be able to auto-complete any `dgraph` command. + +:::note +Dgraph command completion currently supports `bash` and `zsh` shells. +::: + +First, you need to know which shell you are running. If you don't know, you can execute the following command: +```sh +echo $0 +``` + +and the output should look like: + +```sh +user@workstation:~/dgraph$ echo $0 +bash +``` + +## Bash shell + +To generate a `dgraph-completion.sh` configuration file for your `bash` shell, run the `completion` command as follows: + +```sh +dgraph completion bash > ~/dgraph-completion.sh +``` + +The file content should look like: + +```bash +[Decoder]: Using assembly version of decoder +Page Size: 4096 +# bash completion for dgraph -*- shell-script -*- + +__dgraph_debug() +{ + if [[ -n ${BASH_COMP_DEBUG_FILE} ]]; then + echo "$*" >> "${BASH_COMP_DEBUG_FILE}" + fi +} +... +.. +. +``` + +Currently, the generated file has 2 lines at the beginning that need to be removed, or else the script won't run properly. +You can comment them out with a `#`, or you can easily remove them with the following command: + +```sh +sed -i.bak '1d;2d' ~/dgraph-completion.sh +``` + +Next, you have to make that file executable by running the following command (your system might require `sudo` to run it): + +```sh +chmod +x ~/dgraph-completion.sh +``` + +Now open the `.bashrc` file with any text editor (you might need `sudo` to apply changes). For example: + +```sh +nano ~/.bashrc +``` + +Once opened, add the path to `dgraph-completion.sh` using the following syntax and save: + +```sh +. path/to/dgraph-completion.sh +``` + +Finally, reload the `bashrc` settings with the following command: + +```sh +source ~/.bashrc +``` + +Now you can start typing `dgraph` and press tab to get auto-completion and suggestions: + +```txt +user@workstation:~/dgraph$ dgraph +acl cert debug increment migrate tool zero +alpha completion debuginfo live raftmigrate upgrade +bulk conv export_backup lsbackup restore version +``` diff --git a/docusaurus-docs/docs/howto/concurrent-modification-java-multithreaded.md b/docusaurus-docs/docs/howto/concurrent-modification-java-multithreaded.md new file mode 100644 index 00000000..a12ee1d5 --- /dev/null +++ b/docusaurus-docs/docs/howto/concurrent-modification-java-multithreaded.md @@ -0,0 +1,64 @@ +--- +title: Concurrent mutations and conflicts +--- + +This how-to guide provides an example on how to handle concurrent modifications using a multi-threaded Java Program. The example demonstrates [transaction](/dgraph-overview/clients#transactions) conflicts in Dgraph. + +Steps to run this example are as follows. + +Step 1: Start a new terminal and launch Dgraph with the following command line. +```sh +docker run -it -p 8080:8080 -p 9080:9080 dgraph/standalone:%VERSION_HERE +``` +Step 2: Checkout the source code from the 'samples' directory in [dgraph4j repository](https://github.com/dgraph-io/dgraph4j). This particular example can found at the path "samples/concurrent-modification". In order to run this example, execute the following maven command from the 'concurrent-modification' folder. +```sh +mvn clean install exec:java +``` +Step 3: On running the example, the program initializes Dgraph with the following schema. +```sh +: int @index(int) . +: string @index(exact) . +``` +Step 4: The program also initializes user "Alice" with a 'clickCount' of value '1', and then proceeds to increment 'clickCount' concurrently in two threads. Dgraph throws an exception if a transaction is updating a given predicate that is being concurrently modified. As part of the exception handling logic, the program sleeps for 1 second on receiving a concurrent modification exception (“TxnConflictException”), and then retries. + +The logs below show that two threads are increasing clickCount for the same user named Alice (note the same uid). Thread #1 succeeds immediately, and Dgraph throws a concurrent modification conflict on Thread 2. Thread 2 sleeps for 1 second and retries, and this time succeeds. + + +```sh +1599628015260 Thread #2 increasing clickCount for uid 0xe, Name: Alice +1599628015260 Thread #1 increasing clickCount for uid 0xe, Name: Alice +1599628015291 Thread #1 succeeded after 0 retries +1599628015297 Thread #2 found a concurrent modification conflict, sleeping for 1 second... +1599628016297 Thread #2 resuming +1599628016310 Thread #2 increasing clickCount for uid 0xe, Name: Alice +1599628016333 Thread #2 succeeded after 1 retries +``` +Step 5: Please note that the final value of clickCount is 3 (initial value was 1), which is correct. +Query: +```json +{ + Alice(func: has()) @filter(eq(name,"Alice" )) { + uid + name + clickCount + } +} +``` +Response: +```json +{ + "data": { + "Alice": [ + { + "uid": "0xe", + "name": "Alice", + "clickCount": 3 + } + ] + } +} +``` + +***Summary*** + +Concurrent modifications to the same predicate causes the "TxnConflictException" exception. When several transactions hit the same node's predicate at the same time, the first one succeeds, while the other will get the “TxnConflictException”. Upon constantly retrying, the transactions begin to succeed one after another, and given enough retries, correctly completes its work. diff --git a/docusaurus-docs/docs/howto/dgraph-sentry-integration.md b/docusaurus-docs/docs/howto/dgraph-sentry-integration.md new file mode 100644 index 00000000..fb613ecc --- /dev/null +++ b/docusaurus-docs/docs/howto/dgraph-sentry-integration.md @@ -0,0 +1,59 @@ +--- +title: Using the Dgraph Sentry Integration +--- + +Sentry is a powerful service that allows applications to send arbitrary events, messages, exceptions, bread-crumbs (logs) to your sentry account. In simplest terms, it is a dial-home service but also has a rich feature set including event filtering, data scrubbing, several SDKs, custom and release tagging, as well as integration with 3rd party tools such as Slack, GitHub. + +Although Sentry reporting is on by default, starting from v20.03.1 and v20.07.0, there is a configuration flag `enable-sentry` which can be used to completely turn off Sentry events reporting. + +## Basic Integration + +**Panics (runtime and manual)** + +* As of now, at Dgraph, we use Sentry reporting for capturing panics only. For manual panics anywhere in the code, sentry.CaptureException() API is called. + +* For runtime panics, Sentry does not have any native method. After further research, we chose the approach of a wrapper process to capture these panics. The basic idea for this is that whenever a dgraph instance is started, a 2nd monitoring process is started whose only job is to monitor the stderr for panics of the monitored process. When a panic is seen, it is reported back to sentry via the CaptureException API. + +**Reporting** + +Each event is tagged with the release version, environment, timestamp, tags and the panic backtrace as explained below. +**Release:** + + - This is the release version string of the Dgraph instance. + +**Environments:** + +We have defined 4 environments: + +**dev-oss / dev-enterprise**: These are events seen on non-released / local developer builds. + +**prod-oss/prod-enterprise**: These are events on released version. + +**Tags:** + +Tags are key-value pairs that provide additional context for an event. We have defined the following tags: + +`dgraph`: This tag can have values “zero” or “alpha” depending on which sub-command saw the panic/exception. + +## Data Handling + +We strive to handle your data with care in a variety of ways when sending events to Sentry + +1. **Event Selection:** As of now, only panic events are sent to Sentry from Dgraph. +2. **Data in Transit:** Events sent from the SDK to the Sentry server are encrypted on the wire with industry-standard TLS protocol with 256 bit AES Cipher. +3. **Data at rest:** Events on the Sentry server are also encrypted with 256 bit AES cipher. Sentry is hosted on GCP and as such physical access is tightly controlled. Logical access is only available to sentry approved officials. +4. **Data Retention:** Sentry stores events only for 90 days after which they are removed permanently. +5. **Data Scrubbing**: The Data Scrubber option (default: on) in Sentry’s settings ensures PII doesn’t get sent to or stored on Sentry’s servers, automatically removing any values that look like they contain sensitive information for values that contain various strings. The strings we currently monitor and scrub are: + +- `password` +- `secret` +- `passwd` +- `api_key` +- `apikey` +- `access_token` +- `auth_token` +- `credentials` +- `mysql_pwd` +- `stripetoken` +- `card[number]` +- `ip addresses` \ No newline at end of file diff --git a/docusaurus-docs/docs/howto/dql-schema-request.md b/docusaurus-docs/docs/howto/dql-schema-request.md new file mode 100644 index 00000000..fecab9a6 --- /dev/null +++ b/docusaurus-docs/docs/howto/dql-schema-request.md @@ -0,0 +1,63 @@ +--- +title: Query Dgraph types +--- + + +You can retrieve the Dgraph schema containing the list of predicates types and node types by: +- issuing a query on /query endpoint using the [HTTP Client](/dgraph-overview/raw-http#query-current-dql-schema) +- issuing a query using any [DQL client library](/dgraph-overview/clients/) +- using [Ratel UI](ratel/schema) +- using the Cloud console through the [DQL Schema](https://cloud.dgraph.io/_/schema?tab=dqlschema) tab of the Schema section. + + +When using a query, the request body is +``` +schema {} +``` + +:::note Unlike regular queries, the schema query is not surrounded +by curly braces. Also, schema queries and regular queries cannot be combined. +::: + +You can query for particular schema fields in the query body. + +``` +schema { + type + index + reverse + tokenizer + list + count + upsert + lang +} +``` + +You can also query for particular predicates: + +``` +schema(pred: [name, friend]) { + type + index + reverse + tokenizer + list + count + upsert + lang +} +``` + +:::note If ACL is enabled, then the schema query returns only the +predicates for which the logged-in ACL user has read access. ::: + +Types can also be queried. Below are some example queries. + +``` +schema(type: Movie) {} +schema(type: [Person, Animal]) {} +``` + +Note that type queries do not contain anything between the curly braces. The +output will be the entire definition of the requested types. diff --git a/docusaurus-docs/docs/howto/drop-data.md b/docusaurus-docs/docs/howto/drop-data.md new file mode 100644 index 00000000..62e73c3e --- /dev/null +++ b/docusaurus-docs/docs/howto/drop-data.md @@ -0,0 +1,36 @@ +--- +title: Drop all data +--- + + +It is possible to drop all data from your Dgraph Cloud backend, and start afresh while retaining the same endpoint. + +Be careful, as this operation is not reversible, and all data will be lost. It is highly recommended that you [export](/dgraph-overview/migration/export-data) your data before you drop your data. + + +## On-Premise +### Drop data and schema + +The `/alter` endpoint is used to drop data. + +To drop all data and schema: +```sh +$ curl -X POST localhost:8080/alter -d '{"drop_all": true}' +``` + +To drop all data only (keep schema): +```sh +$ curl -X POST localhost:8080/alter -d '{"drop_op": "DATA"}' +``` +The `/alter` endpoint can also be used to drop a specific property or all nodes of a specific type. + +To drop property `name`: + +```sh +$ curl -X POST localhost:8080/alter -d '{"drop_attr": "name"}' +``` + +To drop the type `Film`: +```sh +$ curl -X POST localhost:8080/alter -d '{"drop_op": "TYPE", "drop_value": "Film"}' +``` diff --git a/docusaurus-docs/docs/howto/index.md b/docusaurus-docs/docs/howto/index.md new file mode 100644 index 00000000..f048c7d0 --- /dev/null +++ b/docusaurus-docs/docs/howto/index.md @@ -0,0 +1,3 @@ +--- +title: How To Guides +--- diff --git a/docusaurus-docs/docs/howto/jepsen-tests.md b/docusaurus-docs/docs/howto/jepsen-tests.md new file mode 100644 index 00000000..5f5cabc0 --- /dev/null +++ b/docusaurus-docs/docs/howto/jepsen-tests.md @@ -0,0 +1,32 @@ +--- +title: Run Jepsen Tests +--- + +1. Clone the Jepsen repo at [https://github.com/jepsen-io/jepsen](https://github.com/jepsen-io/jepsen). + +```sh +git clone git@github.com:jepsen-io/jepsen.git +``` + +2. Run the following command to setup the instances from the repo. + +```sh +cd docker && ./up.sh +``` + +This should start 5 Jepsen nodes in docker containers. + +3. Now ssh into `jepsen-control` container and run the tests. + +```sh +docker exec -it jepsen-control bash +``` + +```sh +root@control:/jepsen# cd dgraph +root@control:/jepsen/dgraph# lein run test -w upsert + +# Specify a --package-url + +root@control:/jepsen/dgraph# lein run test --force-download --package-url https://github.com/dgraph-io/dgraph/releases/download/nightly/dgraph-linux-amd64.tar.gz -w upsert +``` \ No newline at end of file diff --git a/docusaurus-docs/docs/howto/load-balancing-nginx.md b/docusaurus-docs/docs/howto/load-balancing-nginx.md new file mode 100644 index 00000000..dd7ed77e --- /dev/null +++ b/docusaurus-docs/docs/howto/load-balancing-nginx.md @@ -0,0 +1,155 @@ +--- +title: Load Balancing Queries with NGINX +--- + +There might be times when you'll want to set up a load balancer to accomplish goals such as increasing the utilization of your database by sending queries from the app to multiple database server replicas. You can follow these steps to get started with that. + +## Setting up NGINX load balancer using Docker Compose + +### Download ZIP + +Download the contents of this gist's ZIP file and extract it to a directory called `graph-nginx`, as follows: + +```sh +mkdir dgraph-nginx +cd dgraph-nginx +wget -O dgraph-nginx.zip https://gist.github.com/danielmai/0cf7647b27c7626ad8944c4245a9981e/archive/5a2f1a49ca2f77bc39981749e4783e3443eb3ad9.zip +unzip -j dgraph-nginx.zip +``` +Two files will be created: `docker-compose.yml` and `nginx.conf`. + +### Start Dgraph cluster + +Start a 6-node Dgraph cluster (3 Dgraph Zero, 3 Dgraph Alpha, replication setting 3) by starting the Docker Compose config: + +```sh +docker-compose up +``` + +## Setting up NGINX load balancer with Dgraph running directly on the host machine + +You can start your Dgraph cluster directly on the host machine (for example, with systemd) as follows: + +### Install NGINX using the following `apt-get` command: + +After you have set up your Dgraph cluster, install the latest stable NGINX. On Debian and Ubuntu systems use the following command: +```sh +apt-get install nginx +``` +### Configure NGINX as a load balancer + +Make sure that your Dgraph cluster is up and running (it this case we will refer to a 6 node cluster). After installing NGINX, you can configure it for load balancing. You do this by specifying which types of connections to listen to, and where to redirect them. Create a new configuration file called `load-balancer.conf`: + +```sh +sudo vim /etc/nginx/conf.d/load-balancer.conf +``` + +and edit it to read as follows: + +```sh +upstream alpha_grpc { + server alpha1:9080; + server alpha2:9080; + server alpha3:9080; +} + +upstream alpha_http { + server alpha1:8080; + server alpha2:8080; + server alpha3:8080; +} + +# $upstream_addr is the ip:port of the Dgraph Alpha defined in the upstream +# Example: 172.25.0.2, 172.25.0.7, 172.25.0.5 are the IP addresses of alpha1, alpha2, and alpha3 +# /var/log/nginx/access.log will contain these logs showing "localhost to " +# for the different backends. By default, NGINX load balancing is round robin. + +log_format upstreamlog '[$time_local] $remote_addr - $remote_user - $server_name $host to: $upstream_addr: $request $status upstream_response_time $upstream_response_time msec $msec request_time $request_time'; + +server { + listen 9080 http2; + access_log /var/log/nginx/access.log upstreamlog; + location / { + grpc_pass grpc://alpha_grpc; + } +} + +server { + listen 8080; + access_log /var/log/nginx/access.log upstreamlog; + location / { + proxy_pass http://alpha_http; + } +} +``` + +Next, disable the default server configuration; on Debian and Ubuntu systems you’ll need to remove the default symbolic link from the **sites-enabled** folder. + +```sh +rm /etc/nginx/sites-enabled/default +``` + +Now you can restart `nginx`: + +```sh +systemctl restart nginx +``` + +## Use the increment tool to start a gRPC LB + +In a different shell, run the `dgraph increment` ([docs](howto/using-increment-tool)) tool against the NGINX gRPC load balancer (`nginx:9080`): + +```sh +docker-compose exec alpha1 dgraph increment --alpha nginx:9080 --num=10 +``` + +If you have Dgraph installed on your host machine, then you can also run this from the host: + +```sh +dgraph increment --alpha localhost:9080 --num=10 +``` + +The increment tool uses the Dgraph Go client to establish a gRPC connection against the `--alpha` flag and transactionally increments a counter predicate `--num` times. + +## Check logs + +In the NGINX access logs (in the `docker-compose` up shell window), or if you are not using Docker Compose you can tail logs from `/var/log/nginx/access.log`. You'll see access logs like the following: + +:::note +With gRPC load balancing, each request can hit a different Alpha node. This can increase read throughput. +::: + +```sh +nginx_1 | [15/Jan/2020:03T12:02 +0000] 172.20.0.9 - - - nginx to: 172.20.0.7:9080: POST /api.Dgraph/Query HTTP/2.0 200 upstream_response_time 0.008 msec 1579057922.135 request_time 0.009 +nginx_1 | [15/Jan/2020:03T12:02 +0000] 172.20.0.9 - - - nginx to: 172.20.0.2:9080: POST /api.Dgraph/Query HTTP/2.0 200 upstream_response_time 0.012 msec 1579057922.149 request_time 0.013 +nginx_1 | [15/Jan/2020:03T12:02 +0000] 172.20.0.9 - - - nginx to: 172.20.0.5:9080: POST /api.Dgraph/Query HTTP/2.0 200 upstream_response_time 0.008 msec 1579057922.162 request_time 0.012 +nginx_1 | [15/Jan/2020:03T12:02 +0000] 172.20.0.9 - - - nginx to: 172.20.0.7:9080: POST /api.Dgraph/Query HTTP/2.0 200 upstream_response_time 0.012 msec 1579057922.176 request_time 0.013 +nginx_1 | [15/Jan/2020:03T12:02 +0000] 172.20.0.9 - - - nginx to: 172.20.0.2:9080: POST /api.Dgraph/Query HTTP/2.0 200 upstream_response_time 0.012 msec 1579057922.188 request_time 0.011 +nginx_1 | [15/Jan/2020:03T12:02 +0000] 172.20.0.9 - - - nginx to: 172.20.0.5:9080: POST /api.Dgraph/Query HTTP/2.0 200 upstream_response_time 0.016 msec 1579057922.202 request_time 0.013 +``` +These logs show that traffic is being load balanced to the following upstream addresses defined in alpha_grpc in nginx.conf: + +- `nginx to: 172.20.0.7` +- `nginx to: 172.20.0.2` +- `nginx to: 172.20.0.5` + +## Load balancing methods + +By default, NGINX load balancing is done round-robin. By the way There are other load-balancing methods available such as least connections or IP hashing. To use a different method than round-robin, specify the desired load-balancing method in the upstream section of `load-balancer.conf`. + +```sh +# use least connection method +upstream alpha_grpc { + least_conn; + server alpha1:9080; + server alpha2:9080; + server alpha3:9080; +} + +upstream alpha_http { + least_conn; + server alpha1:8080; + server alpha2:8080; + server alpha3:8080; +} +``` diff --git a/docusaurus-docs/docs/howto/login-system.md b/docusaurus-docs/docs/howto/login-system.md new file mode 100644 index 00000000..1b4f4c19 --- /dev/null +++ b/docusaurus-docs/docs/howto/login-system.md @@ -0,0 +1,58 @@ +--- +title: A Simple Login System +--- + +:::note +This example is based on part of the [transactions in +v0.9](https://blog.dgraph.io/post/v0.9/) blogpost. Error checking has been +omitted for brevity. +::: + +Schema is assumed to be: +``` +// @upsert directive is important to detect conflicts. +email: string @index(exact) @upsert . # @index(hash) would also work +pass: password . +``` + +``` +// Create a new transaction. The deferred call to Discard +// ensures that server-side resources are cleaned up. +txn := client.NewTxn() +defer txn.Discard(ctx) + +// Create and execute a query to looks up an email and checks if the password +// matches. +q := fmt.Sprintf(` + { + login_attempt(func: eq(email, %q)) { + checkpwd(pass, %q) + } + } +`, email, pass) +resp, err := txn.Query(ctx, q) + +// Unmarshal the response into a struct. It will be empty if the email couldn't +// be found. Otherwise it will contain a bool to indicate if the password matched. +var login struct { + Account []struct { + CheckPwd bool `json:"checkpwd(pass)"` + } `json:"login_attempt"` +} +err = json.Unmarshal(resp.GetJson(), &login); err != nil { + +// Now perform the upsert logic. +if len(login.Account) == 0 { + fmt.Println("Account doesn't exist! Creating new account.") + mu := &protos.Mutation{ + SetJson: []byte(fmt.Sprintf(`{ "email": %q, "pass": %q }`, email, pass)), + } + _, err = txn.Mutate(ctx, mu) + // Commit the mutation, making it visible outside of the transaction. + err = txn.Commit(ctx) +} else if login.Account[0].CheckPwd { + fmt.Println("Login successful!") +} else { + fmt.Println("Wrong email or password.") +} +``` diff --git a/docusaurus-docs/docs/howto/retrieving-debug-information.md b/docusaurus-docs/docs/howto/retrieving-debug-information.md new file mode 100644 index 00000000..da4498ca --- /dev/null +++ b/docusaurus-docs/docs/howto/retrieving-debug-information.md @@ -0,0 +1,188 @@ +--- +title: Retrieving Debug Information +--- + +Each Dgraph data node exposes profile over `/debug/pprof` endpoint and metrics over `/debug/vars` endpoint. Each Dgraph data node has it's own profiling and metrics information. Below is a list of debugging information exposed by Dgraph and the corresponding commands to retrieve them. + +## Metrics Information + +If you are collecting these metrics from outside the Dgraph instance you need to pass `--expose_trace=true` flag, otherwise there metrics can be collected by connecting to the instance over localhost. + +``` +curl http://:/debug/vars +``` + +Metrics can also be retrieved in the Prometheus format at `/debug/prometheus_metrics`. See the [Metrics](/dgraph-overview/admin/observability/metrics) section for the full list of metrics. + +## Profiling Information + +Profiling information is available via the `go tool pprof` profiling tool built into Go. The ["Profiling Go programs"](https://blog.golang.org/profiling-go-programs) Go blog post will help you get started with using pprof. Each Dgraph Zero and Dgraph Alpha exposes a debug endpoint at `/debug/pprof/` via the HTTP port. + +``` +go tool pprof http://:/debug/pprof/heap +Fetching profile from ... +Saved Profile in ... +``` +The output of the command would show the location where the profile is stored. + +In the interactive pprof shell, you can use commands like `top` to get a listing of the top functions in the profile, `web` to get a visual graph of the profile opened in a web browser, or `list` to display a code listing with profiling information overlaid. + +### CPU Profile + +``` +go tool pprof http://:/debug/pprof/profile +``` + +### Memory Profile + +``` +go tool pprof http://:/debug/pprof/heap +``` + +### Block Profile + +Dgraph by default doesn't collect the block profile. Dgraph must be started with `--profile_mode=block` and `--block_rate=` with N > 1. + +``` +go tool pprof http://:/debug/pprof/block +``` + +### Goroutine stack + +The HTTP page `/debug/pprof/` is available at the HTTP port of a Dgraph Zero or Dgraph Alpha. From this page a link to the "full goroutine stack dump" is available (e.g., on a Dgraph Alpha this page would be at `http://localhost:8080/debug/pprof/goroutine?debug=2`). Looking at the full goroutine stack can be useful to understand goroutine usage at that moment. + +## Profiling Information with `debuginfo` + +Instead of sending a request to the server for each CPU, memory, and `goroutine` profile, you can use the `debuginfo` command to collect all of these profiles, along with several metrics. + +You can run the command like this: + +```sh +dgraph debuginfo -a -z -d +``` + +Your output should look like: + +```log +I0311 14:13:53.243667 32654 run.go:118] using directory /tmp/dgraph-debuginfo037351492 for debug info dump. +I0311 14:13:53.243864 32654 debugging.go:68] fetching information over HTTP from http://localhost:8080/debug/pprof/heap +I0311 14:13:53.243872 32654 debugging.go:70] please wait... (30s) +I0311 14:13:53.245338 32654 debugging.go:58] saving heap metric in /tmp/dgraph-debuginfo037351492/alpha_heap.gz +I0311 14:13:53.245349 32654 debugging.go:68] fetching information over HTTP from http://localhost:8080/debug/pprof/profile?seconds=30 +I0311 14:13:53.245357 32654 debugging.go:70] please wait... (30s) +I0311 14:14:23.250079 32654 debugging.go:58] saving cpu metric in /tmp/dgraph-debuginfo037351492/alpha_cpu.gz +I0311 14:14:23.250148 32654 debugging.go:68] fetching information over HTTP from http://localhost:8080/state +I0311 14:14:23.250173 32654 debugging.go:70] please wait... (30s) +I0311 14:14:23.255467 32654 debugging.go:58] saving state metric in /tmp/dgraph-debuginfo037351492/alpha_state.gz +I0311 14:14:23.255507 32654 debugging.go:68] fetching information over HTTP from http://localhost:8080/health +I0311 14:14:23.255528 32654 debugging.go:70] please wait... (30s) +I0311 14:14:23.257453 32654 debugging.go:58] saving health metric in /tmp/dgraph-debuginfo037351492/alpha_health.gz +I0311 14:14:23.257507 32654 debugging.go:68] fetching information over HTTP from http://localhost:8080/jemalloc +I0311 14:14:23.257548 32654 debugging.go:70] please wait... (30s) +I0311 14:14:23.259009 32654 debugging.go:58] saving jemalloc metric in /tmp/dgraph-debuginfo037351492/alpha_jemalloc.gz +I0311 14:14:23.259055 32654 debugging.go:68] fetching information over HTTP from http://localhost:8080/debug/pprof/trace?seconds=30 +I0311 14:14:23.259091 32654 debugging.go:70] please wait... (30s) +I0311 14:14:53.266092 32654 debugging.go:58] saving trace metric in /tmp/dgraph-debuginfo037351492/alpha_trace.gz +I0311 14:14:53.266152 32654 debugging.go:68] fetching information over HTTP from http://localhost:8080/metrics +I0311 14:14:53.266181 32654 debugging.go:70] please wait... (30s) +I0311 14:14:53.276357 32654 debugging.go:58] saving metrics metric in /tmp/dgraph-debuginfo037351492/alpha_metrics.gz +I0311 14:14:53.276414 32654 debugging.go:68] fetching information over HTTP from http://localhost:8080/debug/vars +I0311 14:14:53.276439 32654 debugging.go:70] please wait... (30s) +I0311 14:14:53.278295 32654 debugging.go:58] saving vars metric in /tmp/dgraph-debuginfo037351492/alpha_vars.gz +I0311 14:14:53.278340 32654 debugging.go:68] fetching information over HTTP from http://localhost:8080/debug/pprof/trace?seconds=30 +I0311 14:14:53.278366 32654 debugging.go:70] please wait... (30s) +I0311 14:15:23.286770 32654 debugging.go:58] saving trace metric in /tmp/dgraph-debuginfo037351492/alpha_trace.gz +I0311 14:15:23.286830 32654 debugging.go:68] fetching information over HTTP from http://localhost:8080/debug/pprof/goroutine?debug=2 +I0311 14:15:23.286886 32654 debugging.go:70] please wait... (30s) +I0311 14:15:23.291120 32654 debugging.go:58] saving goroutine metric in /tmp/dgraph-debuginfo037351492/alpha_goroutine.gz +I0311 14:15:23.291164 32654 debugging.go:68] fetching information over HTTP from http://localhost:8080/debug/pprof/block +I0311 14:15:23.291192 32654 debugging.go:70] please wait... (30s) +I0311 14:15:23.304562 32654 debugging.go:58] saving block metric in /tmp/dgraph-debuginfo037351492/alpha_block.gz +I0311 14:15:23.304664 32654 debugging.go:68] fetching information over HTTP from http://localhost:8080/debug/pprof/mutex +I0311 14:15:23.304706 32654 debugging.go:70] please wait... (30s) +I0311 14:15:23.309171 32654 debugging.go:58] saving mutex metric in /tmp/dgraph-debuginfo037351492/alpha_mutex.gz +I0311 14:15:23.309228 32654 debugging.go:68] fetching information over HTTP from http://localhost:8080/debug/pprof/threadcreate +I0311 14:15:23.309256 32654 debugging.go:70] please wait... (30s) +I0311 14:15:23.313026 32654 debugging.go:58] saving threadcreate metric in /tmp/dgraph-debuginfo037351492/alpha_threadcreate.gz +I0311 14:15:23.385359 32654 run.go:150] Debuginfo archive successful: dgraph-debuginfo037351492.tar.gz +``` + +When the command finishes, `debuginfo` returns the tarball's file name. If no destination has been specified, the file will be created in the same directory from where you ran the `debuginfo` command. + +The following files contain the metrics collected by the `debuginfo` command: + +``` +dgraph-debuginfo639541060 +├── alpha_block.gz +├── alpha_goroutine.gz +├── alpha_health.gz +├── alpha_heap.gz +├── alpha_jemalloc.gz +├── alpha_mutex.gz +├── alpha_profile.gz +├── alpha_state.gz +├── alpha_threadcreate.gz +├── alpha_trace.gz +├── zero_block.gz +├── zero_goroutine.gz +├── zero_health.gz +├── zero_heap.gz +├── zero_jemalloc.gz +├── zero_mutex.gz +├── zero_profile.gz +├── zero_state.gz +├── zero_threadcreate.gz +└── zero_trace.gz +``` + +### Command parameters + +```txt + -a, --alpha string Address of running dgraph alpha. (default "localhost:8080") + -x, --archive Whether to archive the generated report (default true) + -d, --directory string Directory to write the debug info into. + -h, --help help for debuginfo + -m, --metrics strings List of metrics & profiles to dump in the report. (default [heap,cpu,state,health,jemalloc,trace,metrics,vars,trace,goroutine,block,mutex,threadcreate]) + -s, --seconds uint32 Duration for time-based metric collection. (default 30) + -z, --zero string Address of running dgraph zero. +``` + +#### The metrics flag (`-m`) + +By default, `debuginfo` collects: +- `heap` +- `cpu` +- `state` +- `health` +- `jemalloc` +- `trace` +- `metrics` +- `vars` +- `trace` +- `goroutine` +- `block` +- `mutex` +- `threadcreate` + +If needed, you can collect some of them (not necessarily all). For example, this command will collect only `jemalloc` and `health` profiles: + +```sh +dgraph debuginfo -m jemalloc,health +``` + +### Profiles details + +- `cpu profile`: CPU profile determines where a program spends its time while actively consuming CPU cycles (as opposed to while sleeping or waiting for I/O). + +- `heap`: Heap profile reports memory allocation samples; used to monitor current and historical memory usage, and to check for memory leaks. + +- `threadcreate`: Thread creation profile reports the sections of the program that lead the creation of new OS threads. + +- `goroutine`: Goroutine profile reports the stack traces of all current goroutines. + +- `block`: Block profile shows where goroutines block waiting on synchronization primitives (including timer channels). + +- `mutex`: Mutex profile reports the lock contentions. When you think your CPU is not fully utilized due to a mutex contention, use this profile. + +- `trace`: this capture a wide range of runtime events. Execution tracer is a tool to detect latency and utilization problems. You can examine how well the CPU is utilized, and when networking or syscalls are a cause of preemption for the goroutines. +Tracer is useful to identify poorly parallelized execution, understand some of the core runtime events, and how your goroutines execute. diff --git a/docusaurus-docs/docs/howto/update-dgraph-types.md b/docusaurus-docs/docs/howto/update-dgraph-types.md new file mode 100644 index 00000000..3c07a362 --- /dev/null +++ b/docusaurus-docs/docs/howto/update-dgraph-types.md @@ -0,0 +1,78 @@ +--- +title: Update Dgraph types +--- + +You modify Dgraph types (node types and predicates types) by +- issuing a request to the ``/alter`` endpoint using the [HTTP Client](/dgraph-overview/raw-http#alter-the-dql-schema) +- using an ``alter`` operation of any [DQL client library](/dgraph-overview/clients/). +- using [Ratel UI](ratel/schema) + + + +### Notes about predicate type change + +If data is already stored, existing values are not checked to conform to the updated predicate type. + +On query, Dgraph tries to convert existing values to the new predicate type and ignores any that fail conversion. + +If data exists and new indexes are specified, any old index not in the updated schema is dropped. New indexes are created. + + + + +## Indexes in Background + +Indexes may take long time to compute depending upon the size of the data. + +Indexes can be computed in the background and thus indexing may still be running after an Alter operation returns. + +To run index computation in the background set the flag `runInBackground` to `true` . + +```sh +curl localhost:8080/alter?runInBackground=true -XPOST -d $' + name: string @index(fulltext, term) . + age: int @index(int) @upsert . + friend: [uid] @count @reverse . +' | python -m json.tool | less +``` + +```go +op := &api.Operation{} +op.Schema = ` + name: string @index(fulltext, term) . + age: int @index(int) @upsert . + friend: [uid] @count @reverse . +` +op.RunInBackground = true +err = dg.Alter(context.Background(), op) +``` + +### Notes + +If executed before the indexing finishes, queries that require the new indices will fail with an error +notifying that a given predicate is not indexed or doesn't have reverse edges. + +In a multi-node cluster, it is possible that the alphas will finish computing indexes at different times. Alphas may return different schema in such a case until all the indexes are done computing on all the Alphas. + +You can check the background indexing status using the [Health](/dgraph-overview/dgraph-alpha#health-check) query on the `/admin` endpoint. + + +An alter operation will fail if one is already in progress with an error +`schema is already being modified. Please retry`. + + +Dgraph will report the indexes in the schema only when the indexes are done computing. + + +## Deleting a node type + +Type definitions can be deleted using the Alter endpoint. + +Below is an example deleting the type `Person` using the Go client: +```go +err := c.Alter(context.Background(), &api.Operation{ + DropOp: api.Operation_TYPE, + DropValue: "Person"}) +``` + + diff --git a/docusaurus-docs/docs/howto/using-debug-tool.md b/docusaurus-docs/docs/howto/using-debug-tool.md new file mode 100644 index 00000000..174047ed --- /dev/null +++ b/docusaurus-docs/docs/howto/using-debug-tool.md @@ -0,0 +1,260 @@ +--- +title: Using the Debug Tool +--- + +:::note +To debug a running Dgraph cluster, first copy the postings ("p") directory to +another location. If the Dgraph cluster is not running, then you can use the +same postings directory with the debug tool. + +If the “p” directory has been encrypted, then the debug tool will need to use the +--keyfile <path-to-keyfile%gt; option. This file must contain the same key that was +used to encrypt the “p” directory. +::: + +The `dgraph debug` tool can be used to inspect Dgraph's posting list structure. +You can use the debug tool to inspect the data, schema, and indices of your Dgraph cluster. + +Some scenarios where the debug tool is useful: + +- Verify that mutations committed to Dgraph have been persisted to disk. +- Verify that indices are created. +- Inspect the history of a posting list. +- Parse a badger key into meaningful struct + +## Example Usage + +Debug the p directory. + +```sh +$ dgraph debug --postings ./p +``` + +Debug the p directory, not opening in read-only mode. +This is typically necessary when the database was not closed properly. + +```sh +$ dgraph debug --postings ./p --readonly=false +``` + +Debug the p directory, only outputting the keys for the predicate `0-name`. +Note that 0 is the namespace and name is the predicate. + +```sh +$ dgraph debug --postings ./p --readonly=false --pred=0-name +``` + +Debug the p directory, looking up a particular key: + +```sh +$ dgraph debug --postings ./p --lookup 01000000000000000000046e616d65 +``` + +Debug the p directory, inspecting the history of a particular key: + +```sh +$ dgraph debug --postings ./p --lookup 01000000000000000000046e616d65 --history +``` + +Debug an encrypted p directory with the key in a local file at the path ./key_file: + +```sh +$ dgraph debug --postings ./p --encryption=key-file=./key_file +``` + + +:::note +The key file contains the key used to decrypt/encrypt the db. This key should be kept secret. As a best practice, + +- Do not store the key file on the disk permanently. Back it up in a safe place and delete it + after using it with the debug tool. + +- If the above is not possible, make sure correct privileges are set on the keyfile. Only the + user who owns the dgraph process should be able to read / write the key file: `chmod 600` +::: + +## Debug Tool Output + +Let's go over an example with a Dgraph cluster with the following schema with a term index, +full-text index, and two separately committed mutations: + +```sh +$ curl localhost:8080/alter -d ' + name: string @index(term) . + url: string . + description: string @index(fulltext) . +' +``` + +```sh +$ curl -H "Content-Type: application/rdf" "localhost:8080/mutate?commitNow=true" -d '{ + set { + _:dgraph "Dgraph" . + _:dgraph "Software" . + _:dgraph "https://github.com/dgraph-io/dgraph" . + _:dgraph "Fast, Transactional, Distributed Graph Database." . + } +}' +``` + +```sh +$ curl -H "Content-Type: application/rdf" "localhost:8080/mutate?commitNow=true" -d '{ + set { + _:badger "Badger" . + _:badger "Software" . + _:badger "https://github.com/dgraph-io/badger" . + _:badger "Embeddable, persistent and fast key-value (KV) database written in pure Go." . + } +}' +``` + +After stopping Dgraph, you can run the debug tool to inspect the postings directory: + +:::note +The debug output can be very large. Typically you would redirect the debug tool to a file first for +easier analysis. +::: + +```sh +$ dgraph debug --postings ./p +``` + +```text +Opening DB: ./p + +prefix = +{d} ns: 0x0 attr: url uid: 1 ts: 5 item: [79, b0100] sz: 79 dcnt: 1 key: 000000000000000000000375726c000000000000000001 +{d} ns: 0x0 attr: url uid: 2 ts: 8 item: [108, b1000] sz: 108 dcnt: 0 isz: 187 icount: 2 key: 000000000000000000000375726c000000000000000002 +{d} ns: 0x0 attr: name uid: 1 ts: 5 item: [51, b0100] sz: 51 dcnt: 1 key: 00000000000000000000046e616d65000000000000000001 +{d} ns: 0x0 attr: name uid: 2 ts: 8 item: [80, b1000] sz: 80 dcnt: 0 isz: 131 icount: 2 key: 00000000000000000000046e616d65000000000000000002 +{i} ns: 0x0 attr: name term: [1] [badger] ts: 8 item: [41, b1000] sz: 41 dcnt: 0 isz: 79 icount: 2 key: 00000000000000000000046e616d650201626164676572 +{i} ns: 0x0 attr: name term: [1] [dgraph] ts: 5 item: [38, b0100] sz: 38 dcnt: 1 key: 00000000000000000000046e616d650201646772617068 +{d} ns: 0x0 attr: description uid: 1 ts: 5 item: [100, b0100] sz: 100 dcnt: 1 key: 000000000000000000000b6465736372697074696f6e000000000000000001 +{d} ns: 0x0 attr: description uid: 2 ts: 8 item: [156, b1000] sz: 156 dcnt: 0 isz: 283 icount: 2 key: 000000000000000000000b6465736372697074696f6e000000000000000002 +{i} ns: 0x0 attr: description term: [8] [databas] ts: 8 item: [49, b1000] sz: 49 dcnt: 0 isz: 141 icount: 3 key: 000000000000000000000b6465736372697074696f6e020864617461626173 +{i} ns: 0x0 attr: description term: [8] [distribut] ts: 5 item: [48, b0100] sz: 48 dcnt: 1 key: 000000000000000000000b6465736372697074696f6e0208646973747269627574 +{i} ns: 0x0 attr: description term: [8] [embedd] ts: 8 item: [48, b1000] sz: 48 dcnt: 0 isz: 93 icount: 2 key: 000000000000000000000b6465736372697074696f6e0208656d62656464 +{i} ns: 0x0 attr: description term: [8] [fast] ts: 8 item: [46, b1000] sz: 46 dcnt: 0 isz: 132 icount: 3 key: 000000000000000000000b6465736372697074696f6e020866617374 +{i} ns: 0x0 attr: description term: [8] [go] ts: 8 item: [44, b1000] sz: 44 dcnt: 0 isz: 85 icount: 2 key: 000000000000000000000b6465736372697074696f6e0208676f +{i} ns: 0x0 attr: description term: [8] [graph] ts: 5 item: [44, b0100] sz: 44 dcnt: 1 key: 000000000000000000000b6465736372697074696f6e02086772617068 +{i} ns: 0x0 attr: description term: [8] [kei] ts: 8 item: [45, b1000] sz: 45 dcnt: 0 isz: 87 icount: 2 key: 000000000000000000000b6465736372697074696f6e02086b6569 +{i} ns: 0x0 attr: description term: [8] [kv] ts: 8 item: [44, b1000] sz: 44 dcnt: 0 isz: 85 icount: 2 key: 000000000000000000000b6465736372697074696f6e02086b76 +{i} ns: 0x0 attr: description term: [8] [persist] ts: 8 item: [49, b1000] sz: 49 dcnt: 0 isz: 95 icount: 2 key: 000000000000000000000b6465736372697074696f6e020870657273697374 +{i} ns: 0x0 attr: description term: [8] [pure] ts: 8 item: [46, b1000] sz: 46 dcnt: 0 isz: 89 icount: 2 key: 000000000000000000000b6465736372697074696f6e020870757265 +{i} ns: 0x0 attr: description term: [8] [transact] ts: 5 item: [47, b0100] sz: 47 dcnt: 1 key: 000000000000000000000b6465736372697074696f6e02087472616e73616374 +{i} ns: 0x0 attr: description term: [8] [valu] ts: 8 item: [46, b1000] sz: 46 dcnt: 0 isz: 89 icount: 2 key: 000000000000000000000b6465736372697074696f6e020876616c75 +{i} ns: 0x0 attr: description term: [8] [written] ts: 8 item: [49, b1000] sz: 49 dcnt: 0 isz: 95 icount: 2 key: 000000000000000000000b6465736372697074696f6e02087772697474656e +{d} ns: 0x0 attr: dgraph.type uid: 1 ts: 5 item: [60, b0100] sz: 60 dcnt: 1 key: 000000000000000000000b6467726170682e74797065000000000000000001 +{d} ns: 0x0 attr: dgraph.type uid: 2 ts: 8 item: [88, b1000] sz: 88 dcnt: 0 isz: 148 icount: 2 key: 000000000000000000000b6467726170682e74797065000000000000000002 +{i} ns: 0x0 attr: dgraph.type term: [2] [Software] ts: 8 item: [50, b1000] sz: 50 dcnt: 0 isz: 144 icount: 3 key: 000000000000000000000b6467726170682e747970650202536f667477617265 +{s} ns: 0x0 attr: url ts: 3 item: [23, b0001] sz: 23 dcnt: 0 isz: 23 icount: 1 key: 010000000000000000000375726c +{s} ns: 0x0 attr: name ts: 3 item: [33, b0001] sz: 33 dcnt: 0 isz: 33 icount: 1 key: 01000000000000000000046e616d65 +{s} ns: 0x0 attr: description ts: 3 item: [51, b0001] sz: 51 dcnt: 0 isz: 51 icount: 1 key: 010000000000000000000b6465736372697074696f6e +{s} ns: 0x0 attr: dgraph.type ts: 1 item: [50, b0001] sz: 50 dcnt: 0 isz: 50 icount: 1 key: 010000000000000000000b6467726170682e74797065 +{s} ns: 0x0 attr: dgraph.drop.op ts: 1 item: [45, b0001] sz: 45 dcnt: 0 isz: 45 icount: 1 key: 010000000000000000000e6467726170682e64726f702e6f70 +{s} ns: 0x0 attr: dgraph.graphql.xid ts: 1 item: [64, b0001] sz: 64 dcnt: 0 isz: 64 icount: 1 key: 01000000000000000000126467726170682e6772617068716c2e786964 +{s} ns: 0x0 attr: dgraph.graphql.schema ts: 1 item: [59, b0001] sz: 59 dcnt: 0 isz: 59 icount: 1 key: 01000000000000000000156467726170682e6772617068716c2e736368656d61 +{s} ns: 0x0 attr: dgraph.graphql.p_query ts: 1 item: [71, b0001] sz: 71 dcnt: 0 isz: 71 icount: 1 key: 01000000000000000000166467726170682e6772617068716c2e705f7175657279 + ns: 0x0 attr: dgraph.graphql ts: 1 item: [98, b0001] sz: 98 dcnt: 0 isz: 98 icount: 1 key: 020000000000000000000e6467726170682e6772617068716c + ns: 0x0 attr: dgraph.graphql.persisted_query ts: 1 item: [105, b0001] sz: 105 dcnt: 0 isz: 105 icount: 1 key: 020000000000000000001e6467726170682e6772617068716c2e7065727369737465645f7175657279 + +Found 34 keys +``` + +Each line in the debug output contains a prefix indicating the type of the key: `{d}`: Data key; `{i}`: Index key; +`{c}`: Count key; `{r}`: Reverse key; `{s}`: Schema key. In the debug output above, we see data keys, index keys, +and schema keys. + +Each index key has a corresponding index type. For example, in `attr: name term: [1] [dgraph]` the `[1]` shows that +this is the term index ([0x1][tok_term]); in `attr: description term: [8] [fast]`, the `[8]` shows that this is the +full-text index ([0x8][tok_fulltext]). These IDs match the index IDs in [tok.go][tok]. + +[tok_term]: https://github.com/dgraph-io/dgraph/blob/ce82aaafba3d9e57cf5ea1aeb9b637193441e1e2/tok/tok.go#L39 +[tok_fulltext]: https://github.com/dgraph-io/dgraph/blob/ce82aaafba3d9e57cf5ea1aeb9b637193441e1e2/tok/tok.go#L48 +[tok]: https://github.com/dgraph-io/dgraph/blob/ce82aaafba3d9e57cf5ea1aeb9b637193441e1e2/tok/tok.go#L37-L53 + +## Key Lookup + +Every key can be inspected further with the `--lookup` flag for the specific key. + +```sh +$ dgraph debug --postings ./p --lookup 000000000000000000000b6465736372697074696f6e020866617374 +``` + +```text +Opening DB: ./p + +Key: 000000000000000000000b6465736372697074696f6e020866617374 Length: 2 Is multi-part list? false Uid: 1 Op: 0 + Uid: 2 Op: 0 +``` + +For data keys, a lookup shows its type and value. Below, we see that the key for `attr: url uid: 1` is a string value. + +```sh +$ dgraph debug --postings ./p --lookup 000000000000000000000375726c000000000000000001 +``` + +```text +Opening DB: ./p + +Key: 000000000000000000000375726c000000000000000001 Length: 1 Is multi-part list? false Uid: 18446744073709551615 Op: 1 Type: STRING. String Value: "https://github.com/dgraph-io/dgraph +``` + +For index keys, a lookup shows the UIDs that are part of this index. +Below, we see that the `fast` index for the `` predicate has UIDs 0x1 and 0x2. + +```sh +$ dgraph debug --postings ./p --lookup 000000000000000000000b6465736372697074696f6e020866617374 +``` + +```text +Opening DB: ./p +Key: 000000000000000000000b6465736372697074696f6e020866617374 Length: 2 Is multi-part list? false Uid: 1 Op: 0 + Uid: 2 Op: 0 +``` + +## Key History + +You can also look up the history of values for a key using the `--history` option. + +```sh +$ dgraph debug --postings ./p --lookup 000000000000000000000b6465736372697074696f6e020866617374 --history +``` +```text +Opening DB: ./p + +==> key: 000000000000000000000b6465736372697074696f6e020866617374. PK: UID: 0, Attr: 0-description, IsIndex: true, Term: 0 +ts: 8 {item}{discard}{complete} + Num uids = 2. Size = 16 + Uid = 1 + Uid = 2 + +ts: 7 {item}{delta} + Uid: 2 Op: 1 + +ts: 5 {item}{delta} + Uid: 1 Op: 1 +``` + +Above, we see that UID 0x1 was committed to this index at ts 5, and UID 0x2 was committed to this index at ts 7. + +The debug output also shows UserMeta information: + +- `{complete}`: Complete posting list +- `{uid}`: UID posting list +- `{delta}`: Delta posting list +- `{empty}`: Empty posting list +- `{item}`: Item posting list +- `{deleted}`: Delete marker + +## Parse Key + +You can parse a key into its constituent components using `--parse_key`. This does not require a p directory. + + +```sh +$ dgraph debug --parse_key 000000000000000000000b6467726170682e74797065000000000000000001 +``` +```text +{d} Key: UID: 1, Attr: 0-dgraph.type, Data key +``` diff --git a/docusaurus-docs/docs/howto/using-increment-tool.md b/docusaurus-docs/docs/howto/using-increment-tool.md new file mode 100644 index 00000000..ac7185b1 --- /dev/null +++ b/docusaurus-docs/docs/howto/using-increment-tool.md @@ -0,0 +1,102 @@ +--- +title: Using the Increment Tool +--- + +The `dgraph increment` tool increments a counter value transactionally. The +increment tool can be used as a health check that an Alpha is able to service +transactions for both queries and mutations. + +## Example Usage + +Increment the default predicate (`counter.val`) once. If the predicate doesn't yet +exist, then it will be created starting at counter 0. + +```sh +$ dgraph increment +``` + +Increment the counter predicate against the Alpha running at address `--alpha` (default: `localhost:9080`): + +```sh +$ dgraph increment --alpha=192.168.1.10:9080 +``` + +Increment the counter predicate specified by `--pred` (default: `counter.val`): + +```sh +$ dgraph increment --pred=counter.val.healthcheck +``` + +Run a read-only query for the counter predicate and does not run a mutation to increment it: + +```sh +$ dgraph increment --ro +``` + +Run a best-effort query for the counter predicate and does not run a mutation to increment it: + +```sh +$ dgraph increment --be +``` + +Run the increment tool 1000 times every 1 second: + +```sh +$ dgraph increment --num=1000 --wait=1s +``` + +## Increment Tool Output + +```sh + Run increment a few times +$ dgraph increment +0410 10:31:16.379 Counter VAL: 1 [ Ts: 1 ] +$ dgraph increment +0410 10:34:53.017 Counter VAL: 2 [ Ts: 3 ] +$ dgraph increment +0410 10:34:53.648 Counter VAL: 3 [ Ts: 5 ] + + Run read-only queries to read the counter a few times +$ dgraph increment --ro +0410 10:34:57.35 Counter VAL: 3 [ Ts: 7 ] +$ dgraph increment --ro +0410 10:34:57.886 Counter VAL: 3 [ Ts: 7 ] +$ dgraph increment --ro +0410 10:34:58.129 Counter VAL: 3 [ Ts: 7 ] + + Run best-effort query to read the counter a few times +$ dgraph increment --be +0410 10:34:59.867 Counter VAL: 3 [ Ts: 7 ] +$ dgraph increment --be +0410 10:35:01.322 Counter VAL: 3 [ Ts: 7 ] +$ dgraph increment --be +0410 10:35:02.674 Counter VAL: 3 [ Ts: 7 ] + + Run a read-only query to read the counter 5 times +$ dgraph increment --ro --num=5 +0410 10:35:18.812 Counter VAL: 3 [ Ts: 7 ] +0410 10:35:18.813 Counter VAL: 3 [ Ts: 7 ] +0410 10:35:18.815 Counter VAL: 3 [ Ts: 7 ] +0410 10:35:18.817 Counter VAL: 3 [ Ts: 7 ] +0410 10:35:18.818 Counter VAL: 3 [ Ts: 7 ] + + Increment the counter 5 times +$ dgraph increment --num=5 +0410 10:35:24.028 Counter VAL: 4 [ Ts: 8 ] +0410 10:35:24.061 Counter VAL: 5 [ Ts: 10 ] +0410 10:35:24.104 Counter VAL: 6 [ Ts: 12 ] +0410 10:35:24.145 Counter VAL: 7 [ Ts: 14 ] +0410 10:35:24.178 Counter VAL: 8 [ Ts: 16 ] + + Increment the counter 5 times, once every second. +$ dgraph increment --num=5 --wait=1s +0410 10:35:26.95 Counter VAL: 9 [ Ts: 18 ] +0410 10:35:27.975 Counter VAL: 10 [ Ts: 20 ] +0410 10:35:28.999 Counter VAL: 11 [ Ts: 22 ] +0410 10:35:30.028 Counter VAL: 12 [ Ts: 24 ] +0410 10:35:31.054 Counter VAL: 13 [ Ts: 26 ] + + If the Alpha is too busy or unhealthy, the tool will timeout and retry. +$ dgraph increment +0410 10:36:50.857 While trying to process counter: Query error: rpc error: code = DeadlineExceeded desc = context deadline exceeded. Retrying... +``` \ No newline at end of file diff --git a/docusaurus-docs/docs/index.mdx b/docusaurus-docs/docs/index.mdx new file mode 100644 index 00000000..e3ee5fb9 --- /dev/null +++ b/docusaurus-docs/docs/index.mdx @@ -0,0 +1,97 @@ +--- +title: Get started with Dgraph +description: From learning the basics of graph databases to advanced functions and capabilities, Dgraph docs have the information you need. +--- + + + + + + + +
+
+
+

+ Dgraph is the only open, complete graph database used at terabyte-scale to power real-time use cases. It is open-source, scalable, distributed, highly available and lightning fast. +

+

+ Dgraph is designed for real-time workloads, horizontal scalability, and data + flexibility. Implemented as a distributed system, Dgraph processes queries in + parallel to deliver the fastest results, even for the most complex workloads. +

+

Choose your path

+

Use Dgraph as a property graph database for direct database operations and administration, or leverage the GraphQL API for rapid application development with schema-driven APIs.

+
+ + +
+ + + + + +
+ + diff --git a/docusaurus-docs/docs/installation/deployment-patterns.mdx b/docusaurus-docs/docs/installation/deployment-patterns.mdx new file mode 100644 index 00000000..8c09acc6 --- /dev/null +++ b/docusaurus-docs/docs/installation/deployment-patterns.mdx @@ -0,0 +1,258 @@ +--- +title: Deployment Patterns +--- + +This guide covers different Dgraph deployment patterns, from simple development setups to production-grade highly available clusters. + +## Pattern Selection Guide + +| Pattern | Use Case | Nodes | HA | Sharding | +|---------|----------|-------|----|---------| +| Basic | Dev/Test environments, non critical production | 1 Zero, 1 Alpha | ❌ | ❌ | +| HA | Production, <1TB | 3 Zeros, 3 Alphas | ✅ | ❌ | +| Distributed | Dev/Test environments for large dataset| 1 Zero, 2+ Alphas | ❌ | ✅ | +| Distributed HA | Large production, >10TB | 3 Zeros, 6+ Alphas | ✅ | ✅ | + +--- +> **Getting Started?** For first-time users and local development, see the [Learning Environment](/dgraph-overview/installation/single-host-setup) guide, which covers Docker standalone and Docker Compose setups with Ratel UI. +--- + +## Basic cluster + +**Best for:** Development teams, staging environments, CI/CD + +### Architecture + +``` +┌──────────────┐ +│ Dgraph Zero │ :5080, :6080 +└──────┬───────┘ + │ +┌──────▼───────┐ +│ Dgraph Alpha │ :7080, :8080, :9080 +└──────────────┘ +``` + + + +Refer to [Basic Cluster](/dgraph-overview/installation/single-host-setup) instructions. + +--- +## HA cluster +**Best for:** Production workloads up to 10TB +### Architecture +``` +Zero Cluster (3 nodes) - Raft Group 0 + ├─ Zero 1 :5080 (Leader) + ├─ Zero 2 :5080 (Follower) + └─ Zero 3 :5080 (Follower) + │ +Alpha Group 1 (3 replicas) - Raft Group 1 + ├─ Alpha 1 :7080, :8080, :9080 (Leader) + ├─ Alpha 2 :7080, :8080, :9080 (Follower) + └─ Alpha 3 :7080, :8080, :9080 (Follower) +``` +### Setup Steps +**1. Start Zero Cluster:** +```sh +# Zero 1 (on host1) - First Zero initializes the cluster +dgraph zero --my=host1:5080 --raft "idx=1" --replicas=3 +# Zero 2 (on host2) - Uses --peer to join existing cluster +dgraph zero --my=host2:5080 --raft "idx=2" --peer=host1:5080 +# Zero 3 (on host3) - Uses --peer to join existing cluster +dgraph zero --my=host3:5080 --raft "idx=3" --peer=host1:5080 +``` +**Important Notes:** +- **Raft IDs**: Each Zero node must have a unique Raft ID set via `--raft "idx=N"`. Dgraph does not auto-assign Raft IDs to Zero nodes. +- **Cluster Initialization**: The first Zero node starts the cluster. All subsequent Zero nodes must use `--peer=` to join the existing cluster. If `--peer` is omitted, a new independent cluster will be created. +- **Replication**: The `--replicas=3` flag on Zero controls how many Alpha replicas will be in each Alpha group. +**2. Start Alpha Cluster:** +```sh +# Alpha 1 (on host1) +dgraph alpha --my=host1:7080 --zero=host1:5080,host2:5080,host3:5080 +# Alpha 2 (on host2) +dgraph alpha --my=host2:7080 --zero=host1:5080,host2:5080,host3:5080 +# Alpha 3 (on host3) +dgraph alpha --my=host3:7080 --zero=host1:5080,host2:5080,host3:5080 +``` +**Important Notes:** +- **Zero Connection**: Alphas can connect to any Zero in the cluster; list all Zeros for redundancy. +- **Group Assignment**: Zero automatically assigns Alphas to groups based on the `--replicas` setting. With `--replicas=3`, the first 3 Alphas join Group 1. +- **Alpha Raft IDs**: Unlike Zero nodes, Alpha nodes receive their Raft IDs automatically from Zero. +### Kubernetes (Helm) +```sh +helm repo add dgraph https://charts.dgraph.io +helm install my-dgraph dgraph/dgraph \ + --set zero.replicaCount=3 \ + --set alpha.replicaCount=3 +``` +**Characteristics:** +- Tolerates 1 node failure (in each group) +- All data replicated 3x +- No sharding (all predicates on all Alphas) +- Suitable for datasets up to ~1TB +**Pros:** High availability, automatic failover +**Cons:** Storage scales vertically only +--- + +## Distributed (Multi-Group) - Basic +Sharding, No HA + +**Best for:** Development with large datasets (>10TB) + +### Architecture + +``` +┌──────────────┐ +│ Dgraph Zero │ :5080 +└──────┬───────┘ + │ + ├─ Group 1: Alpha 1 :7080 + ├─ Group 2: Alpha 2 :7081 (port offset) + └─ Group 3: Alpha 3 :7082 (port offset) +``` + +### Setup (Single Host with Port Offsets) + +```sh +# Start Zero with replicas=1 (no replication) +dgraph zero --my=localhost:5080 --replicas=1 + +# Start Alpha nodes with port offsets +dgraph alpha --my=localhost:7080 --zero=localhost:5080 -p data/p1 -w data/w1 +dgraph alpha --my=localhost:7081 --zero=localhost:5080 -p data/p2 -w data/w2 -o 1 +dgraph alpha --my=localhost:7082 --zero=localhost:5080 -p data/p3 -w data/w3 -o 2 +``` + +**Characteristics:** +- 3 Alpha groups (no replication within groups) +- Data sharded by predicate across groups +- Horizontal storage scaling +- No fault tolerance + +**Pros:** Horizontal scalability, handles large datasets +**Cons:** No HA, any node failure loses data + +--- +## Distributed - HA (Production Large-Scale) +**Best for:** Production workloads >10TB, high traffic, mission-critical +### Architecture +``` +Zero Cluster (3 nodes) + └─ Replicates cluster metadata + │ + ├─ Group 1: Alpha 1,2,3 (3 replicas) + │ └─ Predicates: name, age, email + │ + ├─ Group 2: Alpha 4,5,6 (3 replicas) + │ └─ Predicates: friend, follows + │ + └─ Group 3: Alpha 7,8,9 (3 replicas) + └─ Predicates: location, company +``` +### Setup (9 Alpha Nodes across 3 Hosts) +**Zeros (3 nodes):** +```sh +# Host 1: Zero 1 +dgraph zero --my=host1:5080 --raft "idx=1" --replicas=3 +# Host 2: Zero 2 +dgraph zero --my=host2:5080 --raft "idx=2" --peer=host1:5080 +# Host 3: Zero 3 +dgraph zero --my=host3:5080 --raft "idx=3" --peer=host1:5080 +``` +**Alphas (3 groups × 3 replicas = 9 nodes):** +```sh +# Host 1: Alphas 1, 4, 7 +dgraph alpha --my=host1:7080 --zero=host1:5080,host2:5080,host3:5080 -p p1 -w w1 +dgraph alpha --my=host1:7081 --zero=host1:5080,host2:5080,host3:5080 -p p4 -w w4 -o 1 +dgraph alpha --my=host1:7082 --zero=host1:5080,host2:5080,host3:5080 -p p7 -w w7 -o 2 +# Host 2: Alphas 2, 5, 8 +dgraph alpha --my=host2:7080 --zero=host1:5080,host2:5080,host3:5080 -p p2 -w w2 +dgraph alpha --my=host2:7081 --zero=host1:5080,host2:5080,host3:5080 -p p5 -w w5 -o 1 +dgraph alpha --my=host2:7082 --zero=host1:5080,host2:5080,host3:5080 -p p8 -w w8 -o 2 +# Host 3: Alphas 3, 6, 9 +dgraph alpha --my=host3:7080 --zero=host1:5080,host2:5080,host3:5080 -p p3 -w w3 +dgraph alpha --my=host3:7081 --zero=host1:5080,host2:5080,host3:5080 -p p6 -w w6 -o 1 +dgraph alpha --my=host3:7082 --zero=host1:5080,host2:5080,host3:5080 -p p9 -w w9 -o 2 +``` +**Group Assignment:** +- Zero automatically assigns Alphas 1,2,3 → Group 1 +- Zero assigns Alphas 4,5,6 → Group 2 +- Zero assigns Alphas 7,8,9 → Group 3 +**Characteristics:** +- 3 groups with 3x replication each +- Tolerates 1 node failure per group +- Data sharded across groups +- All predicates replicated 3x within their group +**Pros:** Maximum scalability and availability +**Cons:** Higher operational complexity, more resources +--- + +## Configuration Flags Reference + +### Common Flags + +| Flag | Component | Description | Default | +|------|-----------|-------------|---------| +| `--my` | Zero/Alpha | Address:port that other nodes connect to | `localhost:5080` (Zero `localhost:7080` (Alpha) | +| `--zero` | Alpha | Address(es) of Zero node(s) to connect to | Required | +| `--peer` | Zero | Address of existing Zero to join cluster | None (creates new cluster if omitted) | +| `--raft "idx=N"` | Zero | Unique Raft ID for Zero node (required for HA) | `1` | +| `--replicas` | Zero | Number of Alpha replicas per group | `1` | +| `-w` / `--wal` | Zero/Alpha | Directory for write-ahead log entries | `zw` (Zero) `w` (Alpha) | +| `-p` / `--postings` | Alpha | Directory for data storage | `p` | +| `--bindall` | Zero/Alpha | Bind to `0.0.0.0` for network access | `true` | +| `--v=2` | Zero/Alpha | Log verbosity level (recommended: 2) | `0` | + +**Configuration Methods:** +Flags can be set via command-line arguments, environment variables, or configuration files. See [Config](/dgraph-overview/cli/config) for details. + +## Best Practices + +### Node Placement + +1. **Different Physical Hosts**: Run each replica on a separate machine +2. **Availability Zones**: Distribute across 3 AZs when possible +3. **Network Latency**: Keep inter-node latency <5ms for best performance + +### Resource Planning + +| Deployment | CPUs/Node | RAM/Node | Disk/Node | +|------------|-----------|----------|-----------| +| Development | 2 cores | 4GB | 50GB | +| Small Production | 8 cores | 16GB | 250GB SSD | +| Large Production | 16 cores | 32GB | 1TB NVMe | + +### Scaling Strategy + +**Vertical First:** +1. Start with HA single-group (3 Alphas) +2. Increase CPU/RAM per node as load grows + +**Horizontal When:** +1. Dataset >1TB +2. Query latency increases despite vertical scaling +3. Need to isolate hot predicates + +**Add 3 Alphas at a time** to maintain replication factor + +--- +## Deployment Checklist +Before production deployment: +- [ ] Set `--replicas=3` on Zero nodes +- [ ] Configure persistent storage volumes +- [ ] Enable TLS for client connections +- [ ] Set up IP whitelisting for admin endpoints +- [ ] Configure monitoring (Prometheus/Grafana) +- [ ] Set up binary backups (Enterprise) +- [ ] Test failover scenarios +- [ ] Document cluster topology +- [ ] Plan capacity for 2x growth +--- + +## Next Steps + +- [Configure Security](/dgraph-overview/admin/security/) +- [Set Up Monitoring](/dgraph-overview/admin/observability/monitoring) +- [Production Checklist](/dgraph-overview/installation/production-checklist) +- [Administration Guide](/dgraph-overview/admin/) diff --git a/docusaurus-docs/docs/installation/dgraph-architecture.md b/docusaurus-docs/docs/installation/dgraph-architecture.md new file mode 100644 index 00000000..acd1cc14 --- /dev/null +++ b/docusaurus-docs/docs/installation/dgraph-architecture.md @@ -0,0 +1,248 @@ +--- +title: Architecture +--- + +Dgraph is a distributed graph database built for horizontal scalability, high availability, and high performance. + +## Core Components + +A Dgraph cluster consists of two types of nodes working together: + +### Dgraph Zero (Control Plane) + +Zero nodes manage cluster coordination and metadata. Each cluster requires at least one Zero node. + +**Responsibilities:** +- **Cluster Membership**: Track which Alpha nodes are part of the cluster +- **Data Distribution**: Assign predicates to Alpha groups for balanced load +- **Transaction Coordination**: Allocate transaction timestamps and UIDs +- **Rebalancing**: Automatically redistribute data as the cluster scales +- **Schema Management**: Coordinate schema changes across the cluster + +**Ports:** +- `5080` - Internal gRPC (Alpha ↔ Zero communication, Live/Bulk Loader) +- `6080` - HTTP admin endpoint (cluster state, assignments) + +**High Availability:** +Deploy 3 Zero nodes for fault tolerance. They form a Raft group (group 0) for consensus. + +See [Zero API Reference](admin/dgraph-zero) for HTTP endpoints and administrative operations. + +### Dgraph Alpha (Data Plane) + +Alpha nodes store data and serve queries. Clusters need at least one Alpha node. + +**Responsibilities:** +- **Data Storage**: Store graph data (nodes, edges, predicates) +- **Index Management**: Maintain indexes for efficient queries +- **Query Execution**: Process DQL and GraphQL queries +- **Mutation Handling**: Execute data mutations with ACID guarantees +- **Predicate Ownership**: Each Alpha group owns specific predicates + +**Ports:** +- `7080` - Internal gRPC (Alpha ↔ Alpha, Alpha ↔ Zero) +- `8080` - External HTTP (client queries, admin) +- `9080` - External gRPC (client connections) + +**High Availability:** +Deploy 3 Alphas per group for data replication. Each group forms a Raft quorum. + +See [Alpha API Reference](/dgraph-overview/admin/dgraph-alpha) for health monitoring and [Admin API](admin/dgraph-administration) for backup, export, and other operations. + +## Cluster Architecture + +### Minimum Cluster (Development) + +``` +┌─────────────┐ +│ Dgraph Zero │ :5080 +└──────┬──────┘ + │ +┌──────▼───────┐ +│ Dgraph Alpha │ :7080, :8080, :9080 +└──────────────┘ +``` + +**Use case:** Local development, testing +**Configuration:** 1 Zero, 1 Alpha +**Characteristics:** No HA, no sharding + +### High Availability Cluster + +``` +┌─────────────┐ ┌─────────────┐ ┌─────────────┐ +│ Zero Node 1 │ │ Zero Node 2 │ │ Zero Node 3 │ +│ (Leader) │───│ (Follower) │───│ (Follower) │ +└──────┬──────┘ └──────┬──────┘ └──────┬──────┘ + │ │ │ + └──────────────────┴──────────────────┘ + │ + ┌──────────────────┴──────────────────┐ + │ │ │ +┌──────▼───────┐ ┌──────▼──────┐ ┌──────▼──────┐ +│ Alpha Node 1 │ │ Alpha Node 2│ │ Alpha Node 3│ +│ (Leader) │───│ (Follower) │────│ (Follower) │ +│ Group 1 │ │ Group 1 │ │ Group 1 │ +└──────────────┘ └─────────────┘ └─────────────┘ +``` + +**Use case:** Production workloads +**Configuration:** 3 Zeros, 3 Alphas (replicas=3) +**Characteristics:** +- Tolerates 1 node failure per group +- All predicates replicated 3x +- No data sharding (single group) + +### Sharded HA Cluster + +``` + Zero Cluster (3 nodes) + │ + ┌───────────────────┼───────────────────┐ + │ │ │ + Group 1 Group 2 Group 3 +┌───────────────┐ ┌───────────────┐ ┌───────────────┐ +│ Alpha 1,2,3 │ │ Alpha 4,5,6 │ │ Alpha 7,8,9 │ +│ Predicates: │ │ Predicates: │ │ Predicates: │ +│ - name │ │ - friend │ │ - location │ +│ - age │ │ - email │ │ - bio │ +└───────────────┘ └───────────────┘ └───────────────┘ +``` + +**Use case:** Large datasets (>1TB), horizontal scaling +**Configuration:** 3 Zeros, 9 Alphas (3 groups × 3 replicas) +**Characteristics:** +- Data sharded across multiple groups +- Each group has 3x replication +- Horizontal scalability + +## Data Model + +### Predicate-Based Sharding + +Unlike traditional graph databases that shard by nodes, Dgraph shards by **predicates** (relationship types): + +- Each predicate is assigned to an Alpha group +- All Alpha nodes in a group serve the same predicates +- Queries for a predicate route to its owning group +- Cross-predicate queries are distributed across groups + +**Example:** +``` +Group 1: name, age, email +Group 2: friend, follows +Group 3: location, company +``` + +**Automatic Rebalancing:** + +Zero continuously monitors disk usage across groups and automatically rebalances predicates to maintain even distribution: + +- Runs rebalancing checks every 8-10 minutes +- Moves predicates from high-usage groups to lower-usage groups +- During a predicate move: + - The predicate becomes temporarily read-only + - Queries continue to be served normally + - Mutations are rejected and should be retried after the move completes +- Each additional Alpha allows Zero to further split and redistribute predicates + +### Replication and Consistency + +Dgraph uses **Raft consensus** for replication. Both Zero and Alpha nodes form Raft consensus groups: + +- **Raft Groups**: Nodes of the same type (all Zeros or all Alphas in a group) form a Raft group +- **Leader Election**: Each Raft group elects a single leader among its peers +- **Followers**: Non-leader nodes in a group are called followers +- **Automatic Failover**: If the leader becomes unavailable (network partition, machine shutdown), the group automatically elects a new leader to continue operations +- **Replication**: Each Alpha group uses Raft consensus for replication +- The `--replicas` flag on Zero controls replication factor per group +- Writes require majority (quorum) acknowledgment +- Linearizable reads and writes +- Snapshot isolation for transactions + +**Replica Configuration:** + +The `--replicas` flag determines how many nodes serve the same group: + +- `--replicas=1`: No replication (single node per group) +- `--replicas=3`: 3 nodes per group, tolerates 1 node failure (recommended) +- `--replicas=5`: 5 nodes per group, tolerates 2 node failures + +:::tip +Always use odd numbers for replicas (1, 3, 5) to maintain proper quorum. Even numbers (2, 4) don't provide additional fault tolerance. +::: + +## Scaling Strategies + +### Vertical Scaling (Per-Node) +- Add CPU cores for higher concurrency +- Add RAM for larger working sets +- Use faster SSDs for better I/O + +### Horizontal Scaling + +**Add Replicas (No Sharding):** +Start with `--replicas=3`, add 3 more Alphas → still 1 group, more replication (6x) + +**Add Groups (Sharding):** +Start with 3 Alphas (group 1), add 3 more Alphas → Zero creates group 2, rebalances predicates + +**Best Practice:** +- Keep Alpha count as multiple of `--replicas` setting +- 6 Alphas with `--replicas=3` = 2 groups with 3x replication each +- 9 Alphas with `--replicas=3` = 3 groups with 3x replication each + +## Query Flow + +1. **Client connects** to any Alpha node (HTTP/gRPC) +2. **Alpha parses query** and identifies required predicates +3. **Local predicates** are queried directly +4. **Remote predicates** are fetched from other Alphas via distributed joins +5. **Results are merged** and returned to client + +**Performance:** N-hop queries require only N network hops, regardless of data size. + +## Operational Characteristics + +### Resource Requirements + +| Component | CPU | Memory | Disk IOPS | +|-----------|-----|--------|-----------| +| Alpha (prod) | 8+ cores | 16GB+ | 3000+ | +| Zero (prod) | 2-4 cores | 4GB | 1000+ | + +### Fault Tolerance + +With 3 replicas per group: +- **1 node down**: Cluster fully operational +- **2 nodes down**: Read-only mode (no quorum for writes) +- **3 nodes down**: Group unavailable + +### Backup and Recovery + +- **Binary backups** (Enterprise): Incremental, production-ready +- **Exports**: Full RDF/JSON exports via admin API +- **Point-in-time recovery** available with binary backups + +## Monitoring + +Key metrics to monitor: +- Raft health (`/health` endpoint) +- Disk usage per Alpha +- Query latency (p50, p95, p99) +- Transaction throughput +- Pending proposals (write backpressure) + +See [Monitoring](/dgraph-overview/admin/observability/monitoring) for Prometheus/Grafana setup. + +## Security Considerations + +- **Network Isolation**: Zero nodes can run in private network +- **TLS Encryption**: Enable for client connections and inter-node communication +- **Access Control**: Use ACL (Enterprise) for fine-grained permissions +- **IP Whitelisting**: Restrict admin endpoints to trusted IPs + +## Next Steps + +- [Choose a Deployment Pattern](/dgraph-overview/installation/deployment-patterns) + diff --git a/docusaurus-docs/docs/installation/download.md b/docusaurus-docs/docs/installation/download.md new file mode 100644 index 00000000..b363e466 --- /dev/null +++ b/docusaurus-docs/docs/installation/download.md @@ -0,0 +1,68 @@ +--- +title: Download +description: Download the images and source files to build and install for a production-ready Dgraph cluster +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + + + +You can obtain Dgraph binary for the latest version as well as previous releases using automatic install script, manual download, through Docker images or by building the binary from the open source code. + + + + +1. Install Docker. + +1. Pull the latest Dgraph image using docker: + ```sh + docker pull dgraph/dgraph:latest + ``` + To set up a [learning environment](/dgraph-overview/installation/single-host-setup), you may pull the [dgraph standalone](https://hub.docker.com/r/dgraph/standalone) image : + + ```sh + docker pull dgraph/standalone:latest + ``` +1. Verify that the image is downloaded: + + ```sh + docker images + ``` + + + + + + +On linux system, you can get the binary using the automatic script: +1. Download the Dgraph installation script to install Dgraph automatically: + ```sh + curl https://get.dgraph.io -sSf | bash + ``` + +1. Verify that it works fine, by running: + ``` + dgraph version + ``` + For more information about the various installation scripts that you can use, see [install scripts](https://github.com/dgraph-io/Install-Dgraph). + + +On linux system, you can download a tar file and install manually. +Download the appropriate tar for your platform from **[Dgraph releases](https://github.com/dgraph-io/dgraph/releases)**. After downloading the tar for your platform from Github, extract the binary to `/usr/local/bin` like so. + +1. Download the installation file: + ``` + $ sudo tar -C /usr/local/bin -xzf dgraph-linux-amd64-VERSION.tar.gz + ``` +1. Verify that it works fine, by running: + ``` + dgraph version + ``` + + +You can also build **Dgraph** and **Ratel UI** from the source code by following the instructions from [Contributing to Dgraph](https://github.com/dgraph-io/dgraph/blob/master/CONTRIBUTING.md) or [Building and running ratel](https://github.com/dgraph-io/ratel/blob/master/INSTRUCTIONS.md). + + diff --git a/docusaurus-docs/docs/installation/ha-cluster.md b/docusaurus-docs/docs/installation/ha-cluster.md new file mode 100644 index 00000000..1a8a1c9b --- /dev/null +++ b/docusaurus-docs/docs/installation/ha-cluster.md @@ -0,0 +1,257 @@ +--- +title: HA Cluster Setup +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + +You can run three Dgraph Alpha servers and three Dgraph Zero servers in a highly available cluster setup. For a highly available setup, start the Dgraph Zero server with `--replicas 3` flag, so that all data is replicated on three Alpha servers and forms one Alpha group. You can install a highly available cluster using Helm charts. + +#### Before you begin + +* Install [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/). +* Ensure that you have a production-ready Kubernetes cluster with atleast three worker nodes running in a cloud provider of your choice. +* Install [Helm](https://helm.sh/docs/intro/install/). +* (Optional) To run Dgraph Alpha with TLS, see [TLS Configuration](/dgraph-overview/admin/security/tls-configuration). + +#### Installing a highly available Dgraph cluster using Helm + +1. Verify that you are able to access the nodes in the Kubernetes cluster: + + ```bash + kubectl get nodes + ``` + + An output similar to this appears: + + ```bash + NAME STATUS ROLES AGE VERSION + ..compute.internal Ready 1m v1.15.11-eks-af3caf + ..compute.internal Ready 1m v1.15.11-eks-af3caf + ..compute.internal Ready 1m v1.15.11-eks-af3caf + ``` + After your Kubernetes cluster is up and running, you can use of the [Dgraph Helm chart](https://github.com/dgraph-io/charts/) to install a highly available Dgraph cluster + +1. Add the Dgraph helm repository:: + + ```bash + helm repo add dgraph https://charts.dgraph.io + ``` +1. Install the chart with ``: + + ```bash + helm install dgraph/dgraph + ``` + + You can also specify the version using: + ```bash + helm install dgraph/dgraph --set image.tag="{{< version >}}" + ``` + When configuring the Dgraph image tag, be careful not to use `latest` or `main` in a production environment. These tags may have the Dgraph version change, causing a mixed-version Dgraph cluster that can lead to an outage and potential data loss. + + An output similar to this appears: + + ```bash + NAME: + LAST DEPLOYED: Wed Feb 1 21:26:32 2023 + NAMESPACE: default + STATUS: deployed + REVISION: 1 + TEST SUITE: None + NOTES: + 1. You have just deployed Dgraph, version 'v21.12.0'. + + For further information: + * Documentation: https://dgraph.io/docs/ + * Community and Issues: https://discuss.dgraph.io/ + 2. Get the Dgraph Alpha HTTP/S endpoint by running these commands. + export ALPHA_POD_NAME=$(kubectl get pods --namespace default --selector "statefulset.kubernetes.io/pod-name=-dgraph-alpha-0,release=-dgraph" --output jsonpath="{.items[0].metadata.name}") + echo "Access Alpha HTTP/S using http://localhost:8080" + kubectl --namespace default port-forward $ALPHA_POD_NAME 8080:8080 + + NOTE: Change "http://" to "https://" if TLS was added to the Ingress, Load Balancer, or Dgraph Alpha service. + ``` +1. Get the name of the Pods in the cluster using `kubectl get pods`: + ```bash + NAME READY STATUS RESTARTS AGE + -dgraph-alpha-0 1/1 Running 0 4m48s + -dgraph-alpha-1 1/1 Running 0 4m2s + -dgraph-alpha-2 1/1 Running 0 3m31s + -dgraph-zero-0 1/1 Running 0 4m48s + -dgraph-zero-1 1/1 Running 0 4m10s + -dgraph-zero-2 1/1 Running 0 3m50s + +1. Get the Dgraph Alpha HTTP/S endpoint by running these commands: + ```bash + export ALPHA_POD_NAME=$(kubectl get pods --namespace default --selector "statefulset.kubernetes.io/pod-name=-dgraph-alpha-0,release=-dgraph" --output jsonpath="{.items[0].metadata.name}") + echo "Access Alpha HTTP/S using http://localhost:8080" + kubectl --namespace default port-forward $ALPHA_POD_NAME 8080:8080 + ``` +#### Deleting the resources from the cluster + +1. Delete the Helm deployment using: + + ```sh + helm delete my-release + ``` +2. Delete associated Persistent Volume Claims: + + ```sh + kubectl delete pvc --selector release=my-release + ``` + + +### Dgraph configuration files + +You can create a Dgraph [Config](/dgraph-overview/cli/config) files for Alpha server and Zero server with Helm chart configuration values, ``. For more information about the values, see the latest [configuration settings](https://github.com/dgraph-io/charts/blob/master/charts/dgraph/README.md#configuration). + +1. Open an editor of your choice and create a config file named `.yaml`: + +```yaml +# .yaml +alpha: + configFile: + config.yaml: | + alsologtostderr: true + badger: + compression_level: 3 + tables: mmap + vlog: mmap + postings: /dgraph/data/p + wal: /dgraph/data/w +zero: + configFile: + config.yaml: | + alsologtostderr: true + wal: /dgraph/data/zw +``` + +2. Change to the director in which you created ``.yaml and then install with Alpha and Zero configuration using: + +```sh +helm install dgraph/dgraph --values .yaml +``` + +### Exposing Alpha and Ratel Services + +By default Zero and Alpha services are exposed only within the Kubernetes cluster as +Kubernetes service type `ClusterIP`. + +In order to expose the Alpha service and Ratel service publicly you can use Kubernetes service type `LoadBalancer` or an Ingress resource. + + + + +##### Public Internet + +To use an external load balancer, set the service type to `LoadBalancer`. + +:::noteFor security purposes we recommend limiting access to any public endpoints, such as using a white list.::: + +1. To expose Alpha service to the Internet use: + +```sh +helm install dgraph/dgraph --set alpha.service.type="LoadBalancer" +``` + +2. To expose Alpha and Ratel services to the Internet use: + +```sh +helm install dgraph/dgraph --set alpha.service.type="LoadBalancer" --set ratel.service.type="LoadBalancer" +``` + +##### Private Internal Network + +An external load balancer can be configured to face internally to a private subnet rather the public Internet. This way it can be accessed securely by clients on the same network, through a VPN, or from a jump server. In Kubernetes, this is often configured through service annotations by the provider. Here's a small list of annotations from cloud providers: + +|Provider | Documentation Reference | Annotation | +|------------|---------------------------|------------| +|AWS |[Amazon EKS: Load Balancing](https://docs.aws.amazon.com/eks/latest/userguide/load-balancing.html)|`service.beta.kubernetes.io/aws-load-balancer-internal: "true"`| +|Azure |[AKS: Internal Load Balancer](https://docs.microsoft.com/azure/aks/internal-lb)|`service.beta.kubernetes.io/azure-load-balancer-internal: "true"`| +|Google Cloud|[GKE: Internal Load Balancing](https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing)|`cloud.google.com/load-balancer-type: "Internal"`| + + +As an example, using Amazon [EKS](https://aws.amazon.com/eks/) as the provider. + +1. Create a Helm chart configuration values file ``.yaml file: + +```yaml +# .yaml +alpha: + service: + type: LoadBalancer + annotations: + service.beta.kubernetes.io/aws-load-balancer-internal: "true" +ratel: + service: + type: LoadBalancer + annotations: + service.beta.kubernetes.io/aws-load-balancer-internal: "true" +``` + +1. To expose Alpha and Ratel services privately, use: + +```sh +helm install dgraph/dgraph --values .yaml +``` + + + +You can expose Alpha and Ratel using an [ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) resource that can route traffic to service resources. Before using this option you may need to install an [ingress controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/) first, as is the case with [AKS](https://docs.microsoft.com/azure/aks/) and [EKS](https://aws.amazon.com/eks/), while in the case of [GKE](https://cloud.google.com/kubernetes-engine), this comes bundled with a default ingress controller. When routing traffic based on the `hostname`, you may want to integrate an addon like [ExternalDNS](https://github.com/kubernetes-sigs/external-dns) so that DNS records can be registered automatically when deploying Dgraph. + +As an example, you can configure a single ingress resource that uses [ingress-nginx](https://github.com/kubernetes/ingress-nginx) for Alpha and Ratel services. + +1. Create a Helm chart configuration values file, ``.yaml file: + +```yaml +# .yaml +global: + ingress: + enabled: false + annotations: + kubernetes.io/ingress.class: nginx + ratel_hostname: "ratel." + alpha_hostname: "alpha." +``` + +2. To expose Alpha and Ratel services through an ingress: + +```sh +helm install dgraph/dgraph --values .yaml +``` + +You can run `kubectl get ingress` to see the status and access these through their hostname, such as `http://alpha.` and `http://ratel.` + + +:::tipIngress controllers will likely have an option to configure access for private internal networks. Consult documentation from the ingress controller provider for further information.::: + + + +### Upgrading the Helm chart + +You can update your cluster configuration by updating the configuration of the +Helm chart. Dgraph is a stateful database that requires some attention on +upgrading the configuration carefully in order to update your cluster to your +desired configuration. + +In general, you can use [`helm upgrade`][helm-upgrade] to update the +configuration values of the cluster. Depending on your change, you may need to +upgrade the configuration in multiple steps. + +[helm-upgrade]: https://helm.sh/docs/helm/helm_upgrade/ + +To upgrade to an HA cluster setup: + +1. Ensure that the shard replication setting is more than one and `zero.shardReplicaCount`. For example, set the shard replica flag on the Zero node group to 3,`zero.shardReplicaCount=3`. +2. Run the Helm upgrade command to restart the Zero node group: + ```sh + helm upgrade dgraph/dgraph [options] + ``` +3. Set the Alpha replica count flag. For example: `alpha.replicaCount=3`. +4. Run the Helm upgrade command again: + ```sh + helm upgrade dgraph/dgraph [options] + ``` + + diff --git a/docusaurus-docs/docs/installation/index.md b/docusaurus-docs/docs/installation/index.md new file mode 100644 index 00000000..cc659874 --- /dev/null +++ b/docusaurus-docs/docs/installation/index.md @@ -0,0 +1,5 @@ +--- +title: Installation +--- +This section is about installing Dgraph in dev or hobbyist environment as well as production environments with HA and horizontal scalability using multiple Alpha nodes in a cluster. + diff --git a/docusaurus-docs/docs/installation/lambda-server.md b/docusaurus-docs/docs/installation/lambda-server.md new file mode 100644 index 00000000..6bfdef84 --- /dev/null +++ b/docusaurus-docs/docs/installation/lambda-server.md @@ -0,0 +1,90 @@ +--- +title: Lambda Server +description: Setup a Dgraph database with a lambda server. Dgraph Lambda is a serverless platform for running JavaScript on Dgraph and Dgraph Cloud +--- + + + +[Dgraph Lambda](https://github.com/dgraph-io/dgraph-lambda) is a component that allows you to execute custom business logic using JavaScript/TypeScript functions within your GraphQL API. It's part of Dgraph's GraphQL implementation and enables you to extend the auto-generated GraphQL API with custom resolvers. +:::note +Dgraph lambda is an optional server, only used for GraphQL API. +::: + +### Running with Docker + +To run a Dgraph Lambda server with Docker: +```bash +docker run -it --rm -p 8686:8686 -v /path/to/script.js:/app/script/script.js -e DGRAPH_URL=http://host.docker.internal:8080 dgraph/dgraph-lambda +``` + +:::note +`host.docker.internal` doesn't work on older versions of Docker on Linux. You can use `DGRAPH_URL=http://172.17.0.1:8080` instead. +::: + + +### Adding libraries + +If you would like to add libraries to Dgraph Lambda, use `webpack --target=webworker` to compile your script. + +### Working with TypeScript + +You can import `@slash-graphql/lambda-types` to get types for `addGraphQLResolver` and `addGraphQLMultiParentResolver`. + + +## Dgraph Alpha + +To set up Dgraph Alpha, you need to define the `--graphql` superflag's `lambda-url` option, which is used to set the URL of the lambda server. All the `@lambda` fields will be resolved through the lambda functions implemented on the given lambda server. + +For example: + +```bash +dgraph alpha --graphql lambda-url=http://localhost:8686/graphql-worker +``` + +Then test it out with the following `curl` command: +```bash +curl localhost:8686/graphql-worker -H "Content-Type: application/json" -d '{"resolver":"MyType.customField","parent":[{"customField":"Dgraph Labs"}]}' +``` + +### Docker settings + +If you're using Docker, you need to add the `--graphql` superflag's `lambda-url` option to your Alpha configuration. For example: + +```yml + command: /gobin/dgraph alpha --zero=zero1:5180 -o 100 --expose_trace --trace ratio=1.0 + --profile_mode block --block_rate 10 --logtostderr -v=2 + --security whitelist=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 --my=alpha1:7180 + --graphql lambda-url=http://lambda:8686/graphql-worker +``` + +Next, you need to add the Dgraph Lambda server configuration, and map the JavaScript file that contains the code for lambda functions to the `/app/script/script.js` file. Remember to set the `DGRAPH_URL` environment variable to your Alpha server. + + +Here's a complete Docker example that uses the base Dgraph image and adds Lambda server support: + +```yml +services: + dgraph: + image: dgraph/standalone:latest + environment: + DGRAPH_ALPHA_GRAPHQL: "lambda-url=http://dgraph_lambda:8686/graphql-worker" + ports: + - "8080:8080" + - "9080:9080" + - "8000:8000" + volumes: + - dgraph:/dgraph + + dgraph_lambda: + image: dgraph/dgraph-lambda:latest + + ports: + - "8686:8686" + environment: + DGRAPH_URL: http://dgraph:8080 + volumes: + - ./gql/script.js:/app/script/script.js:ro + +volumes: + dgraph: {} +``` diff --git a/docusaurus-docs/docs/installation/production-checklist.md b/docusaurus-docs/docs/installation/production-checklist.md new file mode 100644 index 00000000..f436b1f3 --- /dev/null +++ b/docusaurus-docs/docs/installation/production-checklist.md @@ -0,0 +1,120 @@ +--- +title: Production checklist +description: Requirements to install Dgraph in a production environment +--- + +This guide describes important setup recommendations for a production-ready Dgraph cluster, ensuring high availability with external persistent storage, automatic recovery of failed services, automatic recovery of failed systems such as virtual machines, and disaster recovery such as backup/restore or export/import with automation. + +:::note +In this guide, a node refers to a Dgraph instance unless specified otherwise. +::: + +A **Dgraph cluster** is comprised of multiple **Dgraph instances** or nodes connected together to form a single distributed database. A Dgraph instance is either a **Dgraph Zero** or **Dgraph Alpha**, each of which serves a different role in the cluster. + +Once installed you may also install or use a **Dgraph client** to communicate with the database and perform queries, mutations, alter schema operations and so on. Pure HTTP calls from curl, Postman, or another program are also possible without a specific client, but there are a range of clients that provide higher-level language bindings, and which use optimized gRPC for communications to the database. Any standards-compliant GraphQL client will work with Dgraph to run GraphQL operations. To run DQL and other Dgraph-specific operations, use a Dgraph client. + +Dgraph provides official clients for Go, Java, Python, and JavaScript, and C#, and the JavaScript client supports both gRPC and HTTP to run more easily in a browser. Community-developed Dgraph clients for other languages are also available. The full list of clients can be found in [Clients](/dgraph-overview/clients/) page. One particular client, Dgraph Ratel, is a more sophisticated UI tool used to visualize queries, run mutations, and manage schemas in both GraphQL and DQL. Note that clients are not part of a database cluster, and simply connect to one or more Dgraph Alpha instances. + +### Cluster Requirements + +A minimum of one Dgraph Zero and one Dgraph Alpha is needed for a working cluster. + +There can be multiple Dgraph Zeros and Dgraph Alphas running in a single cluster. + + +### Machine Requirements + +To ensure predictable performance characteristics, Dgraph instances should **not** run on "burstable" or throttled machines that limit resources. That includes t2 class machines on AWS. + +To ensure that Dgraph is highly-available, we recommend each Dgraph instance be deployed to a different underlying host machine, and ideally that machines are in different availability zones or racks. In the event of an underlying machine failure, it is critical that only one Dgraph alpha and one Dgraph zero be offline so that 2 of the 3 instances in each group maintain a quorum. Also when using VMs or Docker/K8s, ensure machines are not over-subscribed and ideally not co-resident with other processes that will interrupt and delay Dgraph processing. + +If you'd like to run Dgraph with fewer machines, then the recommended configuration is to run a single Dgraph Zero and a single Dgraph Alpha per machine. In a high availability setup, that allows the cluster to lose a single machine (simultaneously losing a Dgraph Zero and a Dgraph Alpha) with continued availability of the database. + +Do not run multiple Dgraph Zeros or Dgraph Alpha processes on a single machine. This can affect performance due to shared resource issues and reduce availability in the event of machine failures. + +### Operating System + +Dgraph is designed to run on Linux. + +To run Dgraph on Windows and macOS, use the [standalone Docker image](/learn/). + +### CPU and Memory + + +We recommend 8 vCPUs or cores on each of three HA alpha instances for production loads, with 16 GiB+ memory per node. + +You'll want a ensure that your CPU and memory resources are sufficient for your production workload. A common configuration for Dgraph is 16 CPUs and 32 GiB of memory per machine. Dgraph is designed with concurrency in mind, so more cores means quicker processing and higher throughput of requests. + +You may find you'll need more CPU cores and memory for your specific use case. + +In addition, we highly recommend that your CPU clock rate is equal or above 3.4GHz. + +### Disk + +Dgraph instances make heavy use of disks, so storage with high IOPS is highly recommended to ensure reliable performance. Specifically SSDs, not HDDs. + +Regarding disk IOPS, the recommendation is: +* 1000 IOPS minimum +* 3000 IOPS for medium and large datasets + +Instances such as c5d.4xlarge have locally-attached NVMe SSDs with high IOPS. You can also use EBS volumes with provisioned IOPS (io1). If you are not running performance-critical workloads, you can also choose to use cheaper gp2 EBS volumes. Typically, AWS [gp3](https://aws.amazon.com/about-aws/whats-new/2020/12/introducing-new-amazon-ebs-general-purpose-volumes-gp3/?nc1=h_ls) disks are a good option and have 3000 Baseline IOPS at any disk size. + +Recommended disk sizes for Dgraph Zero and Dgraph Alpha: + +* Dgraph Zero: 200 GB to 300 GB. Dgraph Zero stores cluster metadata information and maintains a write-ahead log for cluster operations. +* Dgraph Alpha: 250 GB to 750 GB. Dgraph Alpha stores database data, including the schema, indices, and the data values. It maintains a write-ahead log of changes to the database. Your cloud provider may provide better disk performance based on the volume size. +* If you plan to store over 1.1TB per Dgraph Alpha instance, you must increase either the MaxLevels or TableSizeMultiplier. + +Additional recommendations: + +* The recommended Linux filesystem is ext4. +* Avoid using shared storage such as NFS, CIFS, and CEPH storage. + +### Firewall Rules + +Dgraph instances communicate over several ports. Firewall rules should be configured appropriately for the ports documented in [Ports Usage](/dgraph-overview/admin/security/ports-usage). + +Internal ports must be accessible by all Zero and Alpha peers for proper cluster-internal communication. Database clients must be able to connect to Dgraph Alpha external ports either directly or through a load balancer. + +Dgraph Zeros can be set up in a private network where communication is only with Dgraph Alphas, database administrators, internal services (such as Prometheus or Jaeger), and possibly developers (see note below). Dgraph Zero's 6080 external port is only necessary for database administrators. For example, it can be used to inspect the cluster metadata (/state), allocate UIDs or set txn timestamps (/assign), move data shards (/moveTablet), or remove cluster nodes (/removeNode). The full docs about Zero's administrative tasks are in [More About Dgraph Zero](/dgraph-overview/admin/dgraph-zero). + +:::note +Developers using Dgraph Live Loader or Dgraph Bulk Loader require access to both Dgraph Zero port 5080 and Dgraph Alpha port 9080. When using those tools, consider using them within your environment that has network access to both ports of the cluster. +::: + +### Operating System Tuning + +The OS should be configured with the recommended settings to ensure that Dgraph runs properly. + +#### File Descriptors Limit + +Dgraph can use a large number of open file descriptors. Most operating systems set a default limit that is lower than what is required. + +It is recommended to set the file descriptors limit to unlimited. If that is not possible, set it to at least a million (1,048,576) which is recommended to account for cluster growth over time. + +### Deployment + +A Dgraph instance is run as a single process from a single static binary. It does not require any additional dependencies or separate services in order to run (see the [Supplementary Services](#supplementary-services) section for third-party services that work alongside Dgraph). A Dgraph cluster is set up by running multiple Dgraph processes networked together. + +### Backup Policy + +A backup policy is a predefined, set schedule used to schedule backups of information from business applications. A backup policy helps to ensure data recoverability in the event of accidental data deletion, data corruption, or a system outage. + +For Dgraph, backups are created using the [backups feature](/dgraph-overview/admin/enterprise-features/binary-backups). You can also create full exports of your data and schema using [data exports](/dgraph-overview/dgraph-administration#export-database). + +We **strongly** recommend that you have a backup policy in place before moving your application to the production phase, and we also suggest that you have a backup policy even for pre-production apps supported by Dgraph database instances running in development, staging, QA or pre-production clusters. + +We suggest that your policy include frequent full and incremental backups. Accordingly, we suggest the following backup policy for your production apps: +* [full backup](https://dgraph.io/docs/enterprise-features/binary-backups/#forcing-a-full-backup) every 24hrs +* incremental backup every 2/4hrs + +### Supplementary Services + +These services are not required for a Dgraph cluster to function but are recommended for better insight when operating a Dgraph cluster. + +- [Metrics] and [monitoring][] with Prometheus and Grafana. +- [Distributed tracing][] with Jaeger. + +[Metrics]: [metrics](/dgraph-overview/admin/observability/metrics) +[Monitoring]: [monitoring](/dgraph-overview/admin/observability/monitoring) +[Distributed tracing]: [tracing](/dgraph-overview/admin/observability/tracing) diff --git a/docusaurus-docs/docs/installation/single-host-setup.md b/docusaurus-docs/docs/installation/single-host-setup.md new file mode 100644 index 00000000..6cabc51f --- /dev/null +++ b/docusaurus-docs/docs/installation/single-host-setup.md @@ -0,0 +1,134 @@ +--- +title: Basic cluster setup +--- + + + + +The recommended way to get started with Dgraph for local development is by using Docker. There are two main approaches: + +## Option 1: Standalone Docker Image (Learning Environment) + +The [`dgraph/standalone`](https://hub.docker.com/r/dgraph/standalone) Docker image is the fastest way to get started. This single container runs both Dgraph Zero and Dgraph Alpha, making it ideal for quick testing and development. + +Ensure you have [Docker installed](https://www.docker.com/), then run the following command: + +```bash +docker run --name dgraph-dev -d -p 8080:8080 -p 9080:9080 \ + -v ~/dgraph:/dgraph \ + dgraph/standalone:latest +``` + +This command initiates a new Docker container +* `--name dgraph-dev` - creates a persistent container named `dgraph-dev` +* `-d` - runs the container in detached (daemon) mode +* `-p 8080:8080` - maps port 8080 for HTTP connections +* `-p 9080:9080` - maps port 9080 for gRPC connections +* `-v ~/dgraph:/dgraph` - persists data to your local `~/dgraph` directory +* `dgraph/standalone:latest` - uses the official Dgraph standalone image + +## Option 2: Docker Compose + +For a more production-like setup that separates Zero, Alpha, and Ratel into individual containers, use Docker Compose. This approach gives you better control and is easier to scale. + +Create a `docker-compose.yml` file with the following configuration: + +```yaml +version: '3.8' +name: dgraph-basic-cluster +services: + zero: + image: dgraph/dgraph:latest + ports: + - "5080:5080" + - "6080:6080" + command: dgraph zero --my=zero:5080 + restart: unless-stopped + + alpha: + image: dgraph/dgraph:latest + ports: + - "8080:8080" + - "9080:9080" + command: dgraph alpha --my=alpha:7080 --zero=zero:5080 --security whitelist=0.0.0.0/0 + depends_on: + - zero + restart: unless-stopped + + ratel: + image: dgraph/ratel:latest + ports: + - "8000:8000" + restart: unless-stopped + +``` + +Then start the cluster: + +```bash +docker-compose up -d +``` + +This starts three separate containers: +* **Zero**: Manages cluster membership and assigns UIDs (ports 5080, 6080) +* **Alpha**: Handles queries and mutations (ports 8080, 9080) +* **Ratel**: Web UI for interacting with Dgraph (port 8000) + +To stop the cluster: + +```bash +docker-compose down +``` + +To remove all data volumes: + +```bash +docker-compose down -v +``` + +### Check your Dgraph cluster health +Verify your Dgraph instance using the `/health` REST endpoint. + +```shell +curl http://localhost:8080/health | jq +``` +The command should return basic cluster information: +```json +[ + { + "instance": "alpha", + "address": "localhost:7080", + "status": "healthy", + "group": "1", + "version": "v24.1.5", + "uptime": 11, + "lastEcho": 1761430795, + "ongoing": [ + "opRollup" + ], + "ee_features": [ + "backup_restore", + "cdc" + ], + "max_assigned": 30002 + } +] +``` + +### Access Ratel UI + +Ratel is a web-based UI dashboard for interacting with Dgraph using Dgraph's query language, [DQL](/dgraph-glossary#dql). + +**If using Option 1 (Standalone)**: Launch Ratel separately: + +```bash +docker run --name ratel -d -p "8000:8000" dgraph/ratel:latest +``` + +**If using Option 2 (Docker Compose)**: Ratel is already included and will start automatically. + +Navigate to Ratel at `http://localhost:8000` and enter `http://localhost:8080` for the "Dgraph Conn String". This will allow Ratel to connect to your local Dgraph instance and execute DQL queries. + +![Setting up Ratel](/images/dgraph/quickstart/ratel-docker-connection.png) + + diff --git a/docusaurus-docs/docs/learn/developer/sample-apps/devjokes.md b/docusaurus-docs/docs/learn/developer/sample-apps/devjokes.md new file mode 100644 index 00000000..2b4fc72d --- /dev/null +++ b/docusaurus-docs/docs/learn/developer/sample-apps/devjokes.md @@ -0,0 +1,30 @@ +--- +title: DevJokes +description: A sample app for Dgraph database and Dgraph Cloud that lets you find, like and share jokes. +pageType: sample-apps +image: /images/sample-apps/devjokes.svg +--- + +DevJokes is a sample app that lets users find, like, and share their favorite geeky jokes with other software developers. This app demonstrates how to use React hooks with an Apollo client to create jokes, filter jokes by tags, add user reactions to jokes, and moderate jokes. Also demonstrated is the client side to uploading images to AWS S3 and storing links to the images. The repo for this app can be found on GitHub at [dgraph.io/graphql-sample-apps/dev-jokes](https://github.com/dgraph-io/graphql-sample-apps/tree/master/dev-jokes). + +### Features +- Support two kind of jokes: Text Joke and Meme +- Moderated content to feed you the best jokes and add enable better searching. +- Logged in users can like and share the jokes. +- Community moderation enabled through flagging. + +### Front-end +- [React](https://reactjs.org/) (3.4.3)—a JavaScript library for building user interfaces. +- [Apollo Client](https://www.npmjs.com/package/apollo-client) (3.0+)—a comprehensive state management library for JavaScript that enables you to manage both local and remote data with GraphQL. +- [Material-UI](https://material-ui.com/)—a user interface framework for faster and easier web development. +- [Emoji Mart](https://github.com/missive/emoji-mart)—a Slack-like customizable emoji picker component for React. +- [React Grid Gallery](https://benhowell.github.io/react-grid-gallery/)—a justified image gallery component for React inspired by Google Photos and based upon React Images. +- [React Share](https://github.com/nygardk/react-share)—social media share buttons and share counts for React. +- [React Markdown](https://github.com/remarkjs/react-markdown)—markdown component for React using remark. + +### Back-end +- [Dgraph Cloud](https://dgraph.io/cloud)—a fully managed GraphQL backend service +- [Auth0](https://auth0.com/)—Secure access for everyone. +- [AWS-S3](https://aws.amazon.com/s3/)—an object storage service that offers industry-leading scalability, data availability, security, and performance. + + diff --git a/docusaurus-docs/docs/learn/developer/sample-apps/pokedex.md b/docusaurus-docs/docs/learn/developer/sample-apps/pokedex.md new file mode 100644 index 00000000..3d51e3c4 --- /dev/null +++ b/docusaurus-docs/docs/learn/developer/sample-apps/pokedex.md @@ -0,0 +1,19 @@ +--- +title: Pokedex +pageType: sample-apps +image: /images/sample-apps/pokedex.svg +--- + +Pokedex is a sample app inspired by the [Pokedex](https://www.pokemon.com/us/pokedex/) website. This sample app lets users search for Pokemon by type, weakness, ability, and more! This app demonstrates how to filter Pokemon by tags and update a captured status. The repo for this app can be found on GitHub at [dgraph.io/graphql-sample-apps/pokedex](https://github.com/dgraph-io/graphql-sample-apps/tree/master/pokedex). + +### Features +- Filter Pokemon by type +- Mark Pokemon as Captured +- Filter Pokemon by Captured + +### Front-end +- [React](https://reactjs.org/) (3.4.3) — a JavaScript library for building user interfaces. +- [Material-UI](https://material-ui.com/) — a user interface framework for faster and easier web development. + +### Back-end +- [Dgraph Cloud](https://dgraph.io/cloud) — a fully managed GraphQL backend service diff --git a/docusaurus-docs/docs/learn/developer/sample-apps/surveyo.md b/docusaurus-docs/docs/learn/developer/sample-apps/surveyo.md new file mode 100644 index 00000000..d40878ad --- /dev/null +++ b/docusaurus-docs/docs/learn/developer/sample-apps/surveyo.md @@ -0,0 +1,27 @@ +--- +title: Surveyo +description: A sample app for Dgraph database and Dgraph Cloud that lets create surveys. +pageType: sample-apps +image: /images/sample-apps/surveyo.svg +--- + +Surveyo is a sample app that provides users with a survey tool that they can use to quickly create and respond to surveys. Advanced users can use Surveyo’s GraphQL endpoint to run complex queries on survey results. This app demonstrates how to use React hooks with Apollo client to create surveys, collect responses, visualize responses with charts, export responses into CSV, and delete surveys. The repo for this app can be found on GitHub at [dgraph.io/graphql-sample-apps/surveyo](https://github.com/dgraph-io/graphql-sample-apps/tree/master/surveyo). + +### Features +- Supports Short Answer, Multiple-Choice Question, Date Query and Rating type of questions +- Visualize responses collected as Pie Chart, Word Cloud and Bar chart +- Provides inline GraphiQL IDE to make GraphQL queries to chart data directly +- Export survey responses into CSV. + +### Front-end +- [React](https://reactjs.org/) (3.4.1)—a JavaScript library for building user interfaces. +- [Apollo Client](https://www.npmjs.com/package/apollo-client) (3.1.1)—a comprehensive state management library for JavaScript that enables you to manage both local and remote data with GraphQL. +- [Auth0 React](https://github.com/auth0/auth0-react)—Auth0 SDK for React Single Page Applications (SPA). +- [AntDesign](https://ant.design/)—a design system for enterprise-level products. +- [Chart.js](https://www.chartjs.org/)—a simple yet flexible JavaScript charting for designers & developers +- [TypeScript](https://www.typescriptlang.org/)—extends JavaScript by adding types. +- [GraphiQL](https://github.com/graphql/graphiql)—a graphical interactive in-browser GraphQL IDE + +### Back-end +- [Dgraph Cloud](https://dgraph.io/cloud)—a fully managed GraphQL backend service +- [Auth0](https://auth0.com/)—Secure access for everyone. diff --git a/docusaurus-docs/docs/learn/developer/sample-apps/todos.md b/docusaurus-docs/docs/learn/developer/sample-apps/todos.md new file mode 100644 index 00000000..749088ae --- /dev/null +++ b/docusaurus-docs/docs/learn/developer/sample-apps/todos.md @@ -0,0 +1,26 @@ +--- +title: Todo App +description: A sample app for Dgraph database and Dgraph Cloud that lets you manage the tasks on your personal to-do list. +pageType: sample-apps +image: /images/sample-apps/todos.svg +--- + +To-Do is a sample app that lets users manage the tasks on their personal to-do list. This app demonstrates how to use React hooks with an Apollo client to easily create, read, update, and delete to-do list items. The repo for this app can be found on GitHub at [dgraph.io/graphql-sample-apps/todo-app-react](https://github.com/dgraph-io/graphql-sample-apps/tree/master/todo-app-react) + +### Features +- Add a new task +- Update an existing task to mark tasks completed +- Delete existing tasks + +### Front-end +- [React](https://reactjs.org/) (3.4.0)—a JavaScript library for building user interfaces. +- [Mobx](https://mobx.js.org/README.html)— MobX is a battle tested library that makes state management simple and scalable by transparently applying functional reactive programming (TFRP). +- [Apollo Client](https://www.npmjs.com/package/apollo-client) (2.6.8)—a comprehensive state management library for JavaScript that enables you to manage both local and remote data with GraphQL. +- [ToDoMVC app CSS](https://github.com/tastejs/todomvc-app-css)—CSS for a ToDo App +- [React Router](https://reactrouter.com/)—a collection of navigational components +- [clipboard.js](https://clipboardjs.com/)—a modern approach to copy text to clipboard +- [history](https://github.com/ReactTraining/history)—lets you easily manage session history + +### Back-end +- [Dgraph Cloud](https://dgraph.io/cloud)—a fully managed GraphQL backend service +- [Auth0](https://auth0.com/)—Secure access for everyone. diff --git a/docusaurus-docs/docs/migration/bulk-loader.md b/docusaurus-docs/docs/migration/bulk-loader.md new file mode 100644 index 00000000..f63aec3a --- /dev/null +++ b/docusaurus-docs/docs/migration/bulk-loader.md @@ -0,0 +1,381 @@ +--- +title: Initial import (Bulk Loader) +--- + +Dgraph Bulk Loader serves a similar purpose to the Dgraph Live Loader, but can +only be used to load data into a new cluster. It cannot be run on an existing +Dgraph cluster. Dgraph Bulk Loader is **considerably faster** than the Dgraph +Live Loader and is the recommended way to perform the initial import of large +datasets into Dgraph. + +Only one or more Dgraph Zeros should be running for bulk loading. Dgraph Alphas +will be started later. + +You can [read some technical details](https://dgraph.io/blog/post/bulkloader/) +about the bulk loader on the blog. + +:::warning +Don't use the Bulk loader once the Dgraph cluster is up and running. Use it to import +your existing data to a new cluster. +::: + +:::tip +It's crucial to tune the bulk loader's flags to get good performance. See the +next section for details. +::: + +## Settings + +:::note Bulk Loader only accept [RDF N-Quad/Triple +data](https://www.w3.org/TR/n-quads/) or JSON in plain or gzipped format. Data +in other formats must be converted.::: + +```sh +$ dgraph bulk --help # To see the available flags. + +# Read RDFs or JSON from the passed file. +$ dgraph bulk -f ... + +# Read multiple RDFs or JSON from the passed path. +$ dgraph bulk -f <./path-to-gzipped-RDF-or-JSON-files> ... + +# Read multiple files strictly by name. +$ dgraph bulk -f ... + +``` + +- **Reduce shards**: Before running the bulk load, you need to decide how many +Alpha groups will be running when the cluster starts. The number of Alpha groups +will be the same number of reduce shards you set with the `--reduce_shards` +flag. For example, if your cluster will run 3 Alpha with 3 replicas per group, +then there is 1 group and `--reduce_shards` should be set to 1. If your cluster +will run 6 Alphas with 3 replicas per group, then there are 2 groups and +`--reduce_shards` should be set to 2. + +- **Map shards**: The `--map_shards` option must be set to at least what's set for +`--reduce_shards`. A higher number helps the bulk loader evenly distribute +predicates between the reduce shards. + +For example: + +```sh +$ dgraph bulk -f goldendata.rdf.gz -s goldendata.schema --map_shards=4 --reduce_shards=2 --http localhost:8000 --zero=localhost:5080 +``` + +``` +{ + "DataFiles": "goldendata.rdf.gz", + "DataFormat": "", + "SchemaFile": "goldendata.schema", + "DgraphsDir": "out", + "TmpDir": "tmp", + "NumGoroutines": 4, + "MapBufSize": 67108864, + "ExpandEdges": true, + "SkipMapPhase": false, + "CleanupTmp": true, + "NumShufflers": 1, + "Version": false, + "StoreXids": false, + "ZeroAddr": "localhost:5080", + "HttpAddr": "localhost:8000", + "IgnoreErrors": false, + "MapShards": 4, + "ReduceShards": 2 +} +The bulk loader needs to open many files at once. This number depends on the size of the data set loaded, the map file output size, and the level of indexing. 100,000 is adequate for most data set sizes. See `man ulimit` for details of how to change the limit. +Current max open files limit: 1024 +MAP 01s rdf_count:176.0 rdf_speed:174.4/sec edge_count:564.0 edge_speed:558.8/sec +MAP 02s rdf_count:399.0 rdf_speed:198.5/sec edge_count:1.291k edge_speed:642.4/sec +MAP 03s rdf_count:666.0 rdf_speed:221.3/sec edge_count:2.164k edge_speed:718.9/sec +MAP 04s rdf_count:952.0 rdf_speed:237.4/sec edge_count:3.014k edge_speed:751.5/sec +MAP 05s rdf_count:1.327k rdf_speed:264.8/sec edge_count:4.243k edge_speed:846.7/sec +MAP 06s rdf_count:1.774k rdf_speed:295.1/sec edge_count:5.720k edge_speed:951.5/sec +MAP 07s rdf_count:2.375k rdf_speed:338.7/sec edge_count:7.607k edge_speed:1.085k/sec +MAP 08s rdf_count:3.697k rdf_speed:461.4/sec edge_count:11.89k edge_speed:1.484k/sec +MAP 09s rdf_count:71.98k rdf_speed:7.987k/sec edge_count:225.4k edge_speed:25.01k/sec +MAP 10s rdf_count:354.8k rdf_speed:35.44k/sec edge_count:1.132M edge_speed:113.1k/sec +MAP 11s rdf_count:610.5k rdf_speed:55.39k/sec edge_count:1.985M edge_speed:180.1k/sec +MAP 12s rdf_count:883.9k rdf_speed:73.52k/sec edge_count:2.907M edge_speed:241.8k/sec +MAP 13s rdf_count:1.108M rdf_speed:85.10k/sec edge_count:3.653M edge_speed:280.5k/sec +MAP 14s rdf_count:1.121M rdf_speed:79.93k/sec edge_count:3.695M edge_speed:263.5k/sec +MAP 15s rdf_count:1.121M rdf_speed:74.61k/sec edge_count:3.695M edge_speed:246.0k/sec +REDUCE 16s [1.69%] edge_count:62.61k edge_speed:62.61k/sec plist_count:29.98k plist_speed:29.98k/sec +REDUCE 17s [18.43%] edge_count:681.2k edge_speed:651.7k/sec plist_count:328.1k plist_speed:313.9k/sec +REDUCE 18s [33.28%] edge_count:1.230M edge_speed:601.1k/sec plist_count:678.9k plist_speed:331.8k/sec +REDUCE 19s [45.70%] edge_count:1.689M edge_speed:554.4k/sec plist_count:905.9k plist_speed:297.4k/sec +REDUCE 20s [60.94%] edge_count:2.252M edge_speed:556.5k/sec plist_count:1.278M plist_speed:315.9k/sec +REDUCE 21s [93.21%] edge_count:3.444M edge_speed:681.5k/sec plist_count:1.555M plist_speed:307.7k/sec +REDUCE 22s [100.00%] edge_count:3.695M edge_speed:610.4k/sec plist_count:1.778M plist_speed:293.8k/sec +REDUCE 22s [100.00%] edge_count:3.695M edge_speed:584.4k/sec plist_count:1.778M plist_speed:281.3k/sec +Total: 22s +``` + +The output will be generated in the `out` directory by default. Here's the bulk +load output from the example above: + +```sh +$ tree ./out +``` + +```txt +./out +├── 0 +│   └── p +│   ├── 000000.vlog +│   ├── 000002.sst +│   └── MANIFEST +└── 1 + └── p + ├── 000000.vlog + ├── 000002.sst + └── MANIFEST + +4 directories, 6 files +``` + +Because `--reduce_shards` was set to `2`, two sets of `p` directories are generated: +- the `./out/0` folder +- the `./out/1` folder + +Once the output is created, the files must be copied to all the servers that will run +Dgraph Alphas: + +- Each replica of the first group (`Alpha1`, `Alpha2`, `Alpha3`) should have a copy of `./out/0/p` +- Each replica of the second group (`Alpha4`, `Alpha5`, `Alpha6`) should have a copy of `./out/1/p`, and so on. + +:::note +Each Dgraph Alpha must have a copy of the group's `p` directory output. +::: + +![Bulk Loader diagram](/images/deploy/bulk-loader.png) + +### Other Bulk Loader options + +You can further configure Bulk Loader using the following options: + +- `--schema`, `-s`: set the location of the schema file. + +- `--graphql_schema`, `-g` (optional): set the location of the GraphQL schema file. + +- `--badger` superflag's `compression` option: Configure the compression of data +on disk. By default, the Snappy compression format is used, but you can also use +Zstandard compression. Or, you can choose no compression to minimize CPU usage. +To learn more, see [Data Compression on Disk](/dgraph-overview/admin/data-compression). + +- `--new_uids`: (default: false): Assign new UIDs instead of using the existing +UIDs in data files. This is useful to avoid overriding the data in a DB already +in operation. + +- `-f`, `--files`: Location of `*.rdf(.gz)` or `*.json(.gz)` file(s) to load. It can +load multiple files in a given path. If the path is a directory, then all files +ending in `.rdf`, `.rdf.gz`, `.json`, and `.json.gz` will be loaded. + +- `--format` (optional): Specify file format (`rdf` or `json`) instead of getting it from +filenames. This is useful if you need to define a strict format manually. + +- `--store_xids`: Generate a xid edge for each node. It will store the XIDs (The identifier / Blank-nodes) in an attribute named `xid` in the entity itself. + +- `--xidmap` (default: `disabled`. Need a path): Store xid to uid mapping to a directory. Dgraph will save all identifiers used in the load for later use in other data ingest operations. The mapping will be saved in the path you provide and you must indicate that same path in the next load. It is recommended to use this flag if you have full control over your identifiers (Blank-nodes). Because the identifier will be mapped to a specific UID. + +- `--vault` superflag (and its options): specify the Vault server address, role id, secret id, and +field that contains the encryption key required to decrypt the encrypted export. + +## Load from S3 + +To bulk load from Amazon S3, you must have either [IAM](#iam-setup) or the following AWS credentials set +via environment variables: + + Environment Variable | Description + -------------------- | ----------- + `AWS_ACCESS_KEY_ID` or `AWS_ACCESS_KEY` | AWS access key with permissions to write to the destination bucket. + `AWS_SECRET_ACCESS_KEY` or `AWS_SECRET_KEY` | AWS access key with permissions to write to the destination bucket. + +### IAM setup + +In AWS, you can accomplish this by doing the following: +1. Create an [IAM Role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) with an IAM Policy that grants access to the S3 bucket. +2. Depending on whether you want to grant access to an EC2 instance, or to a pod running on [EKS](https://aws.amazon.com/eks/), you can do one of these options: + * [Instance Profile](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) can pass the IAM Role to an EC2 Instance + * [IAM Roles for Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) to attach the IAM Role to a running EC2 Instance + * [IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) to associate the IAM Role to a [Kubernetes Service Account](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/). + +Once your setup is ready, you can execute the bulk load from S3: + +```sh +dgraph bulk -f s3:///bucket-name/directory-with-rdf -s s3:///bucket-name/directory-with-rdf/schema.txt +``` + +## Load from MinIO + +To bulk load from MinIO, you must have the following MinIO credentials set via +environment variables: + + Environment Variable | Description + -------------------- | ----------- + `MINIO_ACCESS_KEY` | Minio access key with permissions to write to the destination bucket. + `MINIO_SECRET_KEY` | Minio secret key with permissions to write to the destination bucket. + + +Once your setup is ready, you can execute the bulk load from MinIO: + +```sh +dgraph bulk -f minio://minio-server:port/bucket-name/directory-with-rdf -s minio://minio-server:port/bucket-name/directory-with-rdf/schema.txt +``` + +## How to properly bulk load + +Starting from Dgraph v20.03.7, v20.07.3 and v20.11.0 onwards, depending on your dataset size, you can follow one of the following ways to use bulk loader and initialize your new Cluster. + +*The following procedure is particularly relevant for Clusters that have `--replicas` flag greater than 1* + +### For small datasets + +In case your dataset is small (a few GBs) it would be convenient to start by initializing just one Alpha node and then let the snapshot be streamed among the other Alpha replicas. You can follow these steps: +1. Run bulk loader only on one server +2. Once the `p` directory has been created by the bulk loader, then start **only** the first Alpha replica +3. Wait for 1 minute to ensure that a snapshot has been taken by the first Alpha node replica. You can confirm that a snapshot has been taken by looking for the following message": + +```txt +I1227 13T12:24.202196 14691 draft.go:571] Creating snapshot at index: 30. ReadTs: 4. +``` +4. After confirming that the snapshot has been taken, you can start the other Alpha node replicas (number of Alpha nodes must be equal to the `--replicas` flag value set in the zero nodes). Now the Alpha node (the one started in point 2) will be printing similar messages: + +```txt +I1227 13:18:16.154674 16779 snapshot.go:246] Streaming done. Sent 1093470 entries. Waiting for ACK... +I1227 13:18:17.126494 16779 snapshot.go:251] Received ACK with done: true +I1227 13:18:17.126514 16779 snapshot.go:292] Stream snapshot: OK +``` +These messages indicate that all replica nodes are now using the same snapshot. Thus, all your data is correctly in sync across the cluster. Also, the other alpha nodes will be printing (in their logs) something similar to: + +```txt +I1227 13:18:17.126621 1720 draft.go:567] Skipping snapshot at 28, because found one at 28 +``` + +### For bigger datasets + +When your dataset is pretty big (e.g. dataset size > 10GB) it will be faster that you just copy the generated `p` directory (by the bulk loader) among all the Alphas nodes. You can follow these steps: + +1. Run bulk loader only on one server +2. Copy (or use `rsync`) the `p` directory to the other servers (the servers you will be using to start the other Alpha nodes) +3. Now, start all Alpha nodes at the same time + +If the process went well **all** Alpha nodes will take a snapshot after 1 minute. You will be seeing something similar to this in the Alpha logs: + +```txt +I1227 13:27:53.959671 29781 draft.go:571] Creating snapshot at index: 34. ReadTs: 6. +``` +Note that `snapshot at index` value must be the same within the same Alpha group and `ReadTs` must be the same value within and among all the Alpha groups. + +## Enterprise Features + +### Multi-tenancy (Enterprise Feature) + +By default, Bulk loader preserves the namespace in the data and schema files. +If there's no namespace information available, it loads the data into the default namespace. + +Using the `--force-namespace` flag, you can load all the data into a specific namespace. +In that case, the namespace information from the data and schema files will be ignored. + +For example, to force the bulk data loading into namespace `123`: + +```sh +dgraph bulk -s /tmp/data/1million.schema -f /tmp/data/1million.rdf.gz --force-namespace 123 +``` + +### Encryption at rest (Enterprise Feature) + +Even before the Dgraph cluster starts, we can load data using Bulk Loader with the encryption feature turned on. Later we can point the generated `p` directory to a new Alpha server. + +Here's an example to run Bulk Loader with a key used to write encrypted data: + +```bash +dgraph bulk --encryption key-file=./enc_key_file -f data.json.gz -s data.schema --map_shards=1 --reduce_shards=1 --http localhost:8000 --zero=localhost:5080 +``` +Alternatively, starting with v20.07.0, the `vault_*` options can be used to decrypt the encrypted export. + + +### Encrypting imports (Enterprise Feature) + +The Bulk Loader’s `--encryption key-file=value` option was previously used to encrypt the output `p` directory. This same option will also be used to decrypt the encrypted export data and schema files. + +Another option, `--encrypted`, indicates whether the input `rdf`/`json` data and schema files are encrypted or not. With this switch, we support the use case of migrating data from unencrypted exports to encrypted import. + +So, with the above two options we have 4 cases: + +1. `--encrypted=true` and no `encryption key-file=value`. + +Error: If the input is encrypted, a key file must be provided. + +2. `--encrypted=true` and `encryption key-file=path-to-key`. + +Input is encrypted and output `p` dir is encrypted as well. + +3. `--encrypted=false` and no `encryption key-file=value`. + +Input is not encrypted and the output `p` dir is also not encrypted. + +4. `--encrypted=false` and `encryption key-file=path-to-key`. + +Input is not encrypted but the output is encrypted. (This is the migration use case mentioned above). + +Alternatively, starting with v20.07.0, the `vault_*` options can be used instead of the `--encryption key-file=value` option above to achieve the same effect except that the keys are sitting in a Vault server. + +You can also use *bulk loader*, to turn off encryption. This will generate a new unencrypted `p` that will be used by the Alpha process. In this, case you need to pass `--encryption key-file`, `--encrypted` and `--encrypted_out` flags. + +```bash +# Encryption Key from the file path +dgraph bulk --files "" --schema "" --zero "" \ + --encrypted="true" --encrypted_out="false" \ + --encryption key-file="" + +# Encryption Key from HashiCorp Vault +dgraph bulk --files "" --schema "" --zero "" \ + --encrypted="true" --encrypted_out="false" \ + --vault addr="http://localhost:8200";enc-field="enc_key";enc-format="raw";path="secret/data/dgraph/alpha";role-id-file="./role_id";secret-id-file="./secret_id" + +``` + +In this case, we are also passing the flag `--encrypted=true` as the exported data has been taken from an encrypted Dgraph cluster and we are also specifying the flag `--encrypted_out=false` to specify that we want the `p` directory (_that will be generated by the bulk loader process_) to be unencrypted. + +## Tuning & monitoring + +### Performance Tuning + +:::tip +We highly recommend [disabling swap +space](https://askubuntu.com/questions/214805/how-do-i-disable-swap) when +running Bulk Loader. It is better to fix the parameters to decrease memory +usage, than to have swapping grind the loader down to a halt. +::: + +Flags can be used to control the behavior and performance characteristics of +the bulk loader. You can see the full list by running `dgraph bulk --help`. In +particular, **you should tune the flags so that Bulk Loader doesn't use more +memory than is available as RAM**. If it starts swapping, it will become +incredibly slow. + +**In the map phase**, tweaking the following flags can reduce memory usage: + +- The `--num_go_routines` flag controls the number of worker threads. Lowering reduces memory + consumption. + +- The `--mapoutput_mb` flag controls the size of the map output files. Lowering + reduces memory consumption. + +For bigger datasets and machines with many cores, gzip decoding can be a +bottleneck during the map phase. Performance improvements can be obtained by +first splitting the RDFs up into many `.rdf.gz` files (e.g. 256MB each). This +has a negligible impact on memory usage. + +**The reduce phase** is less memory heavy than the map phase, although can still +use a lot. Some flags may be increased to improve performance, *but only if +you have large amounts of RAM*: + +- The `--reduce_shards` flag controls the number of resultant Dgraph alpha instances. + Increasing this increases memory consumption, but in exchange allows for +higher CPU utilization. + +- The `--map_shards` flag controls the number of separate map output shards. + Increasing this increases memory consumption but balances the resultant +Dgraph alpha instances more evenly. diff --git a/docusaurus-docs/docs/migration/export-data.md b/docusaurus-docs/docs/migration/export-data.md new file mode 100644 index 00000000..a65e8642 --- /dev/null +++ b/docusaurus-docs/docs/migration/export-data.md @@ -0,0 +1,296 @@ +--- +title: Export data +--- + +As an `Administrator` you can export data from Dgraph to an an object store, NFS, or a file path. + +When you export data, three files are generated: + +* `g01.gql_schema.gz`: The GraphQL schema file. This file can be imported using the Schema APIs +* `g01.json.gz` or `g01.rdf.gz`: the data from your instance in JSON format or RDF format. By default, Dgraph exports data in RDF format. +* `g01.schema.gz`: This file is the internal Dgraph schema. If you have set up the Dgraph Cloud instance with a GraphQL schema, then you can ignore this file. + +## Export data using the GraphQL admin endpoint + +You can export the entire data by executing a GraphQL mutation on the `/admin` endpoint of any Alpha node. + +**Before you begin**: + +* Ensure that there is sufficient space on disk to store the export. Each Dgraph Alpha leader for a group writes output as a gzipped file to the export directory specified through the `--export` flag (defaults to an **export** directory). If any of the groups fail because of insufficient space on the disk, the entire export process is considered failed and an error is returned. + +* Make a note of the export directories of the Alpha server nodes. For more information about configuring the Dgraph Alpha server, see [Config](/dgraph-overview/cli/config). + +This mutation triggers the export from each of the Alpha leader for a group. Depending on the Dgraph configuration several files are exported. It is recommended that you copy the files from the Alpha server nodes to a safe place when the export is complete. + +```graphql +mutation { + export(input: {}) { + response { + message + code + } + } +} +``` +The export data of the group: + +* in the Alpha instance is stored in the Alpha. +* in every other group is stored in the Alpha leader of that group. + +You need to retrieve the right export files from the Alpha instances in the cluster. Dgraph does not copy all files to the Alpha that initiated the export. + +When the export is complete a response similar to this appears: + +``` +{"data":{ + "export":{ + "response":{ + "message":"Export completed.", + "code":"Success" + } + } + }, + "extensions":{ + "tracing":{ + "version":1, + "startTime":"2022-12-14T07:39:51.061712416Z","endTime":"2022-12-14T07:39:51.129431494Z", + "duration":67719080 + } + } + } +``` + +## Export data format + +By default, Dgraph exports data in RDF format. Replace ``with `json` or `rdf` in this GraphQL mutation: + +```graphql +mutation { + export(input: { format: "" }) { + response { + message + code + } + } +} +``` + +## Export to NFS or a file path + +You can override the default folder path by adding the `destination` input field to the directory where you want to export data. Replace `` in this GraphQL mutation with the absolute path of the directory to export data. + +```graphql +mutation { + export(input: { + format: "" + destination: "" + }) { + response { + message + code + } + } +} +``` + +## Export to an object store +You can export to an AWS S3, Azure Blob Storage or Google Cloud Storage. + +### Example mutation to export to AWS S3 + +```graphql +mutation { + export(input: { + destination: "s3://s3..amazonaws.com/" + accessKey: "" + secretKey: "" + }) { + response { + message + code + } + } +} +``` + +:::note +The Dgraph URL used for S3 is different than the AWS CLI tools with the `aws s3` command, which uses a shortened format: `s3://`. +::: + + +### Example mutation to export to MinIO + +```graphql +mutation { + export(input: { + destination: "minio://
:9000/" + accessKey: "" + secretKey: "" + }) { + response { + message + code + } + } +} +``` + +## Export to a MinIO gateway + +You can use MinIO as a gateway to other object stores, such as [Azure Blob Storage](https://azure.microsoft.com/services/storage/blobs/) or [Google Cloud Storage](https://cloud.google.com/storage). + +### Azure Blob Storage + +You can use [Azure Blob Storage](https://azure.microsoft.com/services/storage/blobs/) through the [MinIO Azure Gateway](https://docs.min.io/docs/minio-gateway-for-azure.html). + +**Before you begin**: + +* Configure a [storage account](https://docs.microsoft.com/azure/storage/common/storage-account-overview) and a Blob [container](https://docs.microsoft.com/azure/storage/blobs/storage-blobs-introduction#containers) to organize the blobs. +* Make a note the name of the blob container. It is the `` when specifying the `destination` in the GraphQL mutation. +* [Retrieve storage accounts keys](https://docs.microsoft.com/azure/storage/common/storage-account-keys-manage) to configure MinIO. Because, [MinIO Azure Gateway](https://docs.min.io/docs/minio-gateway-for-azure.html) uses `MINIO_ACCESS_KEY` and `MINIO_SECRET_KEY` to correspond to Azure Storage Account `AccountName` and `AccountKey`. + +You can access Azure Blob Storage locally using one of these methods: + +* Using [MinIO Azure Gateway](https://docs.min.io/docs/minio-gateway-for-azure.html) with the MinIO Binary + ```bash + export MINIO_ACCESS_KEY="" + export MINIO_SECRET_KEY="" + minio gateway azure + ``` +* Using [MinIO Azure Gateway](https://docs.min.io/docs/minio-gateway-for-azure.html) with Docker + ```bash + docker run --detach --rm --name gateway \ + --publish 9000:9000 \ + --env MINIO_ACCESS_KEY="" \ + --env MINIO_SECRET_KEY="" \ + minio/minio gateway azure + ``` + * Using [MinIO Azure Gateway](https://docs.min.io/docs/minio-gateway-for-azure.html) with the [MinIO Helm chart](https://github.com/minio/charts) for Kubernetes: + ```bash + helm repo add minio https://helm.min.io/ + helm install my-gateway minio/minio \ + --set accessKey="",secretKey="" \ + --set azuregateway.enabled=true + ``` +You can use the [MinIO GraphQL mutation](/dgraph-overview/export-data#example-mutation-to-export-to-minio) with MinIO configured as a gateway. + +### Google Cloud Storage + +You can use [Google Cloud Storage](https://cloud.google.com/storage) through the [MinIO GCS Gateway](https://docs.min.io/docs/minio-gateway-for-gcs.html). + +**Before you begin**: +* Create [storage buckets](https://cloud.google.com/storage/docs/creating-buckets) +* Create a Service Account key for GCS and get a credentials file. For more information, see [Create a Service Account key](https://github.com/minio/minio/blob/master/docs/gateway/gcs.md#11-create-a-service-account-ey-for-gcs-and-get-the-credentials-file). + +When you have a `credentials.json`, you can access GCS locally using one of these methods: + +* Using [MinIO GCS Gateway](https://docs.min.io/docs/minio-gateway-for-gcs.html) with the MinIO Binary + ```bash + export GOOGLE_APPLICATION_CREDENTIALS="/path/to/credentials.json" + export MINIO_ACCESS_KEY="" + export MINIO_SECRET_KEY="" + minio gateway gcs "" + ``` +* Using [MinIO GCS Gateway](https://docs.min.io/docs/minio-gateway-for-gcs.html) with Docker + ```bash + docker run --detach --rm --name gateway \ + --publish 9000:9000 \ + --volume "":/credentials.json \ + --env GOOGLE_APPLICATION_CREDENTIALS=/credentials.json \ + --env MINIO_ACCESS_KEY="" \ + --env MINIO_SECRET_KEY="" \ + minio/minio gateway gcs "" + ``` +* Using [MinIO GCS Gateway](https://docs.min.io/docs/minio-gateway-for-gcs.html) with the [MinIO Helm chart](https://github.com/minio/charts) for Kubernetes: + ```bash + ## create MinIO Helm config + cat <<-EOF > myvalues.yaml + accessKey: + secretKey: + + gcsgateway: + enabled: true + projectId: + gcsKeyJson: | + $(IFS='\n'; while read -r LINE; do printf ' %s\n' "$LINE"; done < "") + EOF + + ## deploy MinIO GCS Gateway + helm repo add minio https://helm.min.io/ + helm install my-gateway minio/minio \ + --values myvalues.yaml + ``` +You can use the [MinIO GraphQL mutation](/dgraph-overview/export-data#example-mutation-to-export-to-minio) with MinIO configured as a gateway. + +## Disable HTTPS for exports to S3 and Minio + +By default, Dgraph assumes the destination bucket is using HTTPS. If that is not the case, the export fails. To export to a bucket using HTTP (insecure), set the query parameter `secure=false` with the destination endpoint in the `destination` field: + +```graphql +mutation { + export(input: { + destination: "minio://
:9000/?secure=false" + accessKey: "" + secretKey: "" + }) { + response { + message + code + } + } +} +``` + +## Use anonymous credentials + +When exporting to S3 or MinIO where credentials are not required, can set `anonymous` to true. + +```graphql +mutation { + export(input: { + destination: "s3://s3..amazonaws.com/" + anonymous: true + }) { + response { + message + code + } + } +} +``` + +## Encrypt exports + +Export is available wherever an Alpha is running. To encrypt an export, the Alpha must be configured with the `--encryption key-file=value`. + +:::note +The `--encryption key-file` was used for [Encryption at Rest](/dgraph-overview/admin/enterprise-features/encryption-at-rest) and will now also be used for encrypted exports. +::: + +## Use `curl` to trigger an export + +This is an example of how you can use `curl` to trigger an export. + + 1. Create GraphQL file for the desired mutation: + ```bash + cat <<-EOF > export.graphql + mutation { + export(input: { + destination: "s3://s3..amazonaws.com/" + accessKey: "" + secretKey: "" + }) { + response { + message + code + } + } + } + EOF + ``` + 2. Trigger an export with `curl` + ```bash + curl http://localhost:8080/admin --silent --request POST \ + --header "Content-Type: application/graphql" \ + --upload-file export.graphql + ``` diff --git a/docusaurus-docs/docs/migration/import-data.md b/docusaurus-docs/docs/migration/import-data.md new file mode 100644 index 00000000..ae5b9efd --- /dev/null +++ b/docusaurus-docs/docs/migration/import-data.md @@ -0,0 +1,21 @@ +--- +title: Import Data +--- + +As an `Administrator` you can initialize a new Dgraph cluster by doing an [Initial import](/dgraph-overview/migration/bulk-loader) and you can import data into a running instance by performing a [Live import](/dgraph-overview/migration/live-loader). + + +Initial import is **considerably faster** than the live import but can only be used to load data into a new cluster (without prior data) and is executed before starting the Alpha nodes. + + +:::note Both options accept [RDF N-Quad/Triple +data](https://www.w3.org/TR/n-quads/) or JSON format. Refers to [data migration](/dgraph-overview/migration/import-data) to see how to convert other data formats.::: + + +To load CSV-formatted data or SQL data into Dgraph, +first convert the dataset into one of the accepted formats ([RDF N-Quad/Triple](https://www.w3.org/TR/n-quads/) or JSON) and then load the +resulting dataset into Dgraph. + +After you convert the `.csv` or `.sql` files to [RDF N-Quad/Triple](https://www.w3.org/TR/n-quads/) or JSON, +you can use [Dgraph Live Loader](/dgraph-overview/migration/live-loader) or +[Dgraph Bulk Loader](/dgraph-overview/migration/bulk-loader) to import your data. diff --git a/docusaurus-docs/docs/migration/index.md b/docusaurus-docs/docs/migration/index.md new file mode 100644 index 00000000..dc9c47bb --- /dev/null +++ b/docusaurus-docs/docs/migration/index.md @@ -0,0 +1,3 @@ +--- +title: Data migration +--- diff --git a/docusaurus-docs/docs/migration/live-loader.md b/docusaurus-docs/docs/migration/live-loader.md new file mode 100644 index 00000000..dcb3e80b --- /dev/null +++ b/docusaurus-docs/docs/migration/live-loader.md @@ -0,0 +1,287 @@ +--- +title: Live import +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + +You can import data on a running Dgraph instance (which may have prior data) using Dgraph CLI command [dgraph live](/dgraph-overview/cli/live) referred to as **Live Loader**. +Live Loader sends mutations to a Dgraph cluster and has options to handle unique IDs assignment and to update existing data. + +:::note Live Loader accepts [RDF N-Quad/Triple +data](https://www.w3.org/TR/n-quads/) or JSON in plain or gzipped format. Refers to [data migration](/dgraph-overview/migration/import-data) to see how to convert other data formats.::: + +## Before you begin +Verify that you have a local folder `` containing +- at least one **data file** in RDF or JSON in plain or gzip format with the data to import +- an optional **schema file**. + +Those files have been generated by an [export](/dgraph-overview/migration/export-data) or by a [data migration](/dgraph-overview/migration/import-data) tool. + + +## Importing data on Dgraph Cloud + +1. Obtain dgraph binary or the latest docker image by following the [installation](/dgraph-overview/installation/download) instructions. + This is required to run Dgraph CLI command `dgraph live`. +1. Obtain the `GRPC endpoint` of your Dgraph Cloud backend and a valid `Client API key`. + + An administrator gets those information with the following steps: + 1. Log into the Dgraph Cloud account, select the backend + 2. In the `Admin` section of the Dgraph Cloud console, go to `Settings` and copy the value of the `gRPC Endpoint` from the `General` tab. + 3. Access the `API Keys` tab to generate an `Client API Key`. + + + +:::note The gRPC endpoint is different from the `GraphQL endpoint` that you can find in the section `Overview`. The gRPC endpoint looks like `frozen-mango.grpc.us-west-1.aws.cloud.dgraph.io:443` ::: + + +3. Run the live loader as follows: + + +``` +docker run -it --rm -v :/tmp dgraph/dgraph:latest \ + dgraph live --slash_grpc_endpoint -f /tmp/ -s /tmp/ -t +``` + +Load multiple data files by using +``` +docker run -it --rm -v :/tmp dgraph/dgraph:latest \ + dgraph live --slash_grpc_endpoint -f /tmp -s /tmp/ -t +``` + +When the path provided with `-f, --files` option is a directory, then all files +ending in .rdf, .rdf.gz, .json, and .json.gz will be loaded. Be sure that your schema file has another extension (.txt or .schema for example). + + + +``` +dgraph live --slash_grpc_endpoint -f / -s / -t +``` +Load multiple data files by using +``` +dgraph live --slash_grpc_endpoint -f /tmp -s /tmp/ -t +``` + +When the path provided with `-f, --files` option is a directory, then all files +ending in .rdf, .rdf.gz, .json, and .json.gz will be loaded. Be sure that your schema file has another extension (.txt or .schema for example). + + + +## Batch upserts +You can use Live loader to update existing data, either to modify existing predicates are to add new predicates to existing nodes. + + +To do so, use the `-U, --upsertPredicate` flag or the `-x, --xidmap` flag. + +### upsertPredicate flag +Use the `-U, --upsertPredicate` flag to specify the predicate name in your data that will serve as unique identifier. + +For example: +```sh +dgraph live --files --schema --upsertPredicate xid +``` + +The upsert predicate used must be present the Dgraph instance or in the schema file and must be indexed. +For each node, Live loader will use the node name provided in the data file as the upsert predicate value. +For example if your data file contains +``` +<_:my.org/customer/1> "John" . +``` + +The previous command creates or updates the node with predicate `xid` equal to `my.org/customer/1` and will set it's predicate `firstName` with the value `John`. + +### xidmap flag + +```sh +dgraph live --files --schema --xidmap +``` +Live loader uses `-x, --xidmap` directory to lookup the `uid` value for each node name used in the data file or to store the mapping between the node names and the generated `uid` for every new node. + + +## Import data on Dgraph self-hosted + +Run the live loader using the the `-a, --alpha` flag as follows + + + +``` +docker run -it --rm -v :/tmp dgraph/dgraph:latest \ + dgraph live --alpha -f /tmp/ -s /tmp/ +``` + +Load multiple data files by using +``` +docker run -it --rm -v :/tmp dgraph/dgraph:latest \ + dgraph live --alpha -f /tmp -s /tmp/ +``` + +`--alpha` default value is `localhost:9080`. You can specify a comma separated list of alphas addresses in the same cluster to distribute the load. + + +When the path provided with `-f, --files` option is a directory, then all files +ending in .rdf, .rdf.gz, .json, and .json.gz will be loaded. Be sure that your schema file has another extension (.txt or .schema for example). + + + + +``` + dgraph live --alpha -f / -s / +``` + + +`--alpha` default value is `localhost:9080`. You can specify a comma separated list of alphas addresses in the same cluster to distribute the load. + + + + +### Load from S3 + +To live load from [Amazon S3 (Simple Storage Service)](https://aws.amazon.com/s3/), you must have either permissions to access the S3 bucket from the system performing live load (see [IAM setup](#iam-setup) below) or explicitly add the following AWS credentials set via environment variables: + + Environment Variable | Description + -------------------- | ----------- + `AWS_ACCESS_KEY_ID` or `AWS_ACCESS_KEY` | AWS access key with permissions to write to the destination bucket. + `AWS_SECRET_ACCESS_KEY` or `AWS_SECRET_KEY` | AWS access key with permissions to write to the destination bucket. + +#### IAM setup + +In AWS, you can accomplish this by doing the following: + +1. Create an [IAM Role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) with an IAM Policy that grants access to the S3 bucket. +2. Depending on whether you want to grant access to an EC2 instance, or to a pod running on [EKS](https://aws.amazon.com/eks/), you can do one of these options: + * [Instance Profile](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) can pass the IAM Role to an EC2 Instance + * [IAM Roles for Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) to attach the IAM Role to a running EC2 Instance + * [IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) to associate the IAM Role to a [Kubernetes Service Account](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/). + +Once your setup is ready, you can execute the live load from S3. As examples: + +```sh +## short form of S3 URL +dgraph live \ + --files s3://// \ + --schema s3://///schema.txt + +## long form of S3 URL +dgraph live \ + --files s3://s3..amazonaws.com// \ + --schema s3://s3..amazonaws.com///schema.txt +``` + +:::note +The short form of the S3 URL requires S3 URL is prefixed with `s3:///` (noticed the triple-slash `///`). The long form for S3 buckets requires a double slash, e.g. `s3://`. +::: + + +### Load from MinIO + +To live load from MinIO, you must have the following MinIO credentials set via +environment variables: + + Environment Variable | Description + -------------------- | ----------- + `MINIO_ACCESS_KEY` | Minio access key with permissions to write to the destination bucket. + `MINIO_SECRET_KEY` | Minio secret key with permissions to write to the destination bucket. + + +Once your setup is ready, you can execute the bulk load from MinIO: + +```sh +dgraph live \ + --files minio://minio-server:port// \ + --schema minio://minio-server:port///schema.txt +``` + + +## Enterprise Features + +### Multi-tenancy (Enterprise Feature) + +Since [multi-tenancy](/dgraph-overview/admin/enterprise-features/multitenancy) requires ACL, +when using the Live loader you must provide the login credentials using the `--creds` flag. +By default, Live loader loads the data into the user's namespace. + +[Guardians of the Galaxy](/dgraph-overview/multitenancy#guardians-of-the-galaxy) can load the data into multiple namespaces. +Using `--force-namespace`, a _Guardian_ can load the data into the namespace specified in the data and schema files. + +:::note +The Live loader requires that the `namespace` from the data and schema files exist before loading the data. +::: + +For example, to preserve the namespace while loading data first you need to create the namespace(s) and then run the live loader command: + +```sh +dgraph live \ + --schema /tmp/data/1million.schema \ + --files /tmp/data/1million.rdf.gz --creds="user=groot;password=password;namespace=0" \ + --force-namespace -1 +``` + +A _Guardian of the Galaxy_ can also load data into a specific namespace. For example, to force the data loading into namespace `123`: + +```sh +dgraph live \ + --schema /tmp/data/1million.schema \ + --files /tmp/data/1million.rdf.gz \ + --creds="user=groot;password=password;namespace=0" \ + --force-namespace 123 +``` +:::note +The Live loader requires that the `namespace` from the data and schema files exist before loading the data. +::: + +### Encrypted imports (Enterprise Feature) + +A new flag `--encryption key-file=value` is added to the Live Loader. This option is required to decrypt the encrypted export data and schema files. Once the export files are decrypted, the Live Loader streams the data to a live Alpha instance. +Alternatively, starting with v20.07.0, the `vault_*` options can be used to decrypt the encrypted export and schema files. + +:::note +If the live Alpha instance has encryption turned on, the `p` directory will be encrypted. Otherwise, the `p` directory is unencrypted. +::: + +For example, to load an encrypted RDF/JSON file and schema via Live Loader: + +```sh +dgraph live \ + --files \ + --schema \ + --encryption key-file= +``` +You can import your encrypted data into a new Dgraph Alpha node without encryption enabled. + +```bash +# Encryption Key from the file path +dgraph live --files "" --schema "" \ + --alpha "" --zero "" \ + --encryption key-file="" + +# Encryption Key from HashiCorp Vault +dgraph live --files "" --schema "" \ + --alpha "" --zero "" \ + --vault addr="http://localhost:8200";enc-field="enc_key";enc-format="raw";path="secret/data/dgraph/alpha";role-id-file="./role_id";secret-id-file="./secret_id" + +``` + +## Other Live Loader options + +`--new_uids` (default: `false`): Assign new UIDs instead of using the existing +UIDs in data files. This is useful to avoid overriding the data in a DB already +in operation. + + + +`--format`: Specify file format (`rdf` or `json`) instead of getting it from +filenames. This is useful if you need to define a strict format manually. + +`-b, --batch` (default: `1000`): Number of N-Quads to send as part of a mutation. + +`-c, --conc` (default: `10`): Number of concurrent requests to make to Dgraph. +Do not confuse with `-C`. + +`-C, --use_compression` (default: `false`): Enable compression for connections to and from the +Alpha server. + + + +`--vault` [superflag's](/dgraph-overview/cli/superflags) options specify the Vault server address, role id, secret id, and +field that contains the encryption key required to decrypt the encrypted export. diff --git a/docusaurus-docs/docs/migration/loading-csv-data.md b/docusaurus-docs/docs/migration/loading-csv-data.md new file mode 100644 index 00000000..aa4bbca5 --- /dev/null +++ b/docusaurus-docs/docs/migration/loading-csv-data.md @@ -0,0 +1,178 @@ +--- +title: CSV data +--- + +## Convert CSV to JSON + +There are many tools available to convert CSV to JSON. You can import large data sets to Dgraph using [Dgraph Live Loader](/dgraph-overview/migration/live-loader) or [Dgraph Bulk Loader](/dgraph-overview/migration/bulk-loader). In these examples, the `csv2json` tool is used, and the data is imported using the **Mutate** tab in Ratel. + +### Before you begin + +* Install [`csv2json`](https://www.npmjs.com/package/csv2json) conversion tool. +* Install `jq` a lightweight and flexible command-line JSON processor. +* Connect the Dgraph instance to Ratel for queries, mutations and visualizations. + +#### Example 1 + +1. Create a `names.csv` file with these details: + + ```csv + Name,URL + Dgraph,https://github.com/dgraph-io/dgraph + Badger,https://github.com/dgraph-io/badger + ``` + +2. Change to the directory that contains the `names.csv` file and convert it to `names.json`: + + ```sh + $ csv2json names.csv --out names.json + ``` +3. To prettify a JSON file, use the jq '.' command: + + ```sh + $ cat names.json | jq '.' + ``` + The output is similar to: + ```sh + [ + { + "Name": "Dgraph", + "URL": "https://github.com/dgraph-io/dgraph" + }, + { + "Name": "Badger", + "URL": "https://github.com/dgraph-io/badger" + } + ] + ``` + + This JSON file follows + the [JSON Mutation Format](/dgraph-overview/dql/json-mutation-format), it can be loaded into Dgraph using [Dgraph Live Loader](/dgraph-overview/migration/live-loader) , [Dgraph Bulk Loader](/dgraph-overview/migration/bulk-loader) or the programmatic clients. + +4. To load the data to Ratel and HTTP clients. The JSON data has to be stored within the `"set"` key. You can use `jq` to transform the JSON into the correct format: + + ```sh + $ cat names.json | jq '{ set: . }' + ``` + + An output similar to this appears: + ```json + { + "set": [ + { + "Name": "Dgraph", + "URL": "https://github.com/dgraph-io/dgraph" + }, + { + "Name": "Badger", + "URL": "https://github.com/dgraph-io/badger" + } + ] + } + ``` +5. Paste the output in the **Mutate** tab of **Console** in Ratel. +6. Click **Run** to import data. +7. To view the imported data paste the following in the **Query** tab and click **Run**: + + ```dql + { + names(func: has(URL)) { + Name + } + } + ``` + + +#### Example 2 + +1. Create a `connects.csv` file that's connecting nodes together. The `connects` field should be of the `uid` type. + + ```csv + uid,connects + _:a,_:b + _:a,_:c + _:c,_:d + _:d,_:a + ``` + +2. To get the correct JSON format, you can convert the CSV into JSON and use `jq` +to transform it in the correct format where the `connects` edge is a node `uid`. +This JSON file can be loaded into Dgraph using the programmatic clients. + + ```sh + $ csv2json connects.csv | jq '[ .[] | { uid: .uid, connects: { uid: .connects } } ]' + ``` + The output is similar to: + + ```json + [ + { + "uid": "_:a", + "connects": { + "uid": "_:b" + } + }, + { + "uid": "_:a", + "connects": { + "uid": "_:c" + } + }, + { + "uid": "_:c", + "connects": { + "uid": "_:d" + } + }, + { + "uid": "_:d", + "connects": { + "uid": "_:a" + } + } + ] + ``` + +3. To get an output of the mutation format accepted in Ratel UI and HTTP clients: + + ```sh + $ csv2json connects.csv | jq '{ set: [ .[] | {uid: .uid, connects: { uid: .connects } } ] }' + ``` + + The output is similar to: + + ```json + { + "set": [ + { + "uid": "_:a", + "connects": { + "uid": "_:b" + } + }, + { + "uid": "_:a", + "connects": { + "uid": "_:c" + } + }, + { + "uid": "_:c", + "connects": { + "uid": "_:d" + } + }, + { + "uid": "_:d", + "connects": { + "uid": "_:a" + } + } + ] + } + ``` +:::note +To reuse existing integer IDs from a CSV file as UIDs in Dgraph, use Dgraph Zero's [assign endpoint](/dgraph-overview/admin/dgraph-zero) before loading data to allocate a range of UIDs that can be safely assigned. +::: + +4. Paste the output in the **Mutate** tab of **Console** in Ratel, and click **Run** to import data. diff --git a/docusaurus-docs/docs/migration/migrate-tool.md b/docusaurus-docs/docs/migration/migrate-tool.md new file mode 100644 index 00000000..b958d43d --- /dev/null +++ b/docusaurus-docs/docs/migration/migrate-tool.md @@ -0,0 +1,72 @@ +--- +title: MySQL data +--- + +You can use the Dgraph migration tool to convert a MySQL database tables into a schema and RDF file, and then load the resulting dataset into Dgraph. + +## Deriving a Dgraph schema from SQL + +Before converting the data, the migration tool needs to derive the schema of each predicate. +Dgraph follows two simple rules for converting the schema: + +1. For plain attributes, there is usually a one-to-one mapping between a SQL data type and the +Dgraph datatype. For instance, a `Body` column in the `Posts` table is of type `text`, +and hence, the predicate `posts.Body` is of type `string`: `posts.Body: string .` +2. The predicates representing inter-object relationships, like `posts.OwnerUserId.`, simply have the type +`[uid]`, meaning following the predicate leads us to a set of other objects. + +### Using the Migration tool +You can run the Dgraph migrate tool using this command: + +```sh +dgraph migrate [flags] +``` +1. Create a `config.properties` file that has the following settings and values should not be in quotes: + + ```txt + user = + password = + db = + ``` + +2. Export the SQL database into `schema.txt` and `sql.rdf` file: + + ```sh + dgraph migrate --config config.properties --output_schema schema.txt --output_data sql.rdf + ``` + + An output similar to this appears: + + ```txt + Dumping table xyz + Dumping table constraints xyz + ... + ``` + +:::note +If you are connecting to a remote DB hosted on AWS, GCP, and others, you need to pass the flags `--host`, and `--port`. +For description of the various flags in the migration tool, see [command line options](/dgraph-overview/migration/import-data). +::: + +After the migration is complete, two new files are available: + +- an RDF file `sql.rdf` containing all the N-Quad entries +- a schema file `schema.txt`. + +### Importing the data + +The two files can then be imported into Dgraph using the [Dgraph Live Loader](/dgraph-overview/migration/live-loader) +or [Bulk Loader](/dgraph-overview/migration/bulk-loader). Sometimes you might want to customize your schema. +For example, you might add an index to a predicate, or change an inter-object predicate (edge) from +unidirectional to bidirectional by adding the `@reverse` directive. If you would like such customizations, you should do it by editing the schema file generated by the migration tool before feeding the files to the Live Loader or Bulk Loader. + +* To import the data into Dgraph using the Live Loader to Dgraph Zero and Alpha servers running on the default ports use: + + ```sh + dgraph live -z localhost:5080 -a localhost:9080 --files sql.rdf --format=rdf --schema schema.txt + ``` +* To import data to Dgraph Cloud use: + ```sh + dgraph live --slash_grpc_endpoint=:443 -f sql.rdf --format=rdf --schema schema.txt -t + ``` + For detailed instructions to import data to Dgraph cloud, see [import data](https://dgraph.io/docs/cloud/admin/import-export/). diff --git a/docusaurus-docs/docs/quick-start.md b/docusaurus-docs/docs/quick-start.md new file mode 100644 index 00000000..4df34484 --- /dev/null +++ b/docusaurus-docs/docs/quick-start.md @@ -0,0 +1,406 @@ +--- +title: Quick Start +--- + +In this Dgraph quick start guide we walk through creating a graph, inserting +data, and querying the graph using [DQL](/dgraph-overview/dgraph-glossary#dql). + +This guide helps you to understand how to: + +- Create a new Dgraph graph +- Connect your graph to the Ratel web client +- Add data using mutations +- Query the graph using DQL +- Update the graph schema to support more advanced queries + +## Run Dgraph and connect the Ratel web UI + +The recommended way to get started with Dgraph for local development is by using +the official Dgraph Docker image. + +In this section we'll create a new graph, then we'll connect our new graph to +[Ratel](/dgraph-overview/dgraph-glossary#ratel), the web-based UI for Dgraph. + +### Run Dgraph with Docker + +The [`dgraph/standalone`](https://hub.docker.com/r/dgraph/standalone) Docker image has everything needed to run Dgraph locally. + +Ensure you have [Docker installed](https://www.docker.com/), then run the following command to start a local Dgraph instance: + +```bash +docker run --rm -it -p 8080:8080 -p 9080:9080 dgraph/standalone:latest +``` + +This will create a local Dgraph instance and expose the ports necessary to connect to Dgraph via HTTP and gRPC. Specifically: + +* `docker run` - initiates a new Docker container +* `--rm` - automatically removes the container when it exits, helping with cleanup +* `-it` - uses interactive mode to show output of the container +* `-p 8080:8080` - maps port 8080 from the host machine to port 8080 in the Docker container to allow Dgraph HTTP connections +* `-p 9080:9080` - maps port 9080 from the host machine to port 9080 in the Docker container to allow Dgraph gRPC connections +* `dgraph/standalone:latest` - specifies the Docker image to use, this is the official Dgraph image with latest tag + +### Connect Ratel + +Ratel is a web-based UI dashboard for interacting with Dgraph using Dgraph's query language, [DQL](/dgraph-overview/dgraph-glossary#dql) + +Run Ratel locally by running the `dgraph/ratel` container with the following command: + +```bash +docker run --rm -it -p 8000:8000 dgraph/ratel:latest +``` + +This will start Ratel. Open your web browser and navigate to `http://localhost:8000`, then enter `http://localhost:8080` for the "Dgraph Conn String". This will allow Ratel to connect to our local Dgraph instance and execute DQL queries. + +![Setting up Ratel](/images/dgraph/quickstart/ratel-docker-connection.png) + +Now select **Connect** to verify the connection and then select **Continue** to access the Ratel console. + +![Setting up Ratel local connection](/images/dgraph/quickstart/ratel-docker-overview.png) + +Now we're ready to add data to our graph. + +## Add data to the graph with a mutation + +Graph databases like Dgraph use a data model called the **property graph**, +which consists of [**nodes**](/dgraph-overview/dgraph-glossary#node), +[**relationships**](/dgraph-overview/dgraph-glossary#relationship) that connect nodes, and key-value +pair **properties** that describe nodes and relationships. + +With Dgraph, we use **triples** to describe each piece of our graph, which when +combined together make up our property graph. Triples are composed of a subject, +predicate, and object. + +```text + . +``` + +The subject always refers to a [node](/dgraph-overview/dgraph-glossary#node), +[predicates](/dgraph-overview/dgraph-glossary#predicate) can be a relationship or property, and the +object can be a node or property value. You can read more about triples in the +[RDF section of the docs](/dgraph-overview/dql/dql-rdf), but for now let's move on to +creating data in Dgraph using triples. + +Let's create data about movies, characters, and their genres. Here's the +property graph representation of the data we'll create: + +![Movie and actor data model](/images/dgraph/quickstart/data-model.png) + +### Add mutation in Ratel + +The create, update, and delete operations in Dgraph are called mutations. + +In the Ratel **Console** page, select the **Mutate** tab, then paste the +following mutation: + +```dql +{ + set { + + _:scifi "Genre" . + _:scifi "Sci-Fi" . + + _:starwars "Movie" . + _:starwars "Star Wars: Episode IV - A New Hope" . + _:starwars "1977-05-25"^^ . + + + _:startrek "Movie" . + _:startrek "Star Trek: The Motion Picture" . + _:startrek "1979-12-07"^^ . + + _:george "Person" . + _:george "George Lucas" . + + _:luke "Character" . + _:luke "Luke Skywalker" . + + _:leia "Character" . + _:leia "Princess Leia" . + + _:han "Character" . + _:han "Han Solo" . + + _:starwars _:scifi . + _:startrek _:scifi . + + _:starwars _:george . + + _:starwars _:luke . + _:starwars _:leia . + _:starwars _:han . + + } +} +``` + +The preceding DQL mutation uses +[N-Quad RDF format](/dgraph-overview/dql-rdf#n-quads-format) to define the triples that +make up the property graph we want to create. + +### View mutation results + +Select **Run** to execute the mutation. In the JSON tab we can see the result of +this mutation. + +```json + { + "data": { + "code": "Success", + "message": "Done", + "queries": null, + "uids": { + "george": "0x4", + "han": "0x7", + "leia": "0x6", + "luke": "0x5", + "scifi": "0x1", + "startrek": "0x3", + "starwars": "0x2" + } + } + } +``` + +Dgraph displays the universal identifiers ([UID](/dgraph-overview/dgraph-glossary#uid)) of the +nodes that were created. + +## Query the graph + +### Query for all movies + +In the **Console** page, select the **Query** tab and run this query: + +```dql + { + movies(func: type(Movie)) { + Movie.title + Movie.genre { + Genre.name + } + Movie.director { + Person.name + } + Movie.character { + Character.name + } + } + } +``` + +This query searches for all `Movie` nodes as the start of the traversal using +the `type(Movie)` function to define the starting point of our query traversal, +then finds any genres, directors, and characters connected to each movie. + +### View results in JSON and graph visualization + +In Ratel's JSON tab we can view the results of this query as JSON: + +```json + { + "data": { + "movies": [ + { + "Movie.title": "Star Wars: Episode IV - A New Hope", + "Movie.genre": [ + { + "Genre.name": "Sci-Fi" + } + ], + "Movie.director": [ + { + "Person.name": "George Lucas" + } + ], + "Movie.character": [ + { + "Character.name": "Luke Skywalker" + }, + { + "Character.name": "Princess Leia" + }, + { + "Character.name": "Han Solo" + } + ] + }, + { + "Movie.title": "Star Trek: The Motion Picture", + "Movie.genre": [ + { + "Genre.name": "Sci-Fi" + } + ] + } + ] + } + } +``` + +In the response panel, Select **Graph** to view a graph visualization of the +results of our query: + +![Query result graph visualization](/images/dgraph/quickstart/query-result-1.png) + +## Update the graph schema and query using an index + +The previous query used the `type()` function to find the starting point of our +graph traversal. We can use more complex functions to filter by string +comparison operator, and others, however to use these functions we must first +update the graph schema to create an index on the predicates we want to use in +these functions. + +The [function documentation](/dgraph-overview/dql/query/functions) specifies which kind of +index is needed for each function. + +We'll use Ratel to alter the schema to add indexes on some of the data so +queries can use term matching, filtering, and sorting. + +### Create an index for movie title + +In Ratel's **Schema** page, select **Predicates**. Here we can see all the +predicates used in the graph. A [predicate](/dgraph-overview/dgraph-glossary#predicate) is +Dgraph's internal representation of a node, property, or relationship. + +Select the `Movie.title` predicate. Ratel displays details about the predicate +type and indexes. + +Change the type to **string** then select **index** and select **term** for the +`Movie.title` predicate, then select **Update** to apply the index. + +![Adding an index for movie title](/images/dgraph/quickstart/schema-title.png) + +### Create an index for movie release date + +Next, we'll create an index for the `Movie.release_date` predicate. + +Select the `Movie.release_date` predicate. Change the type to **dateTime**. +Select **index** and choose **year** for the index tokenizer. Click **Update** +to apply the index on the `release-date` predicate. + +![Adding an index for movie release date](/images/dgraph/quickstart/schema-date.png) + +### Query using indexes + +Now let's find all movies with the term "Star" in their title and released +before 1979. + +In the **Console** page select the **Query** tab and run this query: + +```dql + { + movieSearch(func: allofterms(Movie.title, "Star"), orderasc: Movie.release_date) @filter(lt(Movie.release_date, "1979")) { + Movie.title + Movie.release_date + Movie.director { + Person.name + } + Movie.character (orderasc: Character.name) { + Character.name + } + } + } +``` + +We can see the JSON result in the JSON tab: + +```json + { + "data": { + "movieSearch": [ + { + "Movie.title": "Star Wars: Episode IV - A New Hope", + "Movie.release_date": "1977-05-25T00:00:00Z", + "Movie.director": [ + { + "Person.name": "George Lucas" + } + ], + "Movie.character": [ + { + "Character.name": "Han Solo" + }, + { + "Character.name": "Luke Skywalker" + }, + { + "Character.name": "Princess Leia" + } + ] + } + ] + } + } +``` + +And also view the graph visualization of the result in the Graph tab: + +![Graph visualization of query result](/images/dgraph/quickstart/query-result-2.png) + +Try changing the release date and the search terms conditions to see Dgraph +search and filtering in action. + +## Reverse relationship query + +### Add reverse relationship + +In the previous queries we traversed from the movie node to its connected genre +node, but what if we want to find all movies connected to a genre node? In order +to traverse from a genre node to a movie node we need to explicitly define the +`Movie.genre` predicate as a reverse relationship. + +To define a reverse relationship for the `Movie.genre` predicate we'll return to +the Schema page in Ratel, select the `Movie.genre` predicate and toggle the +**reverse** checkbox. Then select **Update** to apply this schema change. + +![Define a reverse relationship in the graph schema](/images/dgraph/quickstart/schema-reverse.png) + +### Query using the reverse relationship + +In a DQL query the `~` operator is used to specify a reverse relationship. To +traverse from a genre node to a movie node we use the syntax `~Movie.genre`. + +In this query we find all movies connected to the "Sci-Fi" genre: + +```dql + { + genreSearch(func: type(Genre)) { + Genre.name + movies: ~Movie.genre { + Movie.title + } + } + } +``` + +Note that we can also alias the field name to "movies" in our result JSON using +the syntax `movies: ~Movie.genre`. + +```json + { + "data": { + "genreSearch": [ + { + "Genre.name": "Sci-Fi", + "movies": [ + { + "Movie.title": "Star Wars: Episode IV - A New Hope" + }, + { + "Movie.title": "Star Trek: The Motion Picture" + } + ] + } + ] + } + } +``` + +In this quick start we created a new graph instance using Dgraph, added data, +queried the graph, visualized the results, and updated the schema of our graph. + +## Where to go from here + +- Learn more about using [DQL](/dgraph-overview/dql/query/dql-query) to query your graph. +- Go to [Clients](/clients) to see how to communicate with Dgraph + from your app. diff --git a/docusaurus-docs/docs/releases/index.md b/docusaurus-docs/docs/releases/index.md new file mode 100644 index 00000000..f740031e --- /dev/null +++ b/docusaurus-docs/docs/releases/index.md @@ -0,0 +1,25 @@ +--- +title: Changelog +--- + +The latest Dgraph release is the v24 series. + +Dgraph releases starting v22.0.0 is following semver +[See the post here](https://discuss.dgraph.io/t/dgraph-v22-0-0-rc1-20221003-release-candidate/). + +To learn about the latest releases and other important announcements, watch the +[Announce][] category on Discuss. + +[Announce]: https://discuss.dgraph.io/c/announce + +## Release series + + Release | First Release Date | End of Life +-----------------------|--------------------|-------------- + [v24.0][] | June 2024 | December 2025 + [v23.1][] | October 2023 | April 2025 + + +[v24.0]: https://discuss.dgraph.io/t/dgraph-release-v24-0-0-is-now-available/19346 +[v23.1]: https://discuss.dgraph.io/t/dgraph-23-1-0-is-generally-available-on-dgraph-cloud-dockerhub-and-github/18980 + diff --git a/docusaurus-docs/sidebars-ratel.ts b/docusaurus-docs/sidebars-ratel.ts index 6d737a42..d5e2da88 100644 --- a/docusaurus-docs/sidebars-ratel.ts +++ b/docusaurus-docs/sidebars-ratel.ts @@ -3,6 +3,11 @@ import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; const sidebars: SidebarsConfig = { ratelSidebar: [ 'index', + 'connection', + 'console', + 'schema', + 'cluster', + 'backups', ], }; diff --git a/docusaurus-docs/sidebars.ts b/docusaurus-docs/sidebars.ts index 67aacbd4..3763421e 100644 --- a/docusaurus-docs/sidebars.ts +++ b/docusaurus-docs/sidebars.ts @@ -3,6 +3,243 @@ import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; const sidebars: SidebarsConfig = { docsSidebar: [ 'overview', + 'quick-start', + 'dgraph-glossary', + { + type: 'category', + label: 'DQL', + items: [ + 'dql/index', + 'dql/dql-schema', + 'dql/dql-mutation', + 'dql/dql-rdf', + 'dql/json-mutation-format', + 'dql/predicate-indexing', + 'dql/indexing-custom-tokenizers', + 'dql/upserts', + { + type: 'category', + label: 'Query', + items: [ + 'dql/query/index', + 'dql/query/dql-query', + 'dql/query/functions', + 'dql/query/facets', + 'dql/query/variables', + 'dql/query/aggregation', + 'dql/query/sorting', + 'dql/query/pagination', + 'dql/query/count', + 'dql/query/alias', + 'dql/query/fragments', + 'dql/query/debug', + 'dql/query/expand-predicates', + 'dql/query/language-support', + 'dql/query/graphql-variables', + 'dql/query/running-examples', + 'dql/query/kshortest-path-queries', + { + type: 'category', + label: 'Directives', + items: [ + 'dql/query/directive/index', + 'dql/query/directive/filter', + 'dql/query/directive/groupby', + 'dql/query/directive/cascade-directive', + 'dql/query/directive/recurse-query', + 'dql/query/directive/normalize-directive', + 'dql/query/directive/ignorereflex-directive', + ], + }, + ], + }, + 'dql/tips/index', + ], + }, + { + type: 'category', + label: 'Administration', + items: [ + 'admin/index', + 'admin/dgraph-administration', + 'admin/dgraph-alpha', + 'admin/dgraph-zero', + 'admin/data-compression', + 'admin/troubleshooting', + { + type: 'category', + label: 'Enterprise Features', + items: [ + 'admin/enterprise-features/index', + 'admin/enterprise-features/access-control-lists', + 'admin/enterprise-features/binary-backups', + 'admin/enterprise-features/change-data-capture', + 'admin/enterprise-features/encryption-at-rest', + 'admin/enterprise-features/learner-nodes', + 'admin/enterprise-features/license', + 'admin/enterprise-features/lsbackup', + 'admin/enterprise-features/multitenancy', + ], + }, + { + type: 'category', + label: 'Observability', + items: [ + 'admin/observability/index', + 'admin/observability/monitoring', + 'admin/observability/metrics', + 'admin/observability/tracing', + 'admin/observability/audit-logs', + 'admin/observability/log-format', + ], + }, + { + type: 'category', + label: 'Security', + items: [ + 'admin/security/index', + 'admin/security/admin-endpoint-security', + 'admin/security/tls-configuration', + 'admin/security/ports-usage', + ], + }, + ], + }, + { + type: 'category', + label: 'CLI', + items: [ + 'cli/index', + 'cli/alpha', + 'cli/zero', + 'cli/bulk', + 'cli/live', + 'cli/restore', + 'cli/acl', + 'cli/audit', + 'cli/cert', + 'cli/completion', + 'cli/config', + 'cli/conv', + 'cli/debuginfo', + 'cli/decrypt', + 'cli/export_backup', + 'cli/increment', + 'cli/migrate', + 'cli/superflags', + 'cli/upgrade', + ], + }, + { + type: 'category', + label: 'Clients', + items: [ + 'clients/index', + 'clients/go', + 'clients/python', + 'clients/java', + 'clients/csharp', + 'clients/raw-http', + 'clients/unofficial-clients', + { + type: 'category', + label: 'JavaScript', + items: [ + 'clients/javascript/index', + 'clients/javascript/grpc', + 'clients/javascript/http', + ], + }, + ], + }, + { + type: 'category', + label: 'Installation', + items: [ + 'installation/index', + 'installation/download', + 'installation/dgraph-architecture', + 'installation/deployment-patterns', + 'installation/single-host-setup', + 'installation/ha-cluster', + 'installation/lambda-server', + 'installation/production-checklist', + ], + }, + { + type: 'category', + label: 'Migration', + items: [ + 'migration/index', + 'migration/bulk-loader', + 'migration/live-loader', + 'migration/import-data', + 'migration/export-data', + 'migration/loading-csv-data', + 'migration/migrate-tool', + ], + }, + { + type: 'category', + label: 'Design Concepts', + items: [ + 'design-concepts/index', + 'design-concepts/dql-concept', + 'design-concepts/graphql-concept', + 'design-concepts/dql-graphql-layering-concept', + 'design-concepts/acl-concept', + 'design-concepts/badger-concept', + 'design-concepts/clients-concept', + 'design-concepts/consistency-model', + 'design-concepts/discovery-concept', + 'design-concepts/facets-concept', + 'design-concepts/group-concept', + 'design-concepts/index-tokenize-concept', + 'design-concepts/lambda-concept', + 'design-concepts/minimizing-network-calls', + 'design-concepts/namespace-tenant-concept', + 'design-concepts/network-call-minimization-concept', + 'design-concepts/posting-list-concept', + 'design-concepts/protocol-buffers-concept', + 'design-concepts/queries-process', + 'design-concepts/raft', + 'design-concepts/relationships-concept', + 'design-concepts/replication-concept', + 'design-concepts/transaction-mutation-concept', + 'design-concepts/transactions-concept', + 'design-concepts/wal-memtable-concept', + 'design-concepts/workers-concept', + ], + }, + { + type: 'category', + label: 'How To', + items: [ + 'howto/index', + 'howto/completion', + 'howto/concurrent-modification-java-multithreaded', + 'howto/dgraph-sentry-integration', + 'howto/dql-schema-request', + 'howto/drop-data', + 'howto/jepsen-tests', + 'howto/load-balancing-nginx', + 'howto/login-system', + 'howto/retrieving-debug-information', + 'howto/update-dgraph-types', + 'howto/using-debug-tool', + 'howto/using-increment-tool', + { + type: 'category', + label: 'Command Line', + items: [ + 'howto/commandline/index', + 'howto/commandline/about-cli', + 'howto/commandline/create-cli', + ], + }, + ], + }, + 'releases/index', ], }; diff --git a/docusaurus-docs/src/components/Highlight/index.tsx b/docusaurus-docs/src/components/Highlight/index.tsx new file mode 100644 index 00000000..9757d156 --- /dev/null +++ b/docusaurus-docs/src/components/Highlight/index.tsx @@ -0,0 +1,120 @@ +import React, { ReactNode } from 'react'; +import CodeBlock from '@theme/CodeBlock'; +import styles from './styles.module.css'; + +interface HighlightProps { + language?: string; + linenos?: string | boolean; + hl_lines?: string; + children: ReactNode; +} + +// Helper function to extract code from MDX children +function extractCodeFromChildren(children: ReactNode): string { + if (typeof children === 'string') { + return children.trim(); + } + + let code = ''; + + React.Children.forEach(children, (child) => { + if (typeof child === 'string') { + code += child; + } else if (React.isValidElement(child)) { + // Handle template literals (backtick strings) + if (child.type === 'code' && child.props && typeof child.props.children === 'string') { + code += child.props.children; + } else if (child.props && child.props.children) { + code += extractCodeFromChildren(child.props.children); + } else if (child.props && child.props.className && child.props.className.includes('language-')) { + code += extractCodeFromChildren(child.props.children); + } + } + }); + + return code.trim(); +} + +// Parse hl_lines parameter (e.g., "7" or "6-7" or "7,9,11") +function parseHighlightLines(hlLines?: string): number[] { + if (!hlLines) return []; + + const lines: number[] = []; + const parts = hlLines.split(','); + + for (const part of parts) { + const trimmed = part.trim(); + if (trimmed.includes('-')) { + // Range like "6-7" + const [start, end] = trimmed.split('-').map(Number); + for (let i = start; i <= end; i++) { + lines.push(i); + } + } else { + // Single line number + const lineNum = Number(trimmed); + if (!isNaN(lineNum)) { + lines.push(lineNum); + } + } + } + + return lines; +} + +export default function Highlight({ + language = 'text', + linenos = false, + hl_lines, + children +}: HighlightProps) { + const codeContent = extractCodeFromChildren(children); + const highlightLines = parseHighlightLines(hl_lines); + + // Docusaurus CodeBlock supports highlighting via the `highlight` prop + // It expects a string like "1,3,5" or ranges like "1-3,5" + // Convert array of line numbers to string format + let highlightString: string | undefined = undefined; + if (highlightLines.length > 0) { + // Group consecutive lines into ranges + const ranges: string[] = []; + let rangeStart = highlightLines[0]; + let rangeEnd = highlightLines[0]; + + for (let i = 1; i < highlightLines.length; i++) { + if (highlightLines[i] === rangeEnd + 1) { + rangeEnd = highlightLines[i]; + } else { + if (rangeStart === rangeEnd) { + ranges.push(rangeStart.toString()); + } else { + ranges.push(`${rangeStart}-${rangeEnd}`); + } + rangeStart = highlightLines[i]; + rangeEnd = highlightLines[i]; + } + } + + // Add the last range + if (rangeStart === rangeEnd) { + ranges.push(rangeStart.toString()); + } else { + ranges.push(`${rangeStart}-${rangeEnd}`); + } + + highlightString = ranges.join(','); + } + + return ( +
+ + {codeContent} + +
+ ); +} + diff --git a/docusaurus-docs/src/components/Highlight/styles.module.css b/docusaurus-docs/src/components/Highlight/styles.module.css new file mode 100644 index 00000000..cab16c75 --- /dev/null +++ b/docusaurus-docs/src/components/Highlight/styles.module.css @@ -0,0 +1,4 @@ +.highlight { + margin: 1rem 0; +} + diff --git a/docusaurus-docs/src/components/RunnableCodeBlock/index.tsx b/docusaurus-docs/src/components/RunnableCodeBlock/index.tsx new file mode 100644 index 00000000..4045ee2f --- /dev/null +++ b/docusaurus-docs/src/components/RunnableCodeBlock/index.tsx @@ -0,0 +1,212 @@ +import React, { ReactNode } from 'react'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import styles from './styles.module.css'; + +interface RunnableCodeBlockProps { + children: ReactNode; + vars?: string; +} + +// Helper function to extract code from MDX children +function extractCodeFromChildren(children: ReactNode): string { + if (typeof children === 'string') { + return children.trim(); + } + + let code = ''; + + React.Children.forEach(children, (child) => { + if (typeof child === 'string') { + code += child; + } else if (React.isValidElement(child)) { + // Check if it's a code element or has code in props + if (child.props && child.props.children) { + code += extractCodeFromChildren(child.props.children); + } else if (child.props && child.props.className && child.props.className.includes('language-')) { + // It's a code element with language class + code += extractCodeFromChildren(child.props.children); + } + } + }); + + return code.trim(); +} + +export default function RunnableCodeBlock({ children, vars }: RunnableCodeBlockProps) { + // Extract code content from children + const codeContent = extractCodeFromChildren(children); + + // Escape backticks and dollar signs for template literals + const escapeForTemplate = (str: string) => { + return str.replace(/`/g, '\\`').replace(/\$/g, '\\$'); + }; + + const escapedCode = escapeForTemplate(codeContent); + + return ( +
+ + + {codeContent} + + + +{`package main + +import ( + "context" + "encoding/json" + "fmt" + "log" + + "google.golang.org/grpc" + "github.com/dgraph-io/dgo/v230" + "github.com/dgraph-io/dgo/v230/protos/api" +) + +func main() { + conn, err := grpc.Dial("localhost:9080", grpc.WithInsecure()) + if err != nil { + log.Fatal(err) + } + defer conn.Close() + + dgraphClient := dgo.NewDgraphClient(api.NewDgraphClient(conn)) + ctx := context.Background() + + txn := dgraphClient.NewTxn() + defer txn.Discard(ctx) + + query := \`${escapedCode}\` + + resp, err := txn.Query(ctx, query) + if err != nil { + log.Fatal(err) + } + + var result map[string]interface{} + json.Unmarshal(resp.Json, &result) + fmt.Printf("%+v\\n", result) +}`} + + + + +{`import io.dgraph.DgraphClient; +import io.dgraph.DgraphGrpc; +import io.dgraph.DgraphProto; +import io.dgraph.Transaction; + +import java.util.Map; + +public class App { + public static void main(String[] args) { + ManagedChannel channel = ManagedChannelBuilder + .forAddress("localhost", 9080) + .usePlaintext() + .build(); + + DgraphGrpc.DgraphStub stub = DgraphGrpc.newStub(channel); + DgraphClient dgraphClient = new DgraphClient(stub); + + String query = "${escapedCode.replace(/"/g, '\\"')}"; + + Transaction txn = dgraphClient.newTransaction(); + try { + DgraphProto.Response response = txn.query(query); + System.out.println(response.getJson().toStringUtf8()); + } finally { + txn.discard(); + } + } +}`} + + + + +{`import grpc +from dgraph import DgraphClient, Txn + +def main(): + client_stub = DgraphClient("localhost:9080") + client = DgraphClient(client_stub) + + query = """${escapedCode}""" + + txn = client.txn() + try: + response = txn.query(query) + print(response.json) + finally: + txn.discard() + +if __name__ == "__main__": + main()`} + + + + +{`const dgraph = require("dgraph-js"); +const grpc = require("grpc"); + +async function main() { + const clientStub = new dgraph.DgraphClientStub( + "localhost:9080", + grpc.credentials.createInsecure() + ); + const dgraphClient = new dgraph.DgraphClient(clientStub); + + const query = \`${escapedCode}\`; + + const txn = dgraphClient.newTxn(); + try { + const res = await txn.query(query); + const json = res.getJson(); + console.log(JSON.stringify(JSON.parse(json), null, 2)); + } finally { + await txn.discard(); + } +} + +main().catch((e) => { + console.error(e); +});`} + + + + +{`const fetch = require("node-fetch"); + +async function main() { + const query = \`${escapedCode}\`; + + const response = await fetch("http://localhost:8080/query", { + method: "POST", + headers: { + "Content-Type": "application/dql" + }, + body: query + }); + + const result = await response.json(); + console.log(JSON.stringify(result, null, 2)); +} + +main().catch((e) => { + console.error(e); +});`} + + + + +{`curl -X POST http://localhost:8080/query \\ + -H "Content-Type: application/dql" \\ + -d '${codeContent.replace(/'/g, "'\\''")}'`} + + + +
+ ); +} diff --git a/docusaurus-docs/src/components/RunnableCodeBlock/styles.module.css b/docusaurus-docs/src/components/RunnableCodeBlock/styles.module.css new file mode 100644 index 00000000..99b59174 --- /dev/null +++ b/docusaurus-docs/src/components/RunnableCodeBlock/styles.module.css @@ -0,0 +1,16 @@ +.runnable { + margin: 1.5rem 0; +} + +.runnable :global(.tabs) { + margin-top: 0; +} + +.runnable :global(.tabs__item) { + padding: 0.5rem 1rem; +} + +.runnable :global(.tabs__content) { + padding-top: 1rem; +} + diff --git a/docusaurus-docs/static/images/deploy/bulk-loader.png b/docusaurus-docs/static/images/deploy/bulk-loader.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc72264431b358524af7f7f4c879643be259f4e GIT binary patch literal 39213 zcmeFZXH-;M5H1J^+JH(1i6S{?k(?w-mY~pNL{N|%m7JppNRo^qIf@sm=EvN{U41;g_t~LpSAF$WosQ7bP`ZLgg@=KGaYaR0{w@Xv zmL&XdjKG3B`j@mXV_?u@sL0FedSb3;;Cqscj)lq+7Ja!*_Tnu3&LUOmuyW!>jzO~k zMGoSE34~lk0W)ccBasF7B?}@18=*)zW_?PLO_V-X;M*=)EG$-q*4#E+Hn|0cIV~oc z>|JSTp0{(_^Xr0K(*&RzM=omSIgx4e_LQ+@(}skI~5v+lc8J5V4y;L{lFO=j@{OF7 zv?4WDT)5t72L6SRjdYks?d@-To7BW53iS8G8st9ru1F*epfL4zYL6rv>+-3wpFUoG z9UC8c(^)Y?%w(czE_8&T! zH31$MwyeKiZoA>MMIw9=IMHI>V-H`rkB21=RjR+AC`8(ka4(Z{wx}T@@jxzQkB6qh zLUP;XrY&-yL++7nZ`D)|Qi7AMYNbNw{lr`3Iw`cTn!Vylz=)o%xr;a3SR{F|YgBbE z&h-4@0m0lX6UH>E8%xy}QDN|Y;x*EaoO?MbYnnQ(P62eN^r-@iVNw*is%z9D^oZ0lV7Gd&N5}5yO?Uq;69B8ifMq zA5^;nbf`T47KTtE_P3A2CL?=DLsrVSMy{j)Ga{RvTUI7Uk)QERXj7F)Ln<8V|! zo=ki*sk<`o+p>`ogwSEDxnU@c(3SJ4ttKJ1w0zW~>G?3UaE^=n%NKHxe~PU6CfC1K zb4p4|rqHcdPq+B_#nMTpggdkb;=q4uo>yBmV-#QOa(tBLQN+f4iYrsQyx7g`&_}!W zQ8S?4=+L!fNrz`{wv&(H8EoK$PL!ik+f=30R4O61OZ~5v`vdt#Z7s3p^81AT_LceM zbI*h8Eq&?)1MK4%uTC>`;_BP6VoX~+3rUG0Kq-WBXFcEZ?g>%bF#C89_P1GI*wJLL z^g}cvP_y%?)S}#5_lh}A&^1#|Y7yRLeKW;DZh>gC3s`f^7}I#X4#F`Prx|pvNM*eK z#ZDnm9dyMM=6h&3`N2!J7E7@0h@4Wf0yE$j2qGl;R+?gveO%$itbXmom-wk)TSLoX z!@W!GzBgtg11RUbqb@T}_{(_06WV&y)L+ZicIgIbF0uXZrsvqK5K3exL*EEbm|Oh( zb|@S9pr|$9h4g=yA+6ov9nk*qo{RmUODRPCwOxFH zR}jI;pn;8zlR{LkQEE32U7xq*8+CoTD(nrLG;eElVF_m%uMe?=d~mJxB6gc9D2>UC z9o6S7d(r5~t4_Gn*n#o^*~mb8^&IK>%hM<$8j7s%k4X_>9D89K{bNCo&5asICQeP0 z`seLRwXE4Ly9YX^=&}a}*Ik>um|yuMUonY=I4?3-MXp;nX!OcLifkgYv%4l~q|&44 zO?3AXnfh-xv1JLF1?DbSeQP{BKV7^#E0&U!J)liP?vpA1l7To65mG3y(fsPL>Ecaw zvO7`U@1Ldey}Rbh6D^OKPfy4JyHS8$|7~`*a>iWOHGY+|IH9U6iRHn{6OHNkFX3U+ zCyKUTzc;WLwGXUFd)Y1L z71!=YUz?V!ic`3X7uNeES1To_bYCsV-atK%MN|1^4$k4N3CpHZWtJ}fI;F}dI+02% z#nqFxG|Nd8m$?FE20{3;j6c*b?VuEBM#6Q{4d?Ta8kgUyU~Ll@Yfis&c%hOs_2nJa zv;aFv`)W|N#?5tRfm*gP|7x2NoSqDx>7KDwm*5@ZWW3-qA4)orp`oFBs_^2(amAfZxtuO9nsG1m08YiO8)H9r7dsac8j92d4kous9?*}s+D&F2Z z9PGm=tMdCyL<=J2N25dB&*Fq`j4$idMtfO|Hm8~Eu93^$AL|a;Adxq~+q)BVR5FsC ztHs1oQuk;z{&x4BWSWO-Pn6!rlO}d+bh@=wER&lH7LJh2leE7pr1D8UVT$L|Aigs$ zI?%w8)JsNP^0pAGRb)vtwMmWLF|$j*U?dMkqH%F7k=VRBb%HBa(0TFZ4WsihTKrC_&W z#|?C9*Kf;Jrzj+t;d;L-HYYaDK4~5!qGMh9MHR`47-^q(trXE?>*KC*NWyoH>A!ku zG&e^qzfg}=Wki=S*saP?SeN5-k_z#U;*2R*8nXyP9?WzLK}2u{ENi{XK+p_hx~RUz z%7B4Lqi8Jq>k`uaV_onn$!oEL+UJj$%hHhU#iKv(B0h?YpK=FQe6ue~wTieeGWviw zk+qKC^XLPkaa@mva+1}IG3zL+Zs*g-scfH?1lnAht!gJFb8S4PS>7KFb04@+YD^D{ zxfQ3iEw3mLetK9>U#?hdnk2a2xX?j6%U%1=M z_46Zj%a)ECU3=}>wGkwX{l&(6nY|UIF0)hbR;q{}DCoCo=V*|L@lw+bg_A6{j}mZ9 zT&|bfc8=Puk7f$6Gv0HdB;(8rbXA9o{$1{+&UeaOYUGhSx1VM5(V(nu{lxne^3Y>q z|D&Nw?r!6Vhzh;IW}~>30Z&5d`zddpkEO`qsMs{eLPMR0wpz6kc-DeN@jsZ0*JhM< zTY~1id!?`2EuxXiJq`uG^apOeZq$k?tKPY-do+zQDNLkHc)_W+vVzJ_C32=;aOx+D zU#PkMr6-=4SPb{mXl&y*ZiPE4?_^TAT%|5atC-G7eQ3xE@-TTw8tGD0t}dI_? zi@l*8Aty1L8_c(Cd1{dG@TGFfa^oiswZup6s5k9LMxldV5zYl)m!I;yJ{CQEJnbx* z9LGVNA61;yYqRVfRYA!T5nM>T!sfOu7Q$y>vX0_Z6sXE}xv@g=@PF_aXRcA|PVo^T z|M}ks`*{C@-*D+X{$M%sq}7PWTWoBXodR`0fB54c&{Ns-wmizx-K9=93gg`=g zn!InZE#Fcy%Q@#6L7?=%82@)i&s1gRj7YbqB@cxZ?b;Ez+$OC5%O$k~X81MXisVbi z{|5qWN+Qnw4IGB3IbAxRKK;S;Bj*2K@Ly!`|4aD)6DocD&7lQ1q|MXBd$ajuv(mD2 zxVLj-W39a9C(aFPVvlLJWRr61Kw|Ge84G?ltnW@H||wK9@_gw<`R zr`Jx%T!#}-0nu>Cm75o_{sz6-0RRIphC5>Z4X+7>0W4PJbjbV@YYPFG9>O5v`6u{o zL&tH#U#=nkhSB~P0XS39x8WfCF%bST6M)LwLa8nUz&|h$gAgq#T#&E(ju#;LZ2wb7 zhw$Fs%6R!~we5IaJYpU@zy_k7$e*i9#+y_z4|f*2ubO5}Oic9j^b{}#2Fv;f0mh-> zqLO=i=feQD&meb^)(`=9n>vhdKYxuk5WXb}j?Izv=Yct(l-md{!RR7dOu-1O0Jy>; zYICQ9Rc;rgC^Mr&iQL+K?G#a0PQ0k+FOQS}%C@{>czqGRppp-|LjQplp0fD`FD_IK z1`v=F!3gLg@wZoKz8Fq#2Sb_PjtP+Q7llSYC)xzpV1WDgh_SJ;TA>lnz-37hfVSmV|6OTbC;)Py@H#Eh*r^svlO4#v*M(0d(^{=)_Mq$4F_e*qYoK^4!P{(}YF zA*Z;MGX$$sxTSq~Apilpu7DvH8choD^G%nf5n*;52uU%;vE3aS*W5#F2VmgB74ZwR zHVXJ`)+P3mzX^>Y5d9h-X0L#3kK^Tq<#`(DGcBfJxc1(ncpr$7kKQCb9&BnVXlnCk zkQy8K4ODxi0Dbr`7&0VGP!SVT5xQM#$6s1!fN<%aB;gf=7F^{9U&%l(uKhFW#$&<) z2$J>iFX+N44{Ei8q1d-vSUFcYp8AqJZj34eqMFkBm zgWz-1*!~2_V8e76FlcWpMgsDrc9G*XEYacO@r-fEu|t<9A>#i)r|Vvi>@7C!K>L@Jb9c74luaf>i=i zuuz~Rl=p-o+dfjh_Q!Y)jiTp6T--rTDvRmDFJiO7m3CXG#uQKk^AD#9Zz8_H!iz#K zaQ=ZQ&wKd98NWmeMkOciZ32cX{s|`Hmp_Q*l7c+m1K6~#_&{1jMGD+$ZG1@ zCq0v)$AXcF{GZ=ogiRx3-?>JCZ383Z60sOn0_2L?Ad~Z^mkER`Y^Ic7A@IqYC{L%2 zR`t=v*cynPhxDBmdR0NpCP`!}M=+P2&p4&@AK2lJMk0P|DEd@VN&mixsSneu%)N|Y zkboiQ=AyM_{I#Kx;&z*811x+(k3jwc)=RizGr!Gh50Y`JvJa=iehdpAZ3`gtg(+`0 zG^5d$^EV=ht_`iT{(%r@UtKWVN3_Ww0Iv%#0Ot>@c%aRJ0~Vy z2YWrN;wEZqhNZ}+BDb~lHSaaM-1V;qVZ4u|q*?W|HibSuU0SnFNSdni3?VJ45>ruo zy{f5ZBv)kQF}PXv+AEZvMcc}qFcT;1p&Qj?4w7t@H14=UTqsIdQUlfh(}aJ3Fp`3H z&`MP(40k?d=zHJvTWXHG*Gm#E>C4g=fpl|Ge`HzxrkyrS9gOZcm`=`y+1Hnom>5{*rk=1!oOW@W%qRcxrD3`UE~Z z8UI*NJMR(>OHt$5gS}bGC$_G|$kVmpnloN~V;2!Fzf2#;K-F57tjIL?)v-T1F-z&! zo7f$Vc&6h^-ivWRQM9s9lgk|1|C8S>QgeXSD_?cbWT|x@pK3(#2B~Fz%_D+@d zZmc1u+k0NAEu@uKun*Bj|D0+haV{o7Y2)M8(X+wnn<%{lvAK}^gzY$r!DkrmS{f*xm-|dIZxeFY9mLdF1^pVq{_~j25Mk!h)MV zesN&cD)m*Q&ts>|IC`$Hu5qaJisYUUFU2@KF2vdzZaJ8C-@l*zmuI_Wv_qNy-c?<|MGxil)7JPKeT#-sn$NjPGaf7k0U>K zq^gnoVN{1pM#Yrf%o8o^j!ve+zI~Y`q|^3xWem2C`k6#SO{IJ-*KYf~0(q}q+Qd~jIC66ufnob)KYcnnqT?U@lq3s1j?-^51DU2BIbMC zd!1}+Eg0LJH@@Rj_)Vq0qEFXqxeSt{e2iG5NxC~D=I8UCj_)Z*pBdyLYew%5U2YP) zZC}8INZTz@P3C-=JON_uBI58M-X~6VjPI@&(&{kIzb!&@j`f$XZ$LjIM334?dX6bzBa9VY@_Y`Nzr@4B- zt9g{o#J=FY&0R~2;V(Z)9;!bzdVRmJ`RugxPJ#fx;tT8F=hzp3P@dqTcpKTSquy^r zd(jI5{9M;k-2$CFRF%9!PM2Fkxm*H^Q>Hsnuv@*nZukhd-^tY)1p@HbzrTpRQ7cd8 zskWZ^sZ-1IhM+(UxqB_$_C=3hS-FQ_uUE#e*p97C+U0|l%UdT%b<24Y=AzI2A8V?0 zZ$!sNtTAaXss6CYdx|_=5`{HSpxLboEGJYM>P@b!igmZQ-lC0S99rS~)fURfVs zj`#VPjoiOm|KW&^fBJfZtjTV)B3~J&P$BU~#0Sasu)Rpv96kg3KHW4vZY49bif|^- z38od7N9()#Cxc0DnXDx*_giYLMyfN!rz4Ecx074weDENZFy3gCrE7m!~W#o=b#w@7_96NAAhX1%7h>DnywFrA5z*GY2f zS~k9Lkjy8rCJdpOE*DHQQni(8r*=t9jtau*!;3iYJ&CVeqN8(H{56%@pSfEKY{TrV znA=iISyr7FYxJ)?WWV&E5#o6Zi+NN;B6Hb=WuhjA(MjSgCKpWthi@gM)u5mB`ai>` z%5RWZ$E>Q!dfTaa=jv8{`}v!Onm6MOVNKFK{eYV9!-7yR_%JMld1s`bgP4h{u?Tx4p;L^b?1_VC|M4wbrHFP)Vi=+3U0bsO`yFyT+p`2xF>58J z^-+S!d!&(oM^Ee(ksk(2ZHh(qyvwQef%pPiX7%X%dGc8CYFh|L!)dO?+hYNI_kz{47Sm_iP=*}o3r`p8jku%TIP&;wf4UX>aF{2}xNC81=!oz2 zJk)w<`#F(CFSK!jxu8EaeG1PbA!;|~=9AF-KVI1n8NR(mbEEI5Em*rUe0lmo6)jD>)!aGD7*38VXG zN(bYWOuA;d44M%(7M3zMBO@aq%}NlV8n{JPZl=_bz0ILG@jyJYXUQte*qPO-NhMX@#{Y6LJD;orPRnh{^~ z^=G<)v>sdkC~5Ne&n<-x_C%}4Dv`QX1P-^xe+J&%M~5xtEL_i*JGLWRs!*OkgUV?* z%EZpcN8@9bbUrOTyZpNpIl9|AP-s+FYyWVDV{zu^^gB)F@Q7r;6^VvB*Q_f@gii;r zCEJVoy;faEg)NjK`*rvSF#2~(uPqrUZxD!1zoTZw#epnM&eupr!$-L?gX#rSc7h8C zva&+{qDR~R)dFB$5yd)?t9A%8NHlV}>70M}MP99_wM#O!(UR9&6*+^r-7wYk;k&y| z{hA`;zuu_tld$+S%cqo;I;OnrerGXGrhh=HRl`t7k92S|$#s2RCMoOb{WaJGNzPI+3+hRHU(J7X{L{Px@V^W(J9trvLMrTXYcV=1==tbO#|s-KQc zr=_BF?+AS~`})ZFtoEB-H89wZ`&hX`RoYU3xxSz0Z1pKXsr6~ZZ#y3YP2!P-JuKHq#1 zE9?6-3Ke1t%Xyu|W4Al9cIloG?S^+HjdM5#L?s)W(ssv-3bGuI z+McwC>d`yp-cRKr&WmcN?6FvS!qn!a&a2JTtnkE% z`qc1=sEJFD>$7&j*b1qN+)?P3TPnkz`Mrhy;y^5Ol&;im9u56e+Wp8y0qvq)A_AwR zHQeW7N0V1}4pR>8<;>%ErH3wGq?<1nWPnIW2%_7;Lj~kkvHLUoucPfFl3w?WQ4gNY zM;xQvSmxSC4m3p4B$jqiTVRdpPP%wrG-zC#yv8pE%oqmr#qh7FCl9c_w;p+RkAg!o zX1r7%`FPb!`+T?i!a4E7%xCwX3TwNwX!~wfb|*_8))Yl@M=oAXi9sz^T+?53-jxBlefZHubU$NU zKbTJ=O>5yQLzQv6)+QMD9z7v&4W-I)OTX&$D4vWTY&xzBn9Mfqb`&Pi^kAdfb1ZJ? z650SFEWRONvvdPAiy$iUWo|6Q(8rJI+9`plsXJ88kcKesPa(4aF0edgghUVwoWh;; zaw3K|z|=$uzjVaLiem)!faX~=4G>+W6^xz!^fJ=$yi>KgxN2xz!hHqn0_F}}Ef}=M z@4{y~?+s!M%s?pJ;SFbiK5QJqcNZavP3~tK)whafHf{%AB>YYXcMcwhhO-05p{*G9 zoc;s4_GJGHRve!Opf?eV%NSUF@E!laHO7iin9a>R8G3pdG(jUK{(FH2x-Z=c^_R_- z0@&rlVl&4LcN|osKIKNhDqj`R?$yiH=K4}#U`T-t+RlmW3IKpcuA;?v0aF;BTUjp_ z9`g`}d==0}i;xGp2Tf``3`S!rY`Twu7#Xk@*WqB^By{6O83X}#7d$8~2b($*{lGUb zlo`=nOK!uNc9NtkXAjSlkm}CgTr$Ao)%E<#u#%rjc|-Hb~|PY~@#piVj=2 zW0FkKtpNO+{(D_2FJf%W={9=|ED500=4FZEuneHZyEkT+u(*JkvT$-Dq?$%Ag(O6p zFdPFqVP{)*DT5poA|*O-FsWb-XqEc67=!RS;srd20TY+S8z{tiRpvM)UDyEyx1-nG zUNE8_&CyOg2qD=@;cheZ^>&fvL^uLr7^Sl)SCIqH4e20glJzHpF-zDk1R~I(lBb9z zDWTa*Xr$ff*pH@&-A6AB`C~A{)t!mKh%{(CRYIM6F~AV6svXTjX5sTs8SlF&Vzdge z3k|yhcV#Y(fk}tn{OoY$04~@fgS!?c!QRv z0^N^5j2L*HP+Kr(4Z3lYTsQ%?GFqDc*d)#92j<0hG5*V~3?)gpa(?A_?(Kz^X74)& zcJy4D>$AzQMbM>4h0Zr72GP>|5jI2r0T0I1e~BqOsQmpyz=e&k)wW+hSpVpVk?QQ} z>axjJ8i|g+oMk+Sz@jH4f|Z1ub!PVwr|_A#HEcDn{n~qE^S!8u!}RC#OV_=B4d&dw zvL`1F2I>$twrzlhF*HafOUlQ6eS&CSd2(`6K|$e$n5+jB(>;X-%Zs=UTnvNnta|Y& zc(krAZ`96aO8JN_ZZ5-U9|&Q4Zkx>s?_fW_F711MdY}_!*_*^2bn!~=7)2AL53T{< zZ9&SLu9WftD%7@rk7!<^{#2-wf3|gg#yeqBaS4;~KiRzuCrXig=I-n3tMw7;-+uO` z3d*_#@c$1v28HMk73LqMPSyqEKT01hB$)c0-c+$nfz(5A7RcgHAHM}Q!gck_N>>~s z<|TcOM5-8;Y|6_p4FegABChF$lq%PF;id76Qa{bet&u~v8=?MzJ>WqlN~pQRDnD z3dBHEp!HL4QHC#?#Pet|`CiF=ZR?abZ{Fmeo<7L7FF4Ft6LwOU->pLQ!2=L8{#5l{iAFof(D z#ibD&q4GMZD(ivfaDrZh465!hL$2=z`dh?{^XX}n8)T5~nRww0w+l=UWVf4E(4$TZomL6-Mfs3yWVS!{0;uFLazo6D?K4(?Dg4x z=jJ-lP6xWmqH---l;Zz2Y7<0;K7VgcR5~z3vVkr~4!0#}e#^I)MbR5Cc-*)jh|vTO z{k^l0QyU7S;jGNhZ9aclhi1-0I242wrBOI5fvyU!v!A|eLoF3qUI=Sejo;sAc5SIv zU}GA>A-8GmvS!6}``dk&0;9eXTxgWfO>+bJ2Y;VwF=-#=c!=iSmsW@4sa5`Vx0#&% z4#_Ck3>JPJrUO zQe^GbMGtaht-a4uhDS$7M-8Z&*Y3~SnWwh9KR>4lJsK`CsA5rnHT86@^z*Bmwlj@h z_~ZFjy-ARI9G~`>rR@n9+J6FKF4iwKtg%~(XfddIsGcVLWcZDWnwr|kTXo6pPL!0B zlT)c-HQvWqm$M(&&j)RUh^CVHgb;&rKlZa<oZUBTQdC}rI4ihpIVo+**KkOK45wzs#3 zeKmcyakEtap-|0)U5&?#m-XSV zIWYOX0|Q{NPPbalH73uy6Ikz+8YX6BOha??kD=Tqjfb%MmrbKv1w%I3$i2$!5EoF) zbWVf13lEiR%S@V%f2KL?Z_S?9FJ*Faa=w-#y%0k!+k1T$hq~ z*q3s4deXB0)mHk?uM2RGR!qog{u9!n$ql9jTa(`|?HWZM?MUo|b~VZV8<>1KNPKdx z<)PP|(&tA5ocGH3GR~8@ky* zg)iPtwx^8gxN$pFUgG0)gNOBl2U-ZrpDeKTA?H-q3p>>NgEGlo^jpjCc9H^(!@oMpIQ)lnUc5%Y4so!G4}Id)^7_6%qyDy z*RIw7INiTpWo298>|-hJjc7_s9)1tP{M_a+2&cuN%lzeh=$*` zsvna+$bBg-Z$2&pTl9BGk6E8u7}n%UGlfztT}FEP`ZJ_F@>0E&YzP$Y;!#8!pta%a za0PP(p_}db*{R2rQ)g??rO9|rbsB-x5;z1mZLge(Kigjy-)gLC{T%nr5ztI5t+;T( z_WymgD0{c%!GI^V;c%+JGS==d4>8hP#VGE64azzrnh)Q1KxunZ-QC@3 z-@s9L657BlBxw4c?v3A2lq)^SlzevaD$VlI6*W8t`5gRets(sXAmR1&kpiSWjm}#& zulWd8u>Wa}!(KmPZV3noL@U0w*1|(Ud0?Ju^1G@kK|w(%8ees4|J?@A5pGnyd#8~h zwn!O;p5#2`Rs8?ry1=}+!7`ZS9{`$`9nnO1A=J0*9|&#C`kp)iKnXA;L(p0yBcNa< z>6^-Jgg3`w!&Q zMITnLr3`X=v^}iy>Uqh|&(9BD^kPteB3{e+*$F^oSgYr(&%x)kTU#A5)O#6Wxk!75 zEWfiOu#Mub%N1s=flwCn<$9pAs+ZSMTL^xG+nTW51YeWM)(8O(QSM;-(x44?0J?fY zAxZj@qP0ftRQI=yebA&kOz~g7d;y;W?#%w{`;|`-B(1rkj^96oUZFPeJz7)(2Q%|* z3(nymcst}&1lPEBsvq=szh8Xo_xhyEV74qMxpDR5(b`#G+p5VwmyP{&tgIH%C&zu` zD;%;n`T4BO%uT2J-@*v4mpQCF%AuDdMR|sP#6nbrflZdIHhaXRwwA=YQB+g}UaPIG zEkE;Vkwv#%!ir&s74UCJYTa=q&3^QT^Y(l@8byFt27AlJ#r0Tl+%I}P@ul)oW9ne{tAg|Md5Zc?DyP|~XBWdsQ;ys)#dxX7N^ z1A>BB(rDDW^*+c z!#}))i3gsWG+W^w#j<|I2z!Y2c{W-S!K@U~SXi=v*l|KQsbX@FkXD%5iW7`Nn_(jw z_uz}u@Fs|*raURV7L<{M7~g<6oZOZ315e=R|7tsbeuuXKmdP)9AcOm?A*htPmz*?} zjU41QbY~L5#6*G5TW07+N~0S&c-S*_{PPwHceM8HS}2H`n&u-#U<1C!>tpNThJK}N z=Xmr!H87{jQihVKODK3%WLhJ_KNpIRI8kew49{Q&QJ?IwNC*+v0hJ!!cX4Gx-+JA^ z)AsY9H!W0=Cg|awh?CF+V9>(SU9}df3DAwk#YN(O{6pc8{|rYjm~YGZ+Ewg7VAYP6 zf=aPn@lhe=nEwS{W|n;D2T>oWej;s$=V%*wI~Stoy|7PuKR_l07T1RTs^Oyy+?twx zMkM-gsgzhkWVU_kTfBKC%JoE+&swrZc4~4(xrf1=H`7e0Schq@vVT53IXD0_pN(JC z^2A~2O^1s9H$>aRSG?-skC;---D9n0xnj583W;Jpr}^M7XGV&`Mqs7M(i6ip;Tg)r;d~SV&S%q@b;*L&OeG*(fWmhUxi1Kpn zHId-xFEr1=(Io6&k_c+@SINO2aDVvbBLS$0@0Yk%E{3;A*7x%wmHYQY#F$ykiz4U| zYtBw;>3!enqrGsqe?-gYnNWRWlTvl4M!MbpVG*zU(~PH?zX-X1YBC$$n?Q%YkWL405 zyLNfz^W4A1$oldYS8DAyMtYPAFY7nlV3jhDkE2KA``2gnDnD20y7@KMM!u3bW7KEa zfiyXX|GHrDh=oP`C>c?U#`4v(V3kR34gGnE>33Px_pefLinSx0qd1=%#J2E8sOpR3 ze0GaVaQ+48*_(ooO%)9^?;`d?iR`C265HFug_P23tC={BV-0m*RU4EoeII#wk<*+P zULSFmRN9pI-3bD1->|e03)lO0|Cdpy_+gWnO1kpKQ?=O?>e;T{2%^PBrcW^(?s$ea zu&RlZ5ZMR+ken$$7~$OyN=nLTK1bT)JcUt@xIo(6#zt@O4w%ol4c;w$zBPN_Jo%10)wi@HsiL+*b;eBeMQi>Y@QygY`frz_MF) zqR!M1#{nXJo81ux2Je3!9+1J8LY=6nsK4DsMMc5r7a8mxI6Qp#6A;25gJ7R;G1Rw? z_cy55D+Wu=B3d&uKr_}$@S}3^jBB6MNgnqJ4pgu)2eNT;K3mC4Ru26=7j`{fRFH8c zhP>)%cgeQ;tC=ypmB@VYnL8S)R`GB}u1?jv(2BW=Q1&gsHl<5=z4N%rsbAs=prsMX z(C}yQHi2=AZ-)0}h*wW`dU?CQ2|lj39WN^>;ljHO)ps(tDag^!s$eU@Uje_!ZTOzP z+-T1&iauP_<>w3Oc5_nMTKnmqmRl}H%SoDCHvh8H zNrHko1mD_k3IDY3|@J#C5p>d2#%@7QHIUXLiJw4uIXJ>y2 zi(-3yTS*^nvWsX+u7)o3}ft(Lpc(@7pw2QDh7z5?iTU;@4`50yYV?cIu@SAfyB!c7uu~OJ_f`pM zkGGmFJDcq<0 z`dKY@_2vI5QW4`jA6_)Am4YA;a63=}PAB^tnM@G3HaO0;0TTffh?Jm#R%*9ZARlWw_=F(u>!I^wq{Iy z_7Vr|Aj-%eS;51@3k4Badge7`P)n1Ij)E!SUxa7L`m)OrZO3Zj6>cF|ob!w~kump91nqM#rq-(HHh;rU`;r zw}A>EsD5cmpT4A3apc0wyE_SC(Ba`BC>9Qx*#8s=r+!#fy>}bMoOlO};dCT(Lig{d zlGgDL46=cS<7Q*CnW}Tr(<3_?{3mnv87-BvtJW69jK)%KYruA`%(h6&5>{4LCMG6= z9aWQF@1*o@y#&EwIYbjp=(wioU`Dn1mTQy*=lyr7fLlM0&fT?}8D30zapB82$k3}SX`;amjLzg0_pXV!|vv)J+OerGf#BXPu(&LdKC z^8OTlMl=7xQvYzX54ZqtG+sui%7Qi&LLhPB(p4kvT@`h8T2bc(PW9yrJ!{_NL%`7SS-GY|nxsPF*uY@90#Yx~d1x#UP%>~)q zLRiT>#y#ELUXy#2Qr@1R(^I_`m35#mn~T72(n&t8OWyXw!v?)ItbV))W?vd!+~3@U zEzFW<*#2>cCpk;~smMq>0#vRy(nI;L3%_&gjjM;j@ zjA=;EoB_pCYdgLPB=2S=o%gTSEZ^gZ6{orD*bJa=WCmvv*H1qZNPC|hElH}Nd5YbG zGl*~;Klj`Y{VE5fLJP#=U}L3r`vmC-HpeeZ6vI1@XXs2p`CG1@0^nRAqI10T-tXLZ z>w1c5v$q$}Qc)I*W^5dZcS`k1u($uE05&h59j}!)Y@(uqCg~p#(!=lyNu=w6%zQ3C z`+#Nc9Z@aSFV^K4ScS9M@tk(epdAYb3(V zpMg<+x|n#cF+(j=!fUQAWQP0x#sBh(C8{}an1QLA#3UpHbP~%Oms%)(s9)&)gHF6E(HgvL2ikyDGt-DQ8*E>eh*MibB>)U=?#~T4 zy`%^l5yxyWmzmGS-Pe~#@?)(>n|@7L#zIJ3tHG!*>)!ynIaNwa&Di3+cn7Tfn!Nk+ zU``m_(*lhj;AX&w>E#m@lOm?vzdcFjHQjgh-k-FFTpP(i(X+YDhAr?rt{I9Yffz~< zb&42@B!x% z|I3cu*P18Dr%zGn6x#>%ixJPspSzg@CfN_6Fe$j6WUUb|!Na4#PCIo}DwBP>vx0DRMb+%aMhSNILf>-W(g0d=?|qx*#>K@Y zkIMU-82y*ZokH}P@hLOKhg#4|c>YQ@^_?6XQ;exNx%r7@c|RrPTEnzS%eQ!DRe*b| zwGGHswf1i>D8Ir_fM7d*H`5cXqv$&Y!v%Se(0Smu3O~--*r2meC`?EVB)iiouPnq@51{?EV97}`$@a)f#PQJzywq?jAz4bdkyYhq?G5=hAv(9rn z_xc4p22Hb$Xv&a~5UGt8uu801-or~Qf%JTH`nMkp_8Wp)j3tF`1dN`ml!_5)rV3cW z4^+5OHQn=Rre1sEZ?%JcM^zPgNa}ZfKU1xR?WZON$6}?9mjM#k+Hk@${!hSzd&uQ> zI{T#{0SUGX@R$Ldr!R=Z^rXQbt6-8Lle1egX6kveQ4308(n8Bk|3MB$CnpcNaKi`9 zIYTZZOQw5Dq;=QM7vt{4m%(CZ`+Ix&{3U|&_V$}Qi@j??7G&7>A*0>img`9W2K>nS zY|E@>HaHk6arctz7Xs-4uDKunGCvodxRdz-vf<<9rdyrO|5)x{mcPE}XhLSKI~G$o z0D~H|c|r^4dAp2a0(c^zBfm>mD$#i@K<4|GLs01gE*F?4kc;m+Am@*e44a9?lqJM0 z-#p%WUP@00uLG9y$^86Ac%_MBA%iv58fRO)apsepsc_n7xtzh4>v75t1XBNedr_F- zM=*hh6%8Q}e`Io4KNzt_$2qz4h&b=}fVO9VIL+|8H$g=j;9veJZV0-QQ&3QRspGpC z;0S#}5`>pJcLZm%ftIqSDc`-_G(%UR79#^hVaw@0^4td!4I25o4lYn40T}tDwpE`n z{GT`JT%4zXZ};6By@z?5)eDo4k#K4JCmT@$lK45s_MFy;3eZ9eSN}{#1jwzIvCnY3Qg*6 zv6_NN0N81vg-aXsgiy0o%6DOD!BHSpt$aKI_Y`>10SMUcbi~t#Z~y3oAR+nhT$` zCEEB7K1LP#0%_W}VDtRWyah71Prd-KW064b_*~zdHYkPf_YauyxM;Tc{Oq7bg$nT2 zDL@>SN0$Y6upuK2g&KPC`@m?Qpab5HLr``2$s-0!TtT>$ zHEQ(aKk|lbKrJ}joqfoYrU+Q!c|E%y&-4rM4FRP<@Ed+vLP$KVOjfaaodgC3LJ~c$ zHjEiDh{j92nrEIT{{SH>T`36Wx6m2j=3aRndMj^EL4Y{iLS|A_cH>1$rQp?y(EgqwLg->Dz zaJOeCt%s+6H`klIJctY8Dub{5Hj-j;VyvvJ1w4E#D*k^s zJ?O#!-}*rQN3!?k+jTrpWKCB9XXQrjOiM>eKK|cr;Mqr_HYkk0JLKG&u=m(4h(!QR#fCoqmaLyk? zui)2EtalSm{PWvFUH6}Udy%d&)6fgC?6+#$CBS8bX7KuG)T1_P~~7xEyA z9mMdfJ`AuQ;TT?{rvTc-T$i;f*iR2y&V9ZITmq_yFu3~xafCdnSS~I9xioYPWmmQmY(HQMtK}dIl2){JG zoVk6OPT~;4y5IJ#0*FBxGYWYw*MQPtRTN4QFl2TFF!2JMI@w4Lf*mle*VF`zim9$ zS~IRWt})Jvy4WD6q&Kh^FZ;wN6<_$Hu;czO4y$`)fVh^*5bD)u)}j>8t;B zr=`bIY*>4M6s^6ve_ii;&_@Sj0P~uVL}R)mG$6noCmxLck_~y1NUH?HnR54dF=lX| zx{&YZ%Yy*`HodfJ5D;Bplp2#tF!N=6$?GI~It#-OJTt11BAt(Y|EEr~mdGcRLo6*V z1^9*9YI`E8-8A`;DAb%>75AI3_yGEnv4D725{<17+5pBzepeaBFE|vHaInJgGlm}VKgSmRRC!dpP^R4Vj6wBUh<%=+8x*8#1vB=f%HKO~0nZ6B1F6cQg)h~#0e z{c)}T1b`Sw^aet=o@eakJ!StuKfefoB6PvUvyDai^!8_sJ|F&#z&wBV*icn&=#t@> zLSd%L6sN=&fy(+NYCmLYN)g41KIScQk-*p8fG-kq6#u&OTz7KRJh*xm!&zu!XiXP% zPyX;!2-q=Urc9 zMNkhoTV5U|o;Jv$fZ)z`fAZ``dTLHqt;wufHc&oM^II!YUBi54O-#RWY}>WzcwB)E zARaG@qRJb5MK??tH30RBpUCs>*z!sWR9e8>ex;A+3BZoh2AID1eUwLeDR8uGg`!2N zu8|78xoK9&P>5S?vU-j+)-@n-6_3Lpgh!5m)f^2!LAm4uCA{sp)Iu1LO4$26hb$3psX+%&!0y;lGOm`zhEE%@#x=Pq=QL$b zHiA9wdYQN75dn|mC2Z#FC`PO@kAZguQg}4s7R&uUCg$x=K?`WWg(7aJgt^z1LJ*u(kRqy7ly|6Zh%m#nSap3C!7SiT^hFLZ)uM zMRya>1m${dEwx_rEqP1K#k$rTacPzgzS=oS%6>~l2oF$$PTf3*ek8tb+3Esqhf{Dv z=BThth-m|j!!kQ-Xc)Cv@m zDtad}R>p(db;Cw`Zn3<16!3Bzz;T!X1Aebf7*WO(-9>>>PnPZV1+)lI@bU*NR8>{o z+;~|Q|20rkZw=;ndvVl~y5I9;Gb;6Smp9M{Mx1YD@b+@G$v^Q1mdo9bYQgjprA$2fHh()m>@ZFLD4!gNp7tF1456B? zU;J;0#g09>qi1w|aOS%bOgLR-c!NkeBYlR^8dhAE(e+L5(db0OBEn}o8<(6cHJp5t z;ALp2-_Uy;gfDsn4Cu&wl1r~*cNb-`WYJP)IkDRtF8d$YV~1vzzW9~;|57*Qg?=gI z_@BP(o{de9&cqDKCP-*y+jLF>&S3#`MIwBvmIk0cNMcZzb^VY&No+iKX>5`{<}!O+ z{}nCYEkr#2-Jx$+P7)K5V;nq>fl^P&#N*Fod3h8A^nW8B_NWi4HBeQh zz(N(@S1Eq?Un>A;N-Fr0dh)2fM`LTclX@V0FCliho~FWQ4( zs!1T3x8tbNU~t0UREumepxU5KV&lu`cR9%I|I(T&Z;e1yb5p=t>a5snJFHbRe*O#! zL=xj4EaPs>&9O6VbSeaR74sa;_jb!2h5&Nf|3<&|<=bNS8Ih9Y3(fy>yIKdB#`ih9 z*)5P0u1zn!3fOzPi*^OL+7$p~NF2@i;@OlMw&lvbO$L;PzvWm_`PkQP)aRiQYiLt> z4;ZnOc--yGboqKaJ-R(>rLL2ZZlm0tZE`KAiy0*}^1C_)IY!9NokzV`XWQ>bLJCEx z`%A7AZ!VQK(bfV1&G*rlhf~_mFdy>AHTygnfC-X}-+}zCZe5#h_GDswzW8_F$x*wy zCORRiEo3)?8yHfp&aPX}YI+UzyI^?1cf14Ucy>dd!`*cfDiVu2hfft{W!3<{M|*kx z1tdO=$A&=o^D+(At@SOeSJx6*>g(HOVEUd2bxRr<90ULlliL^T>-W`FTi%3XC4vR| z^pD?^vv{mR(1RLLYzlP~DX<7L#2Z}+B`er5At*&_HhzNd?NwN5gY2{B%J%hB7~gVW zjL5a;HiqdINM3FMYSh)r`o)aL&a^EeD?|5RdwpFJKCfB7Yh-^m_mLrJV_q*c`|8O4 z`2@@qzPl}_yw&mYhh33`uwUP+6=oW05-R0a%G0r{ZIo2tm#@^XOfh4GLy&QEnGODz z8`r_P3~2N-_Z4K%&`=`49z zOaDMQncVz0tOSuX6clZ-x9XJODlNi>DGAM}DtR?Ptw~9E0oBA9h3zM30U9;@QuMl} zMN*&A_y_(0<95r6hIuqO_M8Na+;@Hl4HdX9ZPnrrB>uqs{FP{yjd}J4$LTH$!kK`n z8g9d16``|jg_FIN_s$*BuqOiR<!w(hkwbv&&IC3vbyQGGMP|ZiJ%7VneSVLGO!#;s=mA$f+eieYeQ*Fo!z! z;ZxxjU7O|osGfULlw+ytcjyO%80IlO)G&jWaQ6B4^k#wOFo_lZIrU^@)ftfXF&Q%C z-vf}sC+|Xs+WrDG%<|43@F|3L$c}#f`a%THqKPHd%IpmYh(jwK6CPfA{GOgWdc`~6 za+W6) z%=QEIhR^N@RbYy^v5UKx7}R~U%w5~j8u|sCj5Vlthe)!o7vZ%0F85`g#Gd#F91A3R zSk!Q`u!`uG8OS*Y+`8?5YXWvDMcjLDu0av-G+Q7!d_OI7Dqyj3Grc$4PvmJ9|JY}r zi_KfQpv;q^NBdowwv!L#)MmX0KXY&KOrx?^4LmV+@M({qg-u7yZj*O zyu;7f3oc?}kp5+*CCfWzOWD+)pJZ)2!Ex zL3XSUI+4Q@eqqvf|JF?NUlX3k*3QR=t|t-6YAX!_hXm)2Ppl{2iUk6DA>Pj|OGRsh zhrx-ICIjv*ri7ynl25>LfN1=FcjgfLGn1o?g5jr2%a6p|(k87C#WED@zNv_{Ujy>~ z$nzJ4Xub(9F4DK+M*KsX_PgocNs^NcMscN_S#Lc`Zt$P`LVE~9$~NDIa)bp%MO)1= zucZlL*{yE@C$Klwzpegs|~USm$DzF^znpdo4Sf;Df2Mqg+I&7AxY%KJAxv9J@& z09Sp7SZL6Se6&QBDxg~blo<1?BEHtAtsZK#ri{lJRzzRc+D~`OAKT(*9yd*Set(g` z_4(qS3~TC^i@?&?(f%8I+;D2@L8j)3Qzf%f+1&5l*%~OnAa_-JZd#uanOb6MC9Ybe zk;SZkI$Ae-&Qqz;HxV45F;ggBPn*M%QhfH;OkA4md@lk$vJNe4ibf=9e>zVp zsKYpog222i+T|JbQPk;QXsQAIoGQP=v#M--Je(n#{E)!#qa^8kVws}i={DLUjBOxb zj4cdhrKI-%wxMM+%aJSMM5sYnLJhyfYL?RTy4}{gmTN{j{KSrm%u24wmcJ(NW^Ip3 zqk#l&JscL4^9aGtMzVF5KCxXWs^n)7VO1?Ms$^s3AR18o8R%QJp+>fN_$b&a;YoAz zNsd+#-cugcSHCys00aSzX3#IBg~vB}@43cPn63czf}lWiVfxFK+ZJ|Y-Or~+#f=LU z%BdS$!qSdFx`A>AYoXeOIx{gYdewh3S^fs^#@_?Aub&$9a{$JjayPeH=Oerv=ao zrq@#2Cy$V4WK`9Qs%N05Jb&>aVr<&FGh)nhS*o;>e$xU&kLiQ;cf${b(v=Z<7qQcU z4)kJG2(P!V*GKXmAFgS&LHg^UEclW(4PExbsKY2y|FX)Y^2#b`2eu9;B)YO1A ze;w2DkiePP!*@mv_@UnzkVr7)?&ZaVR~=i(%sb{A=U^DcFG1^9ros4Qu17L}C;fo3 zP|d2-tf*30NQjY%Non8|pn zB|m%iEOSLgA@~+^ieKV2qLdoOD?`|+K;K+5hh@3Uju_ITe9uO_d>O=Kg98H-@&M%^ zpmS4CA4Duf%WmKu|7h*9SD2!A=Jf8~v=iqdk$JxEN;(MPd* zhPlZ2;}6%L&=*z2`O?vV+&7c{qIXU}5>wn&c4^|1_;mE$tz)V$fK`xeQg;+3;-&a= zfa*Y&_P#Vcu>IjZ8OG%P`h(#0O~H_Ztg!EFgC89P?cO|w4lA*5+Xh2VmF(6R{mGH| z@X*hnKl9lyax;i~9MA`ovBooK_Ir&d@!#W8F|Dl{(2&#A)P#*zabPsN)NJ*64zcfc1)C&>6)|IBW z{YJz1)4K<^^LIgs4`^RNX|-O#FkTQ1apjsyK@djV4DQL+%r49kTKKnb31L;QYu*XH z(t&{tb{~phX5q&SYXyp>AxV!J+MlDC=w+ymI8G|+>ZYfrrsnHC@sfu-5Sd_Avz(Nf znW^`3*IPa&jFc$R_o?XP{K2T7bh<`Tt^e!x4| z5=&YAgd5SnK1}+Xo!33KB(=U+v__G|yMFih!iIDM*_BX_e~oHM-~DB zlYd8~QozzupDfRQtWH!^pu{g2Iz0bgK5lz*gPjXlf8>rI*<2gSN}+vs%~7O?woZAO zRol^5QBe^Whb2f7K&v5*ut$*me&W|x0F$AzPPoVXl}*m%OdYap-cV(D^z$dBh-?Gs zO`yb$>9eP3EDpcS+GI#DTjCv5BvD9z2*$Nbm;`90mV=%kf%NA91TI*XD)#b!-2`K? zo%#BdBP8h_5Lg-zIG$sSSH2?tnzaD)5|{~WZEhEoMk6e?=JiB-n&s_9f8p&RSw=KK#z*gS3I!S=bccd1!(*!cAh2#r@|M z5HGOsco-1rkSMERCb5_uySM^_>e~qm!Ccj&pCB`V!}fx$AclmIhmVQ*0i==hXoh;Aj2-#rebh-q`cg0 z6(Oc`TO#R{I*XiX3+;xT1qPg05FsX9a=Aa5378S8@w_%IclR?u8I$QZg}tVH8-NH4J?{xlMdR}sUj>1}2x_~M{Y{bIDa0GjkBzT# zf(W)ZKL^?5-pkd=W1YTYIKVlgU6yN6kn_ zXSUJVLZXsUW)KZezVh3f2c0iPhyYtoX41B`Lm^SQfAgRZgqO;IJVYNn&{o8oTy+}1 zW~!a5KF2fa6XE4A=@4oG`*6t#zPwpRreMev_qX_)ds-}Ka7}A!UPezzxeAnDk=b&T z3epV%3@l)_N+M>rh`xZmaz&LFp&2@&2g7~Mvf{?^D7-#_EhbMAm)SjgSnc3FF_ySZ zE-#0KV6V!_f~njBLID73FfC3l%X_h^J!?!p7FjH%tp7BXFRE!2j9a|z_CreJj~y$Q zY+6dbN-2eGWzri3>@%*0zTSc5T`5nIG%szP#g{4z#+6OEOyPA1EiIhO4>lTAE zvXGy^Lg*0MPlsZ(ARB7A()8MpJB7T~k~nm}HcZs^PqJI!4%8Ap7N7S4P#xN4*U_X+ zqbBNX&dh4qw}+~Z=XW>qfuwdaut&^8Gj(NH*av0EMyY*5|Z+6i_MUa z|5)nn?FE4uZP#0Wek6F63l286SeCH5g3Ntit{2}LzR9GB5Ihyzg$ajWS@RRSHGj!j+OJKs|zCbhRDGDxz0pB#mdS~0{fdpYkB zJQR$9XQzjwQ=tP`)>rGpq|F~XHlV%Tz5H{yV(q}J55hp`!W_5}H1eOk-N&G!58@#F z19T4vPW>D8kb;5a00LYR3qkY0Dj@Yfe?f&@AmjNufJEMxXO02U0k3ROQ65e|jO|f) z`ZTnXvd96b7MQ$gx>FYWLCvE5&Pb_1>Ny4zoWhG>>Tb_%gQ%S}LT(bJ!rFs5>>lPX zAB;eY0m_AY>bD|LCCNEB9RD1wA(3$NY3l3WnC8+`SH17$RIc7-H`=^qzY<(Q<#}UT z0_Um>_w3k7JMzL`WVa746>{R@;@;lPCIU}vWUw2&|2RE={x)Clp-n50cmSIS7Iplb zh9x8n;@qL3C%4sLzm{UWbm;Dz@AO>jPlg^V=n!?O7Pu&INZ~zu@Z=K@l5FFG)usjr zj2{WPkA8SKgVQrTy1GfCaxWGxth<3M^NkoW7=tkEm4C%<_%>*hV0!KB!C=myU^nfJ z17$%+McncPTtlQgcW`a-0?6;*kL~Z5U;T|3d2-XMhQJK%)ZT zQD+cq5=}+c(K*Jlu1*S4XOo_L9)^I*+s+?h9~#i=+)LgC#XZn+ zpLv%*_`xg#)ib2Ltz{eXDBhb7wJ+Rde~$SYddH`kyh9myJI4UXdI7-W$T!jX1srfU zn&F%E7;#f&RJ0(&;XS~h0eGRZ->Boh4Ux!-WoAg1zK=)JeJ4G8y@G6Q{$b4%**%i6 zk;bv;UI4j3c9q8JM{GXIZUDBxRS-t`Hh~;z`}zQ3`rb!idZ0^(Wm;tqr3CEe(`)`n zrSMCX_`X!%seRnEw%S0H2V!IE9~ilz;3z)d>$s1`gBGRx#9v@3>E_^~h`E>>!tHCQ z^cB8u5sxnVBP>^il`~e4h_?yxhdfuL0=!G&zk^vx^EIJsPjO?k0~lD zibIM}6pg)idOFhA$H7Xm-%wjS-q8`re20;dQAk+0ulC+HB{}@~t%sCld3kvNtH=b= zVDN%!;}B35y%OrYvD6jouGe{O|{RfAJ%sA6cb?>;b+^jboPRXRD zCRZC6&LnkeZ3B-AN1zjX3JZco5Y-x0ikyWddSo5fdOV{Bq)S4cN4*(%M#rr{kOEw? zH-7JEJ{VU1r{^6dW03YyWzZN9&*?S!t=VH@W@aWQWwy@a{KyJ?64euTxE}}k8?aii z6WuHQ(&T7vPMbQ=rB{v#zK^ej`1oc}-XpkRH+4Xnt@UKQtiA$;GNf|6n3JKjhRzr& zlXwu#^V_6|@Hl`!S%yv_4li{8!dxf5`BlA{x9-?MO%Ys>~(gUIa8{YR1~xRW@6@F`;l-g@!iH}=r0f{29U zG-}V;X(kH$ksTMiZ1AVOBK8{&9uOm?fpBIJ37-Mh9`*s%whf*-3<3ggjK2B(dFC?E zktk+x_f^E5O*Az%fqntoo>1pQ&=;sV;HZC5n$qdS=uNYAqtO8bQGpWm3pc!6t6ugO z3SN4sE^r9&Fv^CthRgBs@zv=q6cFLX1wK(yQi7+YuO`~^7-S*oeD;s>P_dI)S(j_& zkcLrtpCDp=X)D}>W(+D?msDM}e4n9_?RG_Rv4xaWup=5jE#Yfmw6B3T{c(<9la2nB z?F!HXI0V1v3%7$iVI@TpWj&|_^XVZJ04pK7jb9Kf0F{!auc2`cg#UPigqf)U&Iedw z;o-m$QjUC<8h~1kiHcgSqojdc$m>MSXo)^|t69pDv*ghAMjH>@e$ePL%LA&b1&e{I z$5umt92Gr%qdc_CP+Jw-kEP1xNCagALxR1sB(L{exFr>Aqc?|G>8_~3<36o~H*Wd+ zatRs*7~UhbGISc@2ca~?=w$9qLu*oPJ;it?pb|j`t7cDfM&lGv2e2kTnBW{Ara!iA z1eO)L3_dFzgboK(fT0WDzD1}CxvUKe3OYM;Ke+NIA3r55L`3bpfU_qb?7K>f(~Z;k z>hv2><4?}(G3klRNd`!?%2_vJ?}V+}0mnDmrMdSOsE9$Ds@9tU)g^sANbu3i(0io7 z%2gWbvBj&uh)?4g%&PJQz#*; z?#Z_n+c9)aT8xa0fIjY~p?(B*;ngj9)Ly)j%l&X=1+3jVu*ZygQoQ1s1 zKLMx4jlr9j7jdEDD=0th$st7WoiA}AOj>2(Y=Ak3vMRK7En%S(Atd3;!xod z64twJX&Ku-E{03N|1(?Q!3;?Nc%arm3x-*Y_c#r9>>K?FwuS$LZd4c0B~@3CHUtIq z;C*AkQlwa(e~Mtgf@}}rsUZ2>AGdpF1du0m5VK!N-nqer1QPrt#4lTM<(oj?tE2-6~lHm(lC>FFt%kUP89Jo^}z{h|;QD@Bbu4VoM0 zH~Wi#m#_5Ce0JTTSOR~kWv>@<31}LJX)hLfH#E48KYFpz1wMke39={t`zciS>>FR> z58qbRLbWkVZqtV)>I!Ww{?5+M>58LbunA~34O$J}TNK`4;q&@~wj z9_9+}i<@TF!l-c(du{2mES|V^=;O40hl|vzfbQ9GfCdRYd?vd!a z{zCsjQVc5*rMMcOi*tu9-YRjtclt@)ELCTi8~@(v--J#v5U0k36W(de!BA9ci?>Jc zXAV*haKeMUMVEz8QBfN_j~NXx|Cq_i$w5BBkBi*HC+gbTKKpKK_2d1!tW%f4N5OP- zE0wTMK$E_R*LRPEkN%VJ6!bs$9tnlf2K{8p|9seRu>7b0imRZUJnS^Q8;Kx)qdk= z*~dY*0@rX6Y?5Fo&})Aku$FY5RnH*;4!9d_wxgVaK-Kxa(~CEA!NU3IUd+R%MtUFH z&dujw1KUB+_`ALF&rWBOaI4lvXQ?=llGonIf<^w{dyiRhBESc^4K{rW4vz~#I*#Q)fPC=3Ue2>eU}!7 z>C5lnhurtaT`|oqE%@ljU0K#H>rgx)&cIHHZdo?J^pjt)vBx0O4$<13*Im2LM)ydr z$N4^#TqmvWD`1}ROj%3aiEJfCTVoMIiDcwsi5WO}!RbRZh>&w;FyU($+xf2buYl)~ z*V0Oo;=3S<=(a?T)pP7$3M<2I$sG$DcR)a zsr5Vbs$enP=W^m6imCr0*EX1zn9d>ct)RGR^r#tb{rO>V4Wchms4xqIHl~;^qIrV~ z(XiPC$K$P9O{@Zbh94-^kHu`=8YH!*Q6m`@zOd6IpYJM~q3TQ+pNR?eVaj^w4q})( z2h44=*L*-#BmK_xy|#{Vay;#CfFe&4Y0nSo2qfn}-=4&<5Bvzt)B1`TPi&u@k^-2; z$1$``Qs`ATKzmV`^DO$&+`jYYnwm-(e6!?8+LY)WLxBjZZhbbFQ++m+;WG7R@4Dyq z*j_JvPw~+`z4v8ga+}W6B}{CP4pOcHkv-FBQO7Y;p7{0)Q=LYRySE^vOLyEE_e-jz z4}L(672=3=vDO{9ws4BFD1bYHiMN%bT{2!&Bl#FBsm&s!3w8a#qs`VXz|EHAuZEQT zRjDywYWDLriqKsAk9Ypfv0YkpA@k$o<7eI?A?Ro-nsqPD=F)Ns#eB9rwgNpDJ##-T zF>a2$`*UT~_@fgers1u2b6!V3Wh<#`p(bh!58t9E{mL0?A!9OkO5a@W#p9y&$~-(f zI=hIJzN8JV^ngT0dWGfRZ2hc(Z);sX$C9g8CKS@j)ghJ*%F>GFJ68ABJL%Xgi!fD9 zkgJQu>Cv88D7fTn=ak@wtg)D9X_Oy*Oe3Y|AahW1k36^04-5zZ{5N#eRrVd_PW^g$ zswPu$%AM=tsEKm!us_y8_Thb3)19dj78=i*RrTL8n=<$M32Kc=rOnux8I_MDzxm>Q znaICb>sS4xe}I8OyH2zrd+ql(elFu_`uJy`9 zZ%==ni|=YQ(HkQQR-T`wwsj33 zeXF$PzH7g+jyAwYHmNby{P0lMx1LC9ra|aDqIudT;(WKUbpFyF?-WSw_=Jvhjy`8diNo=`BsudYVhD5H}bbDg5ByE49$(pNArU0iK6O@ z{lmlN@8@U{@dQh&s@z_^Do#`Xxr6mF-(;w24gY%+@1B+@seOw*_f!5F?~WNPBu(mU z=3g93Y4rzsG#ZaMt}!Ku>>qRLXxyI&p7;JHm@?qSpG{a5CelKa5kwr)C3KTdiJS;-(lX!W1azI1AC7tRQ_ReRR2@smHZ zDp5D)zvzo7t)nI9i;hi}OdVY2`9``l*Kx=GwKCe`@u=F0wCK3po}eqy-A@tF-hO(z zGh+Pbz0O}ndjWm#`|D;svbZ@1SJO%~O%!(RjuT?c6t1=V!byK+T) zVirk^IfAQLhm-glY0it$IG;V3D3r7K<89e0W?Mlp{_fp7e2UO=o9m{6j30&~RW^T! z&Mqp)do?p^(SKL=HM1ZK=N&8=75t*q__b4?^U2PA=d-3y>+CE>fcw_z?r$HYGo9bRPhoiKDQTHq z@%|ORTr4a&CKXW|il;v;qs`IMoVn@_PN}!;jz{X#YTy(eVk`JjSw_{5T@ko0rtr9p zZu1KWfNFKYJXk}p<<)LZZ0!BdMpGJ^L#O3G+(sAe+xAluaE&fXe6PC7X}sjMNg1Da zZn!gvyqj9rTXafp#@R4OC3#2_R)#kHis z(bkBw@0A{AcmU$<+pz!G@)s_*{SSvl7btoqceRiqZ|4=+%#)<=TISpLYNOW2Y}G_c zLW`-Xd&6U^aqE1&D*TVgowxGu`2MPWxhj2F!yL1h_!Jo>wsH?%=*Pe^3k`ZSs1|LObT)Ka)m*_E~o7Q+Y zTe+Z2#M1Cr*uuP`q!hi#Y<4~Joc)JWnSls%uH+XjD%aTEk|G!0)ykaik@}=tCS@Z= zwg%Pu+NX@Pk6XVQCtk2`K83(4n$5UKG5}jXxBi#VT#i#`n5oz z{Kv+=&_}y!_S^35SDY_j@qM%BA!eqa$YP^Cua)={U|GYSRGE!0#4uVlkk*J@Ui z>Vv@h5uqrWJBnkIBt~D$DrH5omwe)1*B`hvC$GmBe8zacChxq;LVXsY=6-CG5?8QS zJ`iJaz*SLxz3X><0g6Q3R4UC?09t_brIXefd(=c!&SpZc6 zaM-_*0=}5TzytQI_NnJX-40VhGg}@5E;)NsoqZ}EjWx%seKyfK_B_M5B5k?zm%-Ku21CN1a zZi+hqk^oc^l-AzW3!PI6vu;47^>&h)14Xi@g{iQ8`Uvj1HZ85zwYT(PnQyw6>q&N= z*x|Fg`eW6s60JGae|;6k4pr2%5bSxnkWz7Qcxh_+Vt&?Q!YdnZnCti7ugV75R z&=RcT0u=yVK)h@(-!%Pe5;Wlukn&)pPozv&RJBL{D8!X`HzlU**;Ac^w(8nhGnI}G z7T2BprpwjU`>mtebHCqXe+#l2m-l6hZIkdJb*Z0|JG5| zTrIh~d;h7%zM%eUrh3J1VTU2FkyKpio@@1&J`pvUSWIpz{SBSCNi| z@87>K>b6aUf2l#o#<5nJQz)2<>R?o3h-*|+Oo8Ab1vi@ZGeY|*u|8+oq8 zwk`bCp|x;nz3+>@ncy|&+tB(EEF@jsra;SCr;KFF{XS2fE!K>b$A8xJdPS1bDuJbO*pp2dxQ=&{uGxDg>DOvD%O=sv zn(rQh*0*tm&}`-`V*3*7A9A9vA5XcoEs`_}L@^Hf@3mdc+?PYsxLV8v8rNC6 z<$lY#V;W@F$HBWY!HT|O?;gXQ_`s$2^lW}O<6HMDm8`gWa#U*|=;hEZL%H`A$UbJk zYe;Y0Bet%q1<^Rq$QiXt+UGMX>6pJqSN-{;q15s9Tb-Y<`{Q5v;^vaCPka?d^c5bQ z4mc=zPg{F+VW+Wh0RlGZyg7waf67GQNKHp4BQ0&58%_?b-SIS_DEnMR4DJT_V?)1M zzK8g@1|n|Z%@-%vJw1pJJu4}>o)o8Tte&?0!~Emo_fu?1i{@de}>?}u=d4} zi%QSManYszt?J?vtM7^I5|aM)cU6|1*uewX`qw&(s=W)vP2NMu$kS86?c8Bz5_lMy z*y^kP;?fb8I< zPfzc?`-9F8WRq_Si;4hbQunKM*--PocvNwx1cOY(dluwrf$k8Ru8BXMDt0%4=+UG( ztqm-CQtvC@y>|g3qe)4Y8fD{Yn&(%`O7M5#TsJ@QnNC8A9vK6I`cs103&CN{%Lqm1-7X(S)Hw&aSt1_m`UywGZ)XU49Ygs%Dw6i{jyfzySpPovHKps`(oMBeP5rs6j5ef#AY)zVwnL#NZf+x z5}7)zS>LHL%?G@;iYV1#?~Htg2}46$@^oQORO4&e$R0D z+oS3g-`H1bxK}VOp?%MMzfXW92ALI3R%iKV7N4;N+JQ^^wyptW7=+zaan#`16mVh(mx4=v+Ty%D&+TC2Jf5%=Y zb-y&=MAz}`e#Yjx;j7GZ6!&rlTB0QGp5RtMar4faWhOfBKH%L3!HLp94a-;wqlUVV zM)~@ar>cv)@;kXCW03m`sx7ea;bab>RjXN>{ zE{jk6P`;E@u&%Bw z$d!id?)yP~cxC-NW8WZa<^(OSix{-K^cpOAe`R)t;+UA3fi{1yOL6@4@xyz!oOv>u zW$-ENrx&d+S>K&of5Zu?ciG}>Vqv|fRMu#_&&00W3%e*B-c!F@aBta;FYp6Gq1ON% z?xb_IB&8TEUu*D9gPE6`b{@C~?BAMo^7y10Ek40*RYlDPkGgsbhI=-OGbOK-eQyQn2N5? zPnW)G?5=o0zuO^F<8vJZGHXy;K55OE-r?vsG@>3hB~8BYAmg7k4>^Y&4}0k<%{vjFXL-R zHr-q{l)Z@aLyQXyqr19#e|{rJqnJmuk4`%*Gam+l2v1Q#;j2RLGpLpDKT+M2H?S|@ zL&Cn7vvK#i@3?m!fO2>QXn^RE6jRyou9+D=0fG4h1-I199<}l+J%Jjh;jno@KXD$O z&8+gmT#B;FXPOFZTBH}Ho1?LsJ;NGrTC4uH3MnNYvjy;CEVk#z{st2v2s0ta<_j~M zr8EZ83ibf}>Bj6qMz&;NJomv$-N9iGDB^85qTJj+?i|CB(&{a*l)92`Z7PULXllA% z_YasqWqQ`2;izA&V+%-_2g05o-o3N;_P+GK zyuNhxqyK$l--J*XNQ8n2IRdAgqq?*nPRPD#Dd#4631ygmAq1a_CIyHePz0b%lgXfG zcIPqlm*Y9~_nb0i9*J$FoemI66Wia7pnZix9C1kS(`PVVGOg}q2I1|p>O15FTnLT= zbqT2%)>G)de;PiU;f5r|5UY`#z55$m=t63W~vC}U3~{r1VH_m zn3z6idla5@s`4Z~d3}C*7Z=FK_UqQy4P}mRWmMDa*>_Fo9Y1Og^0TGP2k0TR;sI&^``!O_vf|=6!Ef6yglD|jXmMUB*F3$jw1~BS_=*PwUU90Qs>#M7)8yj-P6NUx` zV4g>?S%?vDHbFy2cXD*x-`jI=bcEV71VW784mf7GK{_hd>;(DD(1i3vne?0xQLvE{ z*yetedmwIPJ03{>Ex{wQy5$zI8jE{cg(uHmy?S-=Q9~C3HwuHx_`7gONnh?=g2`Xz z7yU=A719Baf*il|YieltU_I5Zb!wX+6V^p5?D^vVPE>_gtQSs{Cd56A;s-L5Go0w< zE1(z$g|mzavSXN&W-5GXO_Is1xfTAh|JRP#?*F z{K$$3!iRi6Dz$#ETWE}zrA}dOgRh5C5#|Xm50AMff+g!Hq|SslZ+2H8*<{Da{AkF& zJZ6rwhVI0NF9D$^D%<7qzw6brQm21g+-Q5+Y8q=Vg_!qY!UFaY1A z{rtAFokXEnI*aar_Z-}b)fNj6rx6ekU}Wq^6*ssC2i)<j zHRiPEQ|+e%E0c#P&PQQV6}XMi^P9+a|~)%PbXfoljyDj}}r~lxnE9kb>^t z{N!(0VR2kK;tN#NSq)_O0osN=e7A(pUlXbr++0xq_Z@Bpk8;BkqkNE%Y|CI*$2B-Z z7nECiDK~>BD1dZp<@RDNvS~7R#>%R=iT%s7BSl@3k;rbriU2uQ@nkW*YVjw4gLH21D!=~ zlI*r{rPOlOV2L@Mf~|%@<$0aic&o;HJpt$#>J<8{r9~{NZ&pV1(@r@IZOz8hj96KP zjSKFrccH{hji)_gdZ=6XntVtHSD6pwd3}Mr_*Q$<#g~ z16yRHh)YH)pCGIH3kSk|1PX#qH(m|I#qrm{9!o3=>!;710@JDY2!7UlBY1D=Vkd6? z(@vygNIx#vnw;{;knl*%=QHviL;%&d71xQILqf3dxRTs z>;>i@CvPo|=fbgTu9+{XFsgfSukO~f$4W7be9kCWk%*%Vm&o5&Q+-(#JNoKngM-PV zNWDU}QgYcsek#*(qV|E3Zgg?xlKD*ZIjqlC5=RydP})6SlmE&Mnh0cySsx8+Spsc% z!5`H3_*Oy!(U}#W^4a&MiC@=0h<>kG1+w#_w;Xwej4zWhgk_UF9t(HJN@FOiJvm59 zf4C!1suth9RWR}PBD?3vWYo$*-YQeiEpbTVcsEeoZcAPMtU%o|$*8g#I-%3LX2L_1rP+DRY04N=9TRpG7p@0uAy; zhA|$;yu{H;{?x4GJ^RIW3bu$34k&^g+VO)lN%fO+;$$RLT4nGOPI0Rbqj)Ti#D@e* zep6b7!4sBZIE?^V$k@+0-pzQUQ>0~12k#HOTXa8gN7{t$hxq-8ATH#*ABr0*L@9*P z*=b*?McI)jAF`F1c#}jAW%ixy{20nep_bqge!cJh`W8k2g1s2lBOmQMylBnA+RPDy zIs`+J482btcSTRW8Z&Cxk3d!vNs@bYm~Ir6##Mqs+0KLPrb0oOhe@W3Va)QmIatCd zNf)uGm0lkidr1E=gj9EsphIR9n~}UK?qbs&u{cf^#Z!dACsyZVpL~tyB+x>oXOzWD zxR4hG76ZsN)2p79no){oy!wF0p?#c;>T~yHXd4AvS%*-@gX~Q5p<%3AOU%>!=~c0? zEvwD-2)oBi1zSc zQK@H?wJfb}OY>Mij73h}nr$SqzalM;!Asw#jv|~Dx#y12p1&(@oxB=v@G)5;-;svz z#{s2`-%KL^z1#=J1kv3Q%85CN@*`#gk9fZ8e3-$5_a}>cn%DZvuB*5!c==jjtP$_FkYxfj`pay5`8;RYtyMmcuiH~Y zd~8_W=C4yBjzs70p!6EIUM*yk(^M)n+4`Z!K!h18qR$|sqyr+XqRe{|(am3i?VhFs z4y=nDP4dT1&ZnNH%ed}>8~+RKWszsJJc2zoLM`?p(L=<=S~STo`n+wy@7Q;I2%nuQ zeGrsmrsc>Nq*zXnr?t<$eG8X?Zo>r0g-CJyg-SpiVPI6?9sl}=NLT|uQUC9oWzNx1 z$@U0tk$;W%45C%$Ji*4QE=AuX!+sZpSC|+}OH;=I6*J3O_4B9Bl&WpE?x5^*J|r z#*hh_QsIBo+P-@1WVBtath)$zEymV(9I5fYPazUc)}DFvv$0ndtd{i@J2sh!MCHP@JrTZhHZn}D9aD2s0 zVB03Hr@guMxbA#lK~n|1^8$J~$4`;p-MziBz|l_N;pP|A`Hwg`@V!03{fj4P&h`Tp ziVK?0&bPnc2MnuYcE3I{X}=WN!zyj5!NM`2iQ#Kyw@5@oU;{%HaB=*?<6It0ECvq1 z%{FWbOrqyN+g_fZv+tN!0F)HuvoyGINdUOR?2-}JqlFg0MROYS6duTZ1ubI#E5pbi zEdmsZ3bArDNCBBD7WFDUxL08;KVCH7!55NsqJ~IpsUOV_GDVur9 zr>9S!RzBcYxNu1jxNl9vy`?q@ICG#Y>m)FLvvNaPv*PB5&EokpXEH8lU~FJ;U{GKX zIKTqjOfusD#}oz@1}2cGBWU?IM@9l0P?CXzfyKZP=qxn@CRL~w2LYgqIhdqoFajk( qT6}5v)?g1`_QIY2_`kun-2#Sy~j{O|ia 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

Kyh_b&vsU!>lMW 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

(CWIn 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%0D7sJIYp9JiH^1OMwp@K*WIi0lZQ}~yq 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 z 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≪O^-{;^)taG4d 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 z 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 J1v<93{t0?%f5iX* literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/dgraph/quickstart/query-result-1.png b/docusaurus-docs/static/images/dgraph/quickstart/query-result-1.png new file mode 100644 index 0000000000000000000000000000000000000000..21ee216be0897eb5d486b548f733c185cb3dbd07 GIT binary patch literal 76750 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[^ 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 literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/dgraph/quickstart/query-result-2.png b/docusaurus-docs/static/images/dgraph/quickstart/query-result-2.png new file mode 100644 index 0000000000000000000000000000000000000000..2f12224cad506734b58555a577fa2f6aea3e96fc GIT binary patch literal 74801 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򫻌nK3 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 SMT#(*GMO1!L8=YB;{OLZX4;eh literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/dgraph/quickstart/ratel-connection-string.png b/docusaurus-docs/static/images/dgraph/quickstart/ratel-connection-string.png new file mode 100644 index 0000000000000000000000000000000000000000..5b816efbef14a5867a5d31c24887873f8c93819f GIT binary patch literal 84094 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 WRHH&u{Nnw@CToKYGz!&hLjDbt@5jOb literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/dgraph/quickstart/ratel-docker-connection.png b/docusaurus-docs/static/images/dgraph/quickstart/ratel-docker-connection.png new file mode 100644 index 0000000000000000000000000000000000000000..7b57f2234a86c9b712dde94af213d6d4f4577cc3 GIT binary patch literal 82717 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%0Ap(5DU1%A<^Q&ZQJOHmnv(D$sdM7r`T=St&;d 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

=q>%#y87EVFY_M;3x^IOjwGKmV{0=?4eRcmU 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%0A<4KX?u+8bN$O1?{LP45p( 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 literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/dgraph/quickstart/ratel-overview.png b/docusaurus-docs/static/images/dgraph/quickstart/ratel-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..86f2927f66d4ca3dfeb544c628fff235c5cd2afa GIT binary patch literal 118989 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 literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/dgraph/quickstart/schema-date.png b/docusaurus-docs/static/images/dgraph/quickstart/schema-date.png new file mode 100644 index 0000000000000000000000000000000000000000..c7b5b0232841b10f2f01245a6ebd42bd1dcd5882 GIT binary patch literal 137489 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 >-&kuT2w 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 literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/dgraph/quickstart/schema-reverse.png b/docusaurus-docs/static/images/dgraph/quickstart/schema-reverse.png new file mode 100644 index 0000000000000000000000000000000000000000..7a252bc008084c2ce88b33c2e11b487ea4b9bcac GIT binary patch literal 120957 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

<&VqS!`mw-XTN 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

N7&tM(*RxMv<7Uw+FW0=96(7%%BKEB1_E|!*f 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�%dpDxx z61u|T6EVL+pMZb-_`&jx7UQ1|7|6-MN(TYC*Z=%$BRzC0b}Qz5&FIjXwXFS(mVvX| zX-ZVh=cP~8p~6Fdru{wvTCsN~L4a6+G%AW|Z#=Ww70MT208E%@0avBw+m&G1 z{Rkc#L|^k_mC^)@(TEgS{3X?FRJf%CLXLAu+n!|zZgF)}4X37)AB(w8Yin>b%wSJI zeh>Ka=ODC-i|Gl6pnTBRLii@Ki%l8{b{c8m#6h*)`4tKU01Eg5@$toQou&#u{9==_Yn*ENC zZ{ODaGF;rMgJs)&cG5Gr@-2o9Eio<=uKkk82kg3 z*D}v2DI0Fs+Nxl`dl(8Z*Led>xdDq20Tyexv)ERQ!GgH3lNMOEKwKr$8V`O-gIC-W zCihS#dwzW|tJFO+Sf={sKpJ@x1c1{(h_SfsV&F|^} z^bz7UhNMM+v+4n|;%Gt0`mApp+|G9%lRVLY6Pq7U>AU-jA3iwC^osiKm5!+*=~$jg zUGZ;=`)I&>S$`88KTBo^!0$YPoF2!>1O2U-;#YT1;5YaVX!1SG!=N(&vi^DWhdebJ zcX&4&y}nE=_|r#!n_5c^cD(Gm=@KV`&62v2%HKJ+tDhw!O(KBmvgqGiS^;RjOAieR z@#J;4u8!5cON;cV$4i;UUx74{|HJBEL&sq;n4>_75*VYW+w@MOmx{-t9OyOT`@ZQw zOHg2O)OS4s>P_x?G=2xk^saW}=GKsZgYx}0`J;TqM|tTVV61Rb4LLMUPxWmKP)_Ja zW{uFWloNoEIlidYULH+X6yS6d&I`o*kyQVKid@_z^>w^xzf6nU+Tr33F|J$VVcI+H zbzGENS;@yyK>q+FVvK$PknICn@KmQ)aY&yFD0Q&_a)__~tx?h0bVE3Uh**FTCH%LR zrRe#$sj>y2)&oeZb^crRQlcpt-u+O*ko5m^={bv7>J<^Z+X0>LaT zEn&VPt7Lm%2?^?tx__2*jQ2N*>jNujuJkq2faF&G5`EOx9dqwH1zxYQ6wS4-@KVnrsKh zY$ulIzR6s)!v-_O+K(s=SJJ;Zj~~8kh$~0( znPMLn+?p907Zf8RaJ+2&y~bU~Gd?mha^OAEZBGjI=R&@pXBh-x=QB*|SoPEMCI`@H zTg?5wpOs{aJccYg5TfhzQd9*PC$U|eMdo!DD7I>&b^ z#>xa6IxNh!nXh;C=|yzCLSc)!*sQuwU$d#(=dCi^YH8+;f4I|Rwv%z{NUTWw{kG(p zMh=UHFTyc4M~)?IIC%J3<&!+=5)6F8SB8Yo@u_9@=KL{tU;RXxNpUSO$8W_zjgNL8 z9=TZi+;&Xi^m9+KG~UtG(iP_F>Tun5Ie+ALHuPQm%~Bp~HfK9->83hjw$a+jO1b}c zY+JHO`K|xnrQfB5ka-LMCHg0Sp)GZJcrGIw7z6=6q}R%Oo2*RG1wgl! zXqGBS!KXXcuGDW9a~LxRY>BdtcGp{ev*KZ@i`Ga|3JC3~u;l{m+P_VJyvCu4*ugoS z+#p?P%;qU9TO9!a%IoS%YrgESfGSPH3IC0BfHC1%oVL#pfQ+kVQ(ry?CR}Fr+w7Rk z+Q$yr@+*Q|1+ScKMvfQOUVt1q3E}4pPujy09E*|l-P5unxA{vtIXe64d7+EXL_r%A z&N2u)d;9WIfZ?K2$|)iy_Cdo()LzVg9~HzB=;HyLHZVB>_-2?!?(Nk^d|Ty_Z&YyV z8n=EZCbtRVv-A1E=qBH9Wjf`B!FF;X->>i*OQp)0-`v@BQ?rdzqqW~P&z85wN~ykp zHCDDxSB2>BP3^y@d-XU(eDs6V4P{H4!?%3pWErFJ(Tcj^fef+13FBYw^s;^o*t%ce z1%~|WkEy5~;;N33!4YDUvOP(EfQ}myxii~@z0JJ#tPC!NcN0t+>wbPfQaX9C%C0<~ z^l-^tnqQ<-zAQ<;ej4DmG_bt+z5E3rBci_w3I%lUG>Efc=J_q54O5q6LXuZ!BLF^y zR?Jl#=*;WI`^OaGP!@xYQj0#lbWs=4T3K0h2E{g@KFgU{;Bz92Am>I zU4&UR6DsZp$Uh%3uR4)F9^{ADL{o^(N9UQizWYGS{bp-d?4bViXmja9v&SLR@?qh- zKyojfz=m25w(tXkgCtX5w``oX45e?=txdS&jcQ%EfR zK(E3us{3hfW2kmry=%sCeMb>ptj6v=l5-m)_~C=Vs8&C<6mq)W0COTYi9TA8~-%t1eDfh4kjN1m_vEMOYq6xH|SBw*P z!vezkdZX1IU76094v-Lv??br>i(Ogp*p?-e8U5C*y2_@UJm?JSJXP>>EMs&Kaz33^ z;Bjs-dP~g@wg17(d8$2o=g`V5`MvlIKtvd^iMel_K!sBD0*nYVq*$?ih50N=oYK|41A{5ckUl9$)2 z+hDEV48J!puJwLTlqYFWYI)pX~%0iBFB2UK65GFx)eckX6M#PBGqV$VhbLMg1QP}Nj% z0m++E$A@R!zRZ~{?)#yq@+@!)hAy-C=@3+1;U!xZK;%-_Km_?-8Y9*Ov4YzbPxuJz zj8>GLpa4%4jyQY{ibt6Nlp19VfA++?olP3zQXk0OFjmP0eiuaT3AH0fb`)2&bG zy}vr|?Wq&bcqIa}Q=%u@XRUC`dy=og=bdM{f7t9kk_i-GP&eqEEJ0wPs6s8-y&2&Y z8khQSF{|Pcw6xf7fkTnKnr_+-229@6f47c6>MK?d5~;E=y^s8u!^@!( z0I1P;Nx|kM6b%}*=N#Rnpxtt3ArEDvBgpmyf= z<#$+*SauJ8Obp3=(6Iz5`jYUoWxT?O)(8s;Yj#_ZRJ9qJpM8MyO?o4=OF79?B#60A z_k~~Q&`2{ckPG-V-Du6nmfS#HNg!0dGz$y!9yZTZ)rru4n*935eA!`I+Ue5xrol$@ zB;8kqBAuC3*cMN1lzYS5C(e7ZK*0?(+m0DYG!o%8U<7dU4Kg<5Koe4G*9x7LE4motk z586^P=~2hr@Ee8tLA$I#T@d8y!11v*U)DP^r%u#7_|V#lqAx= z&`upqN;#7V^PFZss2%Iafr=FmsGeS2k>9hf{*PsgWR)y%E+}Z4AetXHp!c2~3vV{3 zu#G$FoIYA!Jrl3!q}Z%jIjpm2k}jaQ3sQv()0zp65-{aK1}=!E#Ig~BYlO0~zw=>h zzTN5#hRC3PUtahgXZvlVT8W;I^n@zlW4B~S<`ClvTLQ@2mnH6nfpgO9%19e;UOr6t z{?(7{7^R#!I$Vd3zS*1Kz?PiAF~NCer=yPwU?8e!*VM73x?xZ29z7x)QN}1&u@x{R zsVgt?*N%8gq%N(^gL*}9kJ=K#5}l5oCiCBlZEVHO<|`}1d#!|u~4 zEz?M@$G%q6qlhqwfzed(vtWewr8+&>g(gH@BO~S-c=3dHP(hz1ESm?w0LuE;9Wghg=z9aO1EDQdyM?|Mg^W3K>4OqDY*=pO}`#7aY01h zmCFdm^Ttaj0_?Cm`i6G3{cHybVitX$094ao@J~%GJPRP^6a&R~)XC73It&4WpII+H zt6LOXj8T3cXE*jq5(_&jp3;iD4l#Un=XE%%xZBNV1*{zL2MiLBGh?_ z8&hehf;6E#Yq0~Xo)Q!j7K+jBIL6A6uIp5ao^E!2E)$qmf1jtN&;TuR z&8*e44p8LsDI$Sy3)ww?w_fki7v1KwVwF{%1VDWG5aWTM9v4oRL`NL6`zq= zF^IA)4PqE^tgVR}1G5L#r?_n}wo|l&C^fU0Rl;xGi8>kfAe%9w$@fqsDvv2B-uGug zzmYyaCc|yd*FB*Insc?|8F}BM;9W8IgiSIXfG>ES)ii&F_lmi_@8$veF`c1B#D9`?cF=$Px|-K9VQ@p-tH%PYj1f^{JV=*G`Zt zmLodfDlwjLgO6S0e6L0<&UNI_b;FQJW!EFkmRfYl?{?^by7}zObE-srve@ElZjQL( z>j;Ro@+yyZmD(8Wu>eUnYUI@{vE8V#FuQ{Ezat3DBm&pBiHaFLlx!9^QlOePMf#)Z z%U@>MWhhPIPRUQ!&-}+-qVgwH9cdQvc7e3mP)LGN7sVf5Z9?3awS)0*!lP4;tW zH--7W$qSnW+j8d4xIE6!{zy>R*hgc=DqN)5fUK7Wv{zGZGE_#eB?7te zJH{`V_XAt(`8Dl)_8T1=pO@voB^pVq!+^9w1Ac7JdoBDytW99`Y&5^ElaU+-6!I?c zNl(3Dfpx_en4|Fs?QXrq#j6q_GHz402&6j`OH0{&aD0}JDo+X9{RDS7U(yH@Z5iRm zM<)Lc)Y*7o^*Bx{k$fjAu>f_rMHwNyP9hvZRGOu|uPP7L!N-D?zB8=zv^SNt?aoqt zZI7G`gD~m;aQ?(!D7O+EvM~<)s<5HrWX96IDRFvJ-{dHsCr`aOsRg3^$7X%>-L}KrzI>T$KCe)vow)Uc#)&k8hNp#0%$4CkL3#jPJCS^=2*X!3*+g8 zAqz823v1=e-&YtnX@(-8WjxZ3B5u3WbwI~gCI<%k<(0bM8!&?JWUM`XZr)S^EBHvA z^~?U6;?N7sEqNyM-c^5+QEj1E13wIPKgkBowBCIA*dAjSMv&^g{HsKS_IStUW_v!! zB9_7;v$}5$MdcB*g@S>+|Ic{K*PMG&E^8rN;7iB4GW;D6&ET zylKXo5=Xh{ZQLZ5Va`9cIzETx#58Khwi>y^q_{}=AD<;7xAq$Vp5J_=Lj(LLK<&6b zkYyR=kYXgC=?*JLBzT9r{x1LKNG8X`p3jB`27iVQ$-($GjZ2+L&tV2;j9>~~1m0q| zroVFrTCCE38ZljgR*$2tJj~b$c#$X1?ju(OwmLtIPp#FW! zI|XZPg9o8KHjiv|JQzOR_6=+RphJfPMSsYjN_@ANYu@Be$kYaRo zf4F=xJ?9;L(z4ET6->FZ6x;X&0Wm7C2Krv*M}X|5Oc7Y`11x5qZp|Qa{HMX@lkbhg zas};`|FVZPAl_wC0>aSON}jb%Y$@q8=YZ&NLQocW$5%x=j7O&|TYVq%AMKYx*7MnO z5b;NGrT4feJ57n;6gv!gwpx`x`k`IT5z5Z%(?ZR0GK1IdzYc23H4{y(L5z7GUdhqqKh5)a zWRIISaB+R^882s4R0t>3d6nUkM{dC`T=DtIC-<$IA-55_hF1(0HpkMa=h~6V>a_GY zBGx?A0>r`P;~PbjilUp(r5-ARY?dm zPPFE=M)04^X8fd2`Wk5H&sGmN4Y<&8xKHvJhN;bL$@Cx^`4glSyk1AwOc&MWe5-=j z(CZ7k&KDj8LiG2zQ;xn^0%XBDuDZV#1=Dw-v?cS|%feXYXL>I`@x1Dj)&XfffN^-v z`|nd;;i`{eCZ+YAVuG~16UY{!13k06<+LGhIJQ9G(#gWTMp>TYxG!rzGQ)v&><9j| zITDlR;dd{JN1PGLkDnj-_0k_b50Sbg7>ibp?Y3vkVHW6>SN+m%XO#nTo9Ej(h00V- zP)qe4ldFWaM{V#aY3Uz@ZS&`UqhGv#l|N>r0wZ_8zuAlfYCmd-%^UVENHY^DH(oG; zQ)ZN~e6#PDFyuu??5QumQ15r-FLyWGAL7CWO65<-DZ2Yvtw)RAU}xLuzz z(-Osei@ya!&HWGZg`@ z$M6=(*-z)mLhWD1YI+DhS(JN9J5_*ZSOv;f&}5T9a|wP#Ur?n8eYKIZpS03dM8>)a zjN2PWF;m|+&dLA{^7c^96Wc-8^-pAPZKs90gb)xzcCcF3ZJ$a#3p>WiE+hCtP_C}$ z;k3#sKm4c)s0N<$VS$ z%wjILxn#$R!7u`NOxKPma4FQMhyR`;(00(O6I46*PcMW%5_A&m+Hcl`PMou(3wCE5 z5lFAXS!JH}b?M}eC$iiNS`X}b7_Gn!BIo1PhkB60$2@JUB%&9jhzIRTGlZ=T0Lb~@ z+j*v=tzF~+FvyD%dn*cG9@wCZKH4|Lq+5Wyoht><X^?GvD<)5S6hoGZR&W@ejU{ zyiBkNHP{2R=LCR@TN`4sJoKh?iny26*DM!2R{#Jz+I5Vh=LX**eKk0S_w<=bm&FOEZ2<;a>2tA2<aQIB#IR=e-vYQIlVpWJ)u;&8K&wjRzlE#9hqIm-vZ@;lb=HatfvIPE59fnL;#W- zt6$Zm4?eE?<>6015zAv+p%OXxLTXy(oXXN81ilV$g=&Zo$I0tR*>^H0#fyb!$dFI4 z{M13CgvJEPw+kg3aJ}vhSMJ1os(t!|6#vy+wbK4DlIoQsHm;t+ehAC)KY{H z{OH?8oR-L3L);9N4BOYD_FD`2n>a75PKmm?J zeVPFOau-on3<8}?e*_|-={cLOvDjpfNS}td0z)}kVinj zsEp4FCaf=?R>n~1YOKk+Qgqgq-K<3de^9Io^^iav=_JV2s^1KaL4^sw;*n22kL9hw z6Bij_vp6ZWt&ib#7K`BpG<5-Ro13K=R^tQK=ktqSh~bz{xLZ|9C84PP>vMZ_QZEd2 z{*47hJPR%?DEJmc7;uy6n_L+y-0E_>_6@nqVL+7`R$3BNe*$5`4`{7YUI1z{)R_)e zOGgVhtvH_NVB}eoz~^!4ig!O4qPLTaz#{K6{{WOZEoT}_{i_O}>f*1=+mqLZ8XQ%G z13Krm9N<&+0m&$p%tnqVgx~hoYfj&?g`5kb~{rL+?j6JSEMqku{AKl(_ z5fa)hsbO}%6ckUtuB_30@ODJEtfcs%oRl3BM~9kSR_&MIso9CldWCpsH3@tmb#eNG ze3?#pZ*G8=O42q(u zPG^b^dZW-P3cuVM`P{9C#98$x>yt+8fLghCJM#*URu9n>eWgvVs5m__n(XWG<^o;l1gMK{}zly+EgujY&or>+1`- zts{XiH2@1;?;I{PPGjl%8VM|*T&C?*GV2W+rbzZu^U{<8(SG*BxYEyGqSIJh@;H^C z+ZqENV`K7a4yq4!z0* zi&4nKc;JeI<6b%Fwr}Cd%2RyEJ+gKzf`=Q=iHsl8xnd=3;`dcIOpSoOsNOJommp_}JjnMIME-Fp7Q?59t^ zJlx#eHSQbber$E?l2FRA9AiZH106Q}+kaCW)@3#4Geg{P#kaX+N){)!DTX)(SpS&-Xe_O zm;fF%(l?_u&$E9s{GOpui~Y`aqufc6PP9}2kN*(=p8ZAAP@>r}?FGYF1?uyw9f8W< z-?@9XQ@Wl3rN60!r>TKr6X3sfwxwShk|2Qmx5dAYq%h(CP#VuZ_>;TMReXWo{{Q`+ zIRN$f$Lv4Fx7ww+bO9Yi;9%_Etj2pl$uIB;^+NH`c@N)_1dIc@%Bm_6l-UPDSbwTq zzHU&$J2@7#?|rEeL*f1ngUnUDc@~BQSQVf^>i%ELU(@v{0crX_^vMl>XZceuRU!Z@ z|8NlhkCpyFW77XH7yAOBP2l6&{dNXsB>%^nEWlf-e>w3FLZ}2Fc6QzYn4JND#&1*p z7*{qX!ij|hfEmD(pxQ8`E0tx;z*>!6#uwgH%s~PV6|S-^65eouf8aJ}@kVhA3-sadEj#+XBw6WiBsHE|`5i z?`9!S&|Y41gAdUZB6@836U}%G02xnNKE~Xk*x;jFEqr`<)T17{X)gjuA9XrH{ef>b zi`M3&HdWomr%sX+VTsGBHSP{qhnWE@g}9lGy_`)Zi&e%MXFo67>J7Md7Mfgk{-EK4 zK(K5>k5GUQ_CD+VASc%|l#gR{d}P=-j~_=i$a8ANvWAIV`THt4WHzTrF(mZ^>D0}H zi|O{^zyEv5twq`dhz>h|J8Jkc{h(7bTsdukI98Ta5L(7t_!3w2S3(qQTNiU|cCy2I zuQr8JFpQb$_kcnP0xb!Oex?MXrYnz+;usBp<_dA(K)v2GC>Kaz{q7HW1qw{>G090BEF^-yE}tbbNT|PpQPqNOX8l-~ZfU zq{2~}X^d6b&TA%ysk4mDy;_g0m^C$STsmjhlUZ$^{dOe>@?poO0`F z>$p^kc-eB?z=t-@cZ#ub@8~kdHIVmOe0_E(<4RO0P5hnif}5kCWL;>@sH&=NANpQh z%Jl325=fK9CZ#1aHG35+rdjVYG7$T)O_c3XjgZc<{z$)*l`aI5ymh7f(Pn+RLMD~o@NjH9#U@?>Uiw35^ zDemp|-ObIB^Vbb^;)*ky=~cV%dg1)75Ar(k$=Hp~H-&<22FGzeKI=o5c-wMW+1ZsP z6Q6wGwO(BI&j?_IRqe#o9yeG zI;aM$g@;rk#bh4!8EV zTBd5Hm}~Fo_-rPoX#$(goHdF0HiiS*+RJ=u|MrQ?r;xJ_kk%k;fkdSe?*|v5_Y$v6 z+eK*^d*4;FQOAp1?G5@AzEq6*5kpqqD_E1CP8r8 z4cay`!OlC`51`J5A?BacmPBoJO6+EB#S`mLgx{4ZFu`$?V&Dqv-3->~8u@%Hp`VuC zwtzq-wh4t+#E=XbA_GVD=aM8&q)-PLt{MJs^By09e%-Ue4W-IijdfAo-rN4!tk+$5 zBUXxcIak)a@$Olp=7#8LcCACBgbE!i7U;O$6_?m)?c(_Cd;088s*eN=;IO~oJj=LJ zo_o&&^+we=*ltJ8_ z;f_E_&EE-3isEA3ot@oe1ZpJG!DwFr8i(?`ErZ_Ycv3O)3}8>cgSz#0})KSVY2-P5vp(-0t=>N7n1`IDU~j zWJb5f3bSYySm>Qzq53UoX_A^}wumQ}WN-K$&GdA@?FE0Jhr6G6z78LeT$vAMkkQ^;7-*i*i((gChe0p-AC8O_XJ#&)kyB`?z^Co)KMiWFZoYP@O zKHL2IDyXS2D6_G37@~>IRqo|)_0=pl_~EN^aIvUFN*-E|8YWM|=Tb+ZkT>ctkd6J@ z0=VMWo2_Z2)Di&}FWWrVk>p3+FEPT^_4ZxnduN18Lx-fpr;f9)dNnl04%*{zt~8Gn zs9EIcLB~_oD|OYRMXL17$(QxSE@Sp+S{QZY9@*EsM6bHo#H$*(mi*l^Ojj6Bj~gp| zGk3a%lGASN=rF!gE=(caQ5 zTI_=JU_orr=$Ws5ZCS)b!g!tua+wd_p->W`vR$F3*k+LTKr@LQr8Xh0tKDS&M z1y)xE^l;;*S7D}N=QNd11}%r?F0L~YHEt>y8RKY{LT|SEK-S`5N_&8 z9mPiqv+(G<6$RKz_gZiF9;d$H>JqxV^=5weprVDkHuyx5d?n|dEzRrm6I#_}x|80D zb7~bzYa$s6TyLB1UVc%bS{vF$mdVCNf15kGm%VeKZ5Eeog>#d$DEB!Y4=ZVg#lXN_ z)5-X#aN6GY3&-YIj}(^~r5_dsnfCbQZ+jKb-p1FL89^-=(KxtGeU`eyHnq?k$pUX? z0W#m%)Vk|yKoC5Q>&sgkdi9w39%SZjOh@$H!n2|u;6p!MJJ(>vloB{)1j4b(!t8lXa4Gw%S4x1)&fD#y|-U*n}TXK+xF2JiQK<-AjW^=>8|NHRnT$XNI~A9vWQliOQQdtM#!M4eJn@waGXM zC(6rPbuMuDwM><9ee=i*CBQ{Mg=SBcJQN2T*YWlhbOn?&Np)OIf3{Q_=}o^ISy+Yu z$aBK?hTjpghLl1!3w}>^f4Qq9Bzxv_`v)#C#>eAIuwvvUKQ^WdYGC!<0Ht#?BhAV1 z#*+Js&w=S*U^fc;J3HrGK1A?~(saDj)qWb46@!@koP-~onLH#Bn@1++W#bO{YBjY^ z^9>!|P@Xc&L@)PYlEi7*s%r%cGO5)L3lIzA= zfkr<#O#T#8re3pRCPG%=es*G*ksC`dP8#p}5ynoH6M2Gw<%hn$q|<&e=IaPRs!+Yp z`i18yH6+^avfHlw?hI--423xEh4oMvl2a1Foqrwm+p)Ifkb7@cm#uzVp|1#F;Z}*G zIAg2GFF17aw2yzJyu3D$cK&ncAQ3!i8^G$;r*J0UGmd|qCg@vKV%4C7)lvZSYJR~= zYnhF3366X@k9E{W?ey;cU=b+c@V2(lJ%HNtICKH0U3NX;Jp3~trmnrvYi83@q%6Nv z4ASfFa8LmJ3}X#_36KjnG&UA5CTkU|j(e*1WJ_3o-2R+V?<6`k$q5dA$SNO0IULHq zXsn|E=sLrzVEq{nMca-si^LxNuere`7TGSHrDp)G*?otW@ZBml4#=7F$9sOniUz-* z!;=SmI7FBh0Fgf0=1q;*l&-~B4Giq?ExPAVaC2NEtO3jYUI()|H*y~EtIwqC{$X5R z^ValTUY#k6yS#tX+(LUJI zRDa54wqO}}B%se!D+%i_OQ3cqn>>XJZIPFCg>c-|#dLgJxBB|L{F3tUszX%WRKX~X zPhAB76)#N$KTLRYBExw#9E#s;zEBUWwh0I#Dbx%ZsE51z$=TU$11QO@X#3zj z^s~^Bp*cN>FrC;M*aIB9iJzW8ClCdhS_)8~VJ_#^oUeQz|FiA}>P_m9z~e=qiZ@Ee z4gaEeJp_>Ja=H%AG!W5>RzskdJ$d6lKB!p96lw(Xu|r9#!E4kKX1dLHJ~;8W|(+sTc7IzdV2uXVggb-oLSK*)u<_43X+xjlPjZ4{M1=&$B5rtV3QQ?Bkm4Vjfb1CDTeR**~>uR;=#zJ@Qern z{i3#VgeVmbRqfkOZu@DP*!1ufSA5e+nWAE6TPx-e#;1~Iy?G2|nUL}u(iE?3$FrIagt43pMN2j&V1NIANf(e)w29mUcdb z)I93_sh}dIHhwY|mCc@JerFSQgmR$xNi?!*u{|w#VWMrv&)zB?i3b8pqxb4Un7X@e z0$jMyNzHS`@n<&C!F+3%2mWd+9#<9auu`ruRxoSb&B0;Ph{56kY{MB*`Ezq&uaCFPObMfIG&y;#x_xJ63bAilW zX2qC;hskwz&82_ubkXyur$ssz*`iqD?qIz=J+?d$=@vuWS~Gu=>5&h8@AQadyd=uhRXm3R~rnKtEPEq zPXr%xMk+By(WXW#`{K<4Lj_Scu#}gmA{v$6h3PX4-P?FE{~2E?N|yxwNTM&{{lt#4 z50@BuaQJ9NiP|2BP@c>PxV6?YtU|1Q|HYqL?JvV5>QmP<@OXN+xbsCdKE(Q>;9YjMtc}#eFpL;8l3Lf2$n1$P1yc9aJQA1R>@(SI-O&D1<-p%Fw>Y_; zslpj8d2%nU-Q9Qqhvv0=uWGwBT6llME11GV$kQ*f;%cCA^qG8PMsM9n5eDdBG}7<8 zhQNYPr>+b4pnhib|pQ@{UwXz zaZH1eub@#qKE^7Je(l4}QWW}H=Yh7qSi=@X-Hb$C7>Dt>kBqh2zD6d+Qnt2X20Tlq zoQsq5@WkIYQaOZgBW|rhfqU%$VY>oAsQ%fNgjRot6s1t-Hmr?}jrH{O$gsS<5stDX zr{fPF9!N}`J&7H=@hgA)&(R7ZjeOz2RbNhOS0M8^ZfDZP3uY(j%g~FBqpdq<$OV?T zDQ9<{Z@e=LLLF0O0@bz@3o>|F)wi}9MrK<7} z?Ksvb$M-hO-UqiSo$C{tfKCX)otAq~xw+XF$V~DxnC^l2o^<54Yh-~&NA3*cgRLF3 zV0H=G9vhXO%N!}MA0m+xg|24x@Z~yiBcoKDzBxr)lPoOqpkXpO9wV3Et|da* z;>}8-->(B2nifa56A)p1OE#z$D2n-OFA0f)tUr@3^%B=TtWJ#wi5igo(Gh?)0^tt+)O1HV%0ErtwhC^ImudQ?PU>p=i@Go>W%Y( zq_chX89MW$uR603c&|NQ{ec`s7nniatDlP>%g6;%G|%a|KNKE{wdlVnD*!g&O}aeP z&j}>01+3!a$=}1&s>}r+ZDu$^AX6a5F@NG6nA&A`0lLn6CuHFGG^oKvM;(`RRKv zF2?ck`EumN+Xyxy_(G*?S2}U(`@ok7DeYrW(%WXsz>&7Z%F$<@yK^r%m&(Fk7&7lD zeExn|YwG4a0d%7l9GdDZPM?&`Huuo#s$TE2>q(`Kwnm$()4RhB)2Hac#ap+MEo zu>KjwAL6A?wE`2dMZnK`+xqsPD{h?jYMcW%)&m34VRHKhXq6OVP7Giz`T>X4p8k7W zRG7!nmi|wp^ZTwe#d6x;8C(GJOXVR5j=;%8z#%{vIYb2x9RGBQ(57Ck0Yg_g#py$= zb{E7WR3mNlTb5v4a7Z!hd*a>kIa(sMzbIH$=1v)$mVY=+2As9xTC(C_(FYAlH_A7gsBO( zCw{os`B|Dl_L#e_uA&x!{GScFSIqzH3DN1Oi&LHWL8F}$`mW+iq>&QRKk@=w5snI7 z3O7x4s?;!;Yl2auv(XT8tlv9gLMo%^%{@seFRJBWRYLdz^ZX~_QG$+$^Dfp$^0dZC za0E$|a@Uu1fj#7u7YbSf_KV9OpWoQ=MX~m}HaO4zbg=2=ugISD{HcFZyf$D3)mD*( z_TGR0y}>ZQs1zvpa*Z)EK)!10tDil(%-s6%NzejKWdiIN;EgYJcoMONoxpRihTd}D99)P?EKI_qILhugRe02R#PObgRaB~NpB}1$o3ZGV!D%oPbP3VvS zyOV+4oxXnBa&D)QswPW9GQmSkt&8S$-LbJMZ_Cl#+xS%14MDqd+rAYzs48I1c>`7l z`_c~qI@nr^U{-Gc>qVY(Ts92QRj#e2HB>F`J5-m-K9SXODr{-GsFkG~^}nhAe55@z z7SMHBq7R9Dfo0!a*miiWP5?gTVEQh>iVK&6*P{TLu0P2xfZE$DOEl9B5yKavm>3tT zoxt9a`6}Akx#QbZ(=q9r$1*ngzxhY%$4}8%dY8joLq0!0)D$E(P}&#{edumAH+7>~ z`|ZP|%Ns3fn|!qE%Zhw|T>+BlFLZ7>Ts3FM+K*2i07+w)Q6+n;rmlDu2wiQ=LQmon zOA`Bow7`WfksasliEZWEW#)pkO9x-0_^QKZX+ic}$x{6tg**7YxWK4yu#(IB_Cn2x z;TOhRAGSqY+4`+Hf2aQbs(42sF@fp0%3AxB#RN#El*KCm#iM-zDw&L=;YfSC7VW^) zVuj~VzSEF-@5xMIgQk9`js#DZtNKX{fJDM>XhpNe1Z(FM- z360^!F?n}>Yj<@ki{jyT<8E8UPk>~nW)Hp%Cknt{K=mgv2xL>)C+u759XHR1hWgY# z45yje`mcJ4Hr%-gQTa6}wKgwQW!hyUZG3$NXfAnW#++AivfhzBN z1?ZhVD5ifx{o_hzeG4Gj2kNmK%KyrYcFL2_t^lRuKpFeLk32(xoF_oUJoArmE&Y6T z#ekhbF2HBuWbk)}81`zh4d58oME&-UA}tv!efA38|FP^VAVVCS@xN_trk_~*zeafe zHuXPmeVw8KsPKW5w9(%ZxMl@0UPCK-(oCK4e&RWlK%)Wyk_I5lcMG<7kp?ViUozQp z*>~;%nQWj3&|lCKdI7x5|2AQbWCz$WlmMyXe}7SASr`ZS%732CtpI|y|NSsF&;(LI zae#B@uOu~3A|Tnz{@<3T0xkpSjQ{Uc`GaR;R3+!|F5UXt5vzd!BPKl zk0nrE|6f-O0y@7~|M?;M32&f~9mrk(`@Q+u1}=b$`af-nxe*4~t^XS}PeT%~|NP?` zNqhoE@?Xunw%orBoMBlJ3cBNFy8VI6lwr%y+Y4D)#^z<}g@7=pf`q;+Qz_$<5hu_c zg{VF+>25-g*Na|wmTpRVp4{Z{tSn1T1J0`QZ{i164_faQ19IpNQSS#I5uUxb zWSp$x{{9m?Ug&~7(F(3f90_T6c5GN9zIG2_dmJ8|PH*SYHu@czl*d$DQ1&NhjN<#H z?W5V7J6IFnJh(QUIQW6AM5Ey3K@rc5hp(ug+7vUYZX`(dU4B!;b;EwUUNy(Pgm)nU zXDBGA=30FRq-Bq?P_eV9BZ2WT=v->ZS%r_6rM5A*bXajC`hxh_WL z*TVLP0?xT_-1Rx}#%+HQh6a_0a!nqYc1aj|*fd*N^RnMZiwSUcsa#SqzZB!;?HAnI z+y#Av5LGvCPfny*S0V{e7?z&rh@o_*m(9Iab42DSR7^FLhu1xX*S|i!_W5zhoMUKe zTKp^9`wY)Tq2(>D7T%XWrHh|!N81hs-H9Kw7Xr>)bC^Wh{BLF+ZuIs(!9s=e(!))5 zzl}W7GTohGq7PHa6peAb;+4V}Kb3E_(veHw$S?#b;At2?i<(kEMN)IKuY?dLHE$&T zpk+`Fy^OKM5BCv}1UrxQ$KcaZ7gRX(h~*6@M)exAZa+1HNtK$>ty!Z59?EVupwxQ* zdsV@M^cA*n6o6As=ChOL5MnN!q%DBE2j&%!8AY@S3_Psg=>p3lUE(b8|7L)mxR)s0D1(F zej}=O?;Z>kkc*CDRj7y?b$k&i_D(VNaEdXgK!0hM4yQfQIXD`G;_P1pXM~-bmgn%J z!CN0a3de^UawEo+7!gF70@f3e#V#`fC(2%G6BO(^A>h3h5V{1ezrflnIlr!xl=-BbQkuTIPFsspp}{HIfKg`!&pD3>V0Zuw_RiqtCXdIS zP-p3cNLoV4qI*el_<%HaIi@62kU}-~t17k|AX>PT3EHueS?L zwcdD4T&!HaMif02&N(hN5Ev)#hr8YluTLLG<`5C+8(kHBIW#{!G&Ty*QQ_=hCFq*-zEcu0h>gS8+LNv8RHn0ziaqq517keG5%(0DjE;dYA~+6v&R6Y{%N` z)J2e%l~zA(n_3@Hf*igvle8c2wO66nw^w1XJNa^wM_0j5TARr<9U~!xSNjulfbGOe zA~gX%4M$$A?XQ8<;tA_+8Ry_si^=Bu&lX38rR&XYPFD(hr{(v8)I|78(5yWdi!uNT zhbQw>;A{>7uA%2Jk5^K-L*sfK-t5w1UI#xuhoAxKcL))1(&Ffr7%sFq%}7VZ_uv5k zeFmG2&#)X*v5Y`lJa_bSdo}0EDjUXdZd*sy16&-9ow+cjvIp97ALrW%pLgWF=?yVo zHLf?*x!ad9W?%&K}8y-C6djnTv#MJ_MgL5NU9wnR54}qkdL9knVMGJ$$iI z4l$?jP_CPP<3m6G!4vZoCV3ZjK-B+1EJkn~F( z5j>!y^H%DZ^uOukzL*%iIc@P@+$y@_>~P8Q8NX>65ZO3s+Q?qKxFr$cG@r=OO;)D; z<_1a{bT+wcJ=}wt)_GxExYts7ogSEN7ix9Bjm_L;sa5ZK1zJRXYF-+oW4U!ijAYB` zGu$sgyPrgul!h=q-*uz8n2evcnM&J+Fh!?E-#R=xlDgQu$f?t*GsWJaS;NAzORa}@ zCv}*vsL8@DbaI|U!LE@cU(@<>yuf*7YmoJEiCZ`Z9sQbc8aLhx9w!4<05TPl74u44 zs0TENQ*BG5q*Ki}UAvQ0TUEqf{iCs}J@?xd4ro~XW}lQuHGkNE%eta7Q14P_k+a2P zFWdEyu^s0FwMo`f>=D_bW{ni0^?C2KCsM-8X|Kelb))f~I^pNba3;n*y}SoT^HOiY zi{*BB*!6+!&Pst=<(IG;$?ZT&G3Lg3n*r$|oSVnP+k!wsK1t$u1142x^wTcfWI8}~ z^wZqx^$u#hvf4KS)=AY6n!#5>0#m;x<|J3!{Z>*Xd8>2`Rh%`{0=qn)wh3d%p>>Jy z&o_x>o)YFw?0zVBrSadzNHSwWR$7<{jy`VsHs)d) zD;bH>6e!?XQyqdzQ-wbgj02460*zDddIss*Zw;d z(m5TQ(G|(V?(-%R7VY0&-~H<2y~1|T$wKTVUvhG7NAtBWe?Yq;h5#bP5l*uU-%5tk zl(<@?GOyIvnNA9quTjoR4dl~UBvQ|ZbIsU>s1=vXiP2HTuct%2Z;K^5dL>%ViiXs{ ziO1+R!c-Cg#%lcS;ur%M4@Tuj?VsC6={Qv&QIm`XJE*kwIkBG^Gd zPJ^aBE)79c`$Z@0Zm1yHc>ERU_=vr|6l*-z(zSPiO+$eDq_x?i_e&ZPl1gQ0Cc7%& zCLXxSm(mc}We+0_O@6Xysq1}1QetNZDf(G%MBGfO!e&lZ5UWg$_T+uOpS5D8*sGJ0 z{eBO_(0~o2g2ngCokhCMm|Y?cVT%t$s3oNNx>$$@5h*eivYyvS=`Fr*xfpmy zmBPMHF$Sl+eQMt&tn_y1ka}%CN4zkdBIXKoYWV-J1kS}AO(O9_lIqjeR(RtFFEgpf)4og+hYiw=c*fYc|V+I%Q ztyWp+eOK)i_!jysR{DbNkcNEV4gt*g#x{>fcE0$ zuE5x|Dq%G1i%FL zm^-7nZ>r6v)k}ys8W$9BQJI)~L16B-O}{|fpE@*n@J1CPP*T<8i@*>hQN-rAL<9qM zNIKmZ%{rlOO3V4K`6WwCquIHy}7exm4#mYR$<^WOUzbn^{=W;)iaNuxB@N zdAZ8O{>T*{UdAS{s@q%FzYx79mKa)=N(e7w5U*PQGDH=j)q=xoV_j$_U~5D0NLDI< zn}N-H*!Qw8RG35CjpUbqV-aksK(oe~?W8Otiez2x~PN!H_Z}IXa-Z}njOD&Mrd>96s zZ2g3X8x@S}t2K+12qa!XRR;@F#6orUu>3d@r)MaPD{m+9wJ+#&>w4BXC;To-W>CgS zmr^Sd>3%x9Z>x2{&>(_Go93oW_NRv-yu=z}r03=4MDfc8+@KBbXud`&yOuZ>y{y?= z!za;fe6KrhQ$Y)U5L`J(t&HQ%4l?0ABj^(}92OvKIZEvx`_XHE_thS24R@PDW03{KB;vg2%R)t!`<(?K>yk--MO6@5xQ9(G;wtf?Ks#U@Om(B?&VU$ZDU^fi-L~>z|2@;pNGr=;yR* z$)#Ms`kCMTYEE0)T~KOZ=DSLZENoZUxUtGKo$rVAuOUO8leQK#Q$Mjpt4Duz6lI6q zJzsy*{RpJ{Ypi3FDrW_~U^aF-a8tb64f^9qIyQUa?Ye6GuG^cd!gNO48CH?|g+H>7 z?hfE~K)m<`E$5GdYL`%>)E+3@myr2(3Sp`bv*3WZEt?`rgbf@pGOUF7|EB-yTcMo2z>Nz6t74+yYTfP%&zyeG5rQU1tPCFJlB zMvm_8boPU8t^ZU5>XgVlTJgj}P;?*veYpEw@Pm(}7OXs96--nQ0+PQm?~gG&s3(V5 zn<-k<5W-3LO_Cm*J!XWgbGo^l-=p-4uw%?j@H7mtS{CbC`}VdrL*cgB%3(dI*6Th@ z;oUV-k||x;0YitA8GLhTTCHXvsiTp`gI{~~ZHXY`tyHu7RVSoE`qxJPFQ74_ln_kA zdkxai_h1{Gl3_y(X6%qqSZUf5dgF2)&)P>{$H&j1uc8acYFalwOgBATCxz3CDiJ=yFziGw(0_PN!Q{Q!lraVI zewnelBj`ZNn1vuJ3CyPQw;zr0Z#(H-zYDu_W)?l1iBMP#y_|{rUev_5A;zmb?fr3R z^462W1I$(CH}ubR5Ns_BKHr;K-~;g)%s1Z!qp5s)HNK6!cT*6GfQEoSpj6dc#AOuy z9{*klR!GK25BcLy$CWKg5z2f0x;+3dQbDc{Xmr$TJ&ko^20CxjwxO-ECZfy$p4IE9 zPut5UU{!U&gTJ5$TQT6Mq^IOkz)COjp2138H($sI(6SF1NO}> zsjo7rzI$Xa6#3+2L;4G=hE(vqt{NVZySdmI$Na|-$=#DGuv>)$?M})V+z<-xN&e;;Y+739(gkOa|sItAG^h*eonT= z^R+z#@JDa2wuknw6Ua2_pn2Gjf02Une(1`_0=<5@^hgJ?UMc+re7qnj(rmpF@#58i zetrTLp@+J7#xIVer4~;d62E7p;zm2Pu+nEn4>qzNJNk}x-zs{(@q2dK!4@=>Ou6~4 zP@3}YDP}mupG_bzX|F~iZ$v!LVi3x@jp_m_5%}&C*o?y9fh|TmNKab#0H!l>igJI+ z2>)K_li=#-&kaQ$FY`IPO*6gF!hn@7u+S-LP+&NPyD=jZ#td7Zioq1__^pnJ@L5!V zOq}FWNR73Aqq9F4Hr;;Nb_RdVWKIL+Fde1^w@AyBG+OCA$L3v=R-^}?e$ZhCV+gzx z?i8~ft^{^^!hcP|1@@z@OM*_sGjV7gKSZ4<%h^ynH`?H>@62!;ul<=Jw$q*3U&d&` za5S%|wHJGl$ZNy*1-2HjJm~=tm%2O7&i3kb{&MqWQKn1EOrrXDDuhX{);i%KhJsj) zrhIjcnFRFB$EvAVr|FqAQ|IrfthRfEaFd)A3EL|O6Q<#MC;a^l!CT2LKvye5aNKDo z$&PdRN!gu={p8fOr}vs#)jG)?>!-_LI{K+>i5;4z>n|A!2&4W_4LkT^!rdWbd5T7C@)4ZNINMU*amdG0@8(gzwHIAM@@yFl?SJTTF)_s8$K#ve1UA zfZ;a(Y=r~jp^RWYV4kFa^^<8mdqylv)buirN-P67D@kYra};9$8Bb{0@SkBd4;PEz z(s!M0!y^ld{4&8%Go)aoiU7;*w*c$sD4|ve0u_?DQ94#LO$axXN+aEZK+G$IRPa%y z{M4GvQFXS3VDR7ZC~8d6W>S6FSdxxIL#?zFc)KyX$U89|!0Mjk*NOe?B_3}p--X&4<;B)Z%%_0&S)wc8Ne81 zMleJu@3=~(w=GM~tHhuWes616j~o17i=ZC&O%6Cy@GO4Ac8@?9-%a9+?7cU|NrwWv zYbI~I7)VN$qr|MzG1|EOd>-hGy7JEAFrk=F^k&Xb;GIxtp$Z6wP|q%vb-j|?CMJ5?9L zp2rk>tND?~Sz&`E!oM#P`DfQ^DB{fm;Y@2(rpvn`Z? zdx_v6>$1P7Fkf^95hAQLG$#D{e^qB7QDpfF9j89ADt!Tt6-#%I-mW>=-okL=5TTJo zbmtSZv58V3<$2VFAujJ~m*k+jGw-Y0OEif?a+4(6%KTHLZAXr%(3m7h%TB~aXotaP zuZAv3^ke13T*A5Ikt&OR`-sLeZRx=$b;`jAcHch2ZW4%ISY3v}UuTr(W)u(Nk^Zy3 zY4pJQa(Vh#5S}2P2oFItY(t8=S~S!X6*7KZ?##;TMLr6f=d#nTJ5JC29TTGPaPfBn z4=R9gU5Xh{L{zgGv-;s0W3>>l>xvsM!&py82!~%yD}UQtvKXi(9x3dHSYK_QODm<_dAl9BG=rmq%{DF_vx0AzTZUFU7IdGPx{gySovTo#3+ZT)UxGDS=&7me% zmQX9~B%FtiI#Y`S;^Ptfo}3t3(Ynb;b9&@(w=W@77qAc$sQ~@T)GrTin-G&e?!w~M z37lfZ%rwQ}+`{;lDC{_U)*CJfEz+rfhhSLi2vxPh%hM?px18g9>)89am4?2z#QLZ0Huh)UTQv4M5z3u5 zR-ce%_ugw9TJM`^X(j7*mp_zV-~DvD|61fR%~w@?xR6hj$Xr0Ka~E(3g|CL63)(1~ zYwm^mW|t8g#(G+(Vj>2x0(=ao1^?&h$ltp#d3AQmRp;0|!Fl7ht|MV<@6(?LoR}K3 zVo4Q0HFf0yl;lwxN)vUn%wRE_g?t?bg=Oa+7icL(n`Al9dUoe@Q9!?V>* zP*UG4Yy*nYw^r-T4<6^c} zqRY~7fOCA8G;G=LrrgYxyjAo6DvwF*YgYXsI>Ke1<<9!*GqH&%xl%3%4MVtwJ04|_ zv`wY3B!*e)5&^dqgzvU3((Pn0Np*tcO?a+A?w$KK=_mSjNmWYl-C5N)r|v^sbExng zcd(jskm6-%ihZk;4bgARI!u2^{%oY=JGxMbD*>GD5Ok=`%iLv;Ege~B;=BZOlV653 z1QGOTv^@DqpYKeY3nNWSp^pnFtI~Pu&Dvb>1|sZw*de=X7>*t|e+_`Rj>(yckzZxq zTQLS*@;I~3o-vPK;g|q~@Itqy1Qp37tz<_k0Fp7$<*t%#8gHCp9v>KohX!_e1u@t@ zZGK?gm-NCTp5erciz)M5k*K>@ zdj%F%qc5uQ-P!WV0iwM=SXBdD0-wT8u5b4mo=VfQ@{NxD=D0DZghJ`nU0IxYT|j~U_ILv- z%unrW`oBpt1LpRtv{ongN~bEx(K-KZz($h$ewiFxTzmV3yT`Myw_4k0jCN5X-ia&R z-?*!PX#AOUtchuk|0Tj8>(`_uB?A#DM{=cvM)M@AHAzE}MW*g>Ga~?+pKmquwFHpp z^v9Th6z#^eqJP&))%loXBXv&Hs}YP7Eo?E*A35J@7+seHAx^;o=!E@oqm|R7AgM(# z5Uf@sC1TwEFnp29edV6}5Z3pv+$wliA2-8I%8p&VL%rVc+(;BKgSN_(P3cf_XpW;u-tJZ%*+h^Dh2EBIe{SyEyyZlTSMOn`Ns7V=Vq* zCCehlLMpxf(%1~RoIS4sIb$xAwz*WmFNwoD`ug5T2I_%;noBMtzk`@ZE8FLEgZvE1+Fb7b)Oy;@$0>4M^ z_YqP`7IwEA6kYYcljxd~yW2QUq!OmrBe)nFCgYQ8_%y*e*OG)0kfwcZX*G07(65&7 z=`pTx)O8?s+vl5HyqF|G0}@d?l$qsua1N6)2Ol(u8y5@rW?Rg)SqbkUxqy9v&GLN6 zc^=8NAEo-nJoBgF`byY(O0)kg_375F2I|%6ZdJfV*;;Ppn7?%Hcph`#3!TyrLk1U7 zQRvWs-kyt{KWj2ZCjAXu{qHn-^1O~|%sN#04{04EOQ^y(tCUyjryDL&fH0%{k*>-P zxxujVB$&QS|3sjERet1Qc8Y~{l0z_%G$czy->Uf4@|D(0GJN?#`Mk? zqi^#QJiq%^w#N%Q>G&H@Cx4oi>(*)ppc5!?54erte44g{2a#h$CJL+bziyro*_Yw8 z_%Zq5DKwz+r@y+3^?0#%SXbVJd(?iRxAv=z2CUJ!#yHdQ0)7z*jop^ojRD6q8;5@> zW~JN8+PtA;Cry=@20W6dDGMob`FNs!(`uQh^0^o-_rQG*vv5)i@GtmGFvmS80v>b= zL09(^y*k0`agcC5Dkju!cWmT)?B=w|c(b}I`H01fD2^W^ULs8tEm?GRuU`8D(*oe| zH8=@C6z^ExX9quRw>aU8jd?rLb9!?Etf#BqJxyuG{UuwW6jZpc?Z4RjH_)5N==uGW z6474&vK5ei_}Altkj*hq19m=r3#`dC?J7AE2BAAdACZ2btqiM$cNL78ceGx#6i#ll z8PQ3M$Sz>~TBF9MU9ry8k&i|c!brNVKbt3H3YT!>F`ub;-b23WFMS)&Sk6QnX^BG# zf_emMh?0c@`oVwI&g2+9Ttk_^uxi_SEQO)X0a&pL7;R$XZx6h0P{|E0o-*py0O^GP zXU85>TU}m8N@cy&;`~~meo^u~`lpn~BEm~Kby@Xn>H0k#g{VeV*zCT7fB=!;Jnvd9 zW;}m!y_%5!nzcKV6zm@2Nn)xgyU4Z6!7*={c39ug%9W;{?$)OA9xe?{}U+g1PvStxB$1Hi8LPV0!FnfN=AiZP2;tkK` zToA_;dZbXO50QCImh_7+T!Kx_#?#+US@uc=HrGdv=Pvy6xh~VjH8@^&DJ#Uug$K|& zyaol=qr#HP@)Cym=nsFRk+UdtW{Y-sREWPyv?K>9}n!gZ6D<^|x~i<0lhah;kDH zDUJhoRFb>(auZ-*tE(;fABPi}fAF8m5F{Y}b-rZto}Rv{ur#T(W?&mKIqcz24tI*w zsdY*aDGFFxsS`pnGq0(7N7q80#soztevo>TPLQgSYLR9VC*Ii;9hdVDjn9Ol#A*kl z7p^?89TjSG4sWB#n4QJW0AHQV9HV7p#K`Dw3+2}7wbKswBw028QXF|%%uI|kQ^Ke! zuNxP4mIul&~UwsBtc~=^fH=;C>MTZ+ON?;#mjt4)Gr|ak~6? zaP*Usf+TJH`a*d5JQA6b|GFG2`N9TCR_O7z5Dw^}mU@EU70T_Ye--hryNIC3TE9 zPCQSNbm_9RgO`)6dvjOj>M)_@$Y)acD|M`su)^i)i;GpoN%zxGc73s{P`UBj=dkx| zz^dzJnr7s>2J?#B#&5E=Au$fRXMyq_n}2x`Ci|A=H$I)H0)O495;?2!JkO_S96aVmHn*9L;FCeWG7nxqX0o#;#B zM{1;sD|`LW`3Oh$`(h|Ri2kL@#Zw2o-9gPS0;z%Jots}CjlaahJdllT4i*RA>dy~( z(S4PA7t=j|5H$tNfq?N9lmHlD1Mrc83emUGzSVie?L{m|e>;HyuY~1#`QtRKOZw@| zS38lg8Icir8zs3BYVEuTn+slljND&LD+O#Wv|b3a{?py7^GtS zu77-qBiOE05ft{An9$F&WC4?6TOj}#XKiJ1C~e5atTGy-#+ws1t2(h!fw(&FKpYVI zNhJ!QM899icfRH^;QV;gN=wvt^1K0n8KlOc0{Sk$+s4}gXLhw5Iy90Pa1$bs$k$VT zXZL+$IooCikhlwM@g6LuCWnrvX-3Y{z=7oj{;Aq;V{by3KQD)>Zlr}Oyx@%;_T6ZX zQ`D5)lt2sfr9F>o`wkH&Ef!qfc?m%j!c3qFJpv3!Y_fjoZ8H z$_0m;ljhr*qS?ph?%!_)8}F>#mlEXi0MrX5Ng?XmtV^s?EA!kqeU~Okz1#JfiE7_9 zuA-#ST2bv37Z8I1ax=fVzF=y+b=r=$zctn88|Shyk^^$kjK#=|RMp~xiw6_0mIoWH z-Fa9&uK=)lez)_SJ?Ck;gb(FX>uWv1lqA8`oH>U`mwQ(vhlZ=gX7pqrx+Pg9BxYWH zm-)uGF0O}nb4Ay+bW~*J@VL0RHg7O3S&&;dH@O;(2V#X+AHnH!8N@jUCZRw%bn88m z2D`hsO%89uTbZTTlTKGxSG&8*uiH|1tmYeBV;cg9B#%IYdLtZQPD{aLz!gN`UV6B{vhbUifGL-ectP7a0hT3V_1-Uyd9s;f)#9E(9?c zOpo+G07F(n+1%hSEHKQPk$-T5db4fCsF`J9*hVgYA$jP0evtqvf`WjU)qk_|1f*@w zhCdGif>!^%r|F|#$?$)lHN%f@006b|U`Rdx60>ga41r$;;vN5&11Q?y*_;6x1fJsm zy9wlX`oHC3$c_ug%9`+C5J8*&02UcN8|XslfPp9duW#+l`+J-a_}OmrN=^8sn&IF;_aWH=7X>i@iVii9kPHZuJ#0sJ$v1ig z_gMnt9z4m7#S6w9IJh`WvZHxoA|js2pEWg-vynfn&Q4E_%cm|bJ}u2~a&ss28(&>r zb#``|WlVPV^Izy2R%%iya`Et7-#m6*zadZoc`x3blKc4~D75)`55f~z1hs`U6O?uk zU@?@2n+7Nh$$^mCa%gkfe2#c`$e7L&SQ5577>v(&_!(-Q*JU}CUMHRtv`Z}fMeD2pPQQn=fGevW_AjYJ_bTXKtSMdu+LCcSvh9?KI?_! z;CH!{GTWM(nijq1tTzBo!$gq|xBDd=Ign?MQ}$j z=Q6X{uMbp4r6qqLD@TrH(rfs5K%UY_Z^JxUhG}JGl_o|O!$Ih4+CqNlla1$gea<4y z?|QaZxwO^?1>LgACG%9P!^>3ZS3B>`mTC>twjv_oOfshMd!kkfnWrz26;8d4|Llpz zW&$uYehs7CxL+tuI-_)?!P?pyb>#7OHFmQUc3O?)T+LX(e3_Ayhe|~_^EY^+P-54}9iBFj&2y{!36O=ppRd>GR{o|1@gH%#6E349{)G}2&K38Y^krBc608Bi)JEmPG zwdzx4lVHg9TdOzu-#^5W@qGM4N^g6(()}CInzyo|JiAA%|I*F+3I~iR?o`yUP>>;J>VEg!CtH_(DV9px+)Wi_^kACD(NMQIPl!ELera-gYO=cC^@S z(5lNt6`rw~{nPIgk4)x_L`4zxC?kDytUM!-xgM6UwtIfM)U@Pqo@Oi>9DO{iiRwZuvsFP^7|t%7J|z4C-fjZdmX0eiAg z7f+HyE7@PXX`15mpUc0jxSp9fyADT!{#C=}QIHZAcvZ!uw(+Y_c2r!g^L_;Oj3@x3 zZ3pZc+hRq&&&~n&O#P4jxG`t+YD9nkS>+OZC7SLunH;{0qot`i8TkPi97#z@eq~0e zP;SR9tTak5&jWvlHbEb@x}Y$L{?eHS_p2_F#-m_Dj`>DU66(*5Atd}EwTVQNN(aBv zge?K%r|Z{r2(rL!mCZs&qs>Kc21;VwJFD*C#?$=;xibIL$V@B(*&_*w+JQt)VYY;6 z6$H$)lM{uD>}+bTsHF|kZFcPUjsqQwwePnOtx8kgDP6;V(6W`8BN$g8tSyj2Zy<+abd4T2TyNiYg=sZ<@TwYN zu~ct-{aR|hB0)v9q)F!&{wTt3>?BCN)*Ev-U;qj7WJ)jB#D_D49gp&jMM(szo-{5f zNY%Uf*UU`s=S~M{5+~%2op?S(namuCvQS&KduVSd~Y7{dMxF_qMcP4h#}pUe_1^^C)W z2F>a>;gzAU)y^xrbWl@`)O2xZ8FC%jy`R323f8cht8rXOmB>?99~Kz|`*0~mtd(RE zaoTygTSHMBiB`gjS{)G37_KI^vUj5#i7Meg`1<-XW^D=MT12Qa53q#H4WJvO51}W+ zpCXqTI^(}2;4J76=`_IKu|NOw-pDlYjhbJq5#ETpOd{Lf?1It#Jf15GAcOFKARGDL z#BT6Ph&uies_L$_ns%3nFSCs?!Vu?A>*yd_`r4xO)w8M`)FvaM>a<-h@n-L`-?$wZ zDO9vx^wDhKcTLeY^YhAGZGsGX<*94J!ouxGo$N$eme$rk8oPXr#Wpe685L!yF`sE3 zru9Z(;(AA=b>ZrXEl{oNoo2T^5go`1>u}rS@tz9hh2R}jE8|m!7?Il<-fs?P z10M}A{uce*oG*YUZgS}sdj{)u50_G95V8b_cbi5c~Q8CTx zQyme<_i(F1__0BTzx8^vc1uJf2x8{_NQH?KSS-Z?zr_o0e)@*A)sX>8q@|FuFp8BIz(ZibslR?`R)|U#543 zDp&bgH>17m5&Hd37rE)1v<&rhPGneAmn$LXL6-ez%~<{`nQXXei={-;m-Ic%yY!J?8?_O|LsAPaE(y>josHG*jNE&R|BY#kkyn4DB;(#BGptD~4 zKEyFMLXrZ{)yPY_QXxBoz|1vEH{W@9Dd*EG2qt|t0s$2JGgbH_Kb4*!N?|$)kpa=K z;s{%*$Jl%s?gZT9b-WFjMc%$?T z1GnEhz;G0+IqdO*yF--zRy-34zqtKMZY;A{+BFQov;e?j=Eb%XRg1w{>DW=yv%%qX|v0Evbc>b`0;Y%K; z30;1$?^Tg$^eQ8z>)w{>&r-~Zy#R0GLlvpKcQ?+t%L{}siQ>I2~X%=n{1&x?+!!!j<$u$9{yF-SMp85sK_uK;xIUE zHwHUWp;&UGKeQt6m>5ZjfPe0Y#MPwOTy)rHD3F6im6;{6O_}8o{#qjB0~XQar&yyR z6ilfmg3U{PSHq$*`(j=<1^Rz1s%mTV^UXa+x7G_22>Azp{&_2E>X_)3-Noo_kT$r8 zC!Vy2M?qlPVDG>`sBRsDs()Svp}Jre=aJ?A-rfP()?oHq#cjrY>xX%G@xIOXBPd`m z&$0TAoZx%&b*ikgIXPdGe1bOTC>D&9)XXPU0#lz42l`7rtP9n?ZB}64A$%miRP$UC z@4|fQPs%h9vFRsfIC{K^+ty2ZR|CV{TYP6W<*di&5!8kJaFSaaBQ{WaJY1)0wRnvj z#JyDWT?G=n{Ijjk?&z&w`o@2cOw5Y$PFgCLHFYABR{ zFFvnRF~N8@C-mq=^EXIIhhRZBbqt|Zo{z-{am;?zBQxK0uJaP|UtYg{DpiOV+t;cY zIok{+YSH`CM?KdIIlpKmFV`Ln=%UOVi|v(4#wMINk;Z)-AkEsKz56kK2K?%S_v;NF zQ(f=G_ktveyxN{!_Yz9&e7+t5dR@C2hF0D|7qUP@00gDb%YRle$mCjDqC!S%uu?s*RRP zMj2F?<>I^iv!0@~zZm9|sWd&aY8p8%eMMk}@YJ=@LaD@F?Ar+06~%H9bhwkKCH2Un zAA>9S&)!!$H&6FI4hyP_=QOpq>V|=*5Me7T#2`=mrfBfxYZJZjC9^qU70lK|AP3dQ71TVrCz@3Fm0jDv7l4lT;F}Kany6;{p1E+ z(sF5yn0SEIfJ7kH{FaD#tIuv3*ugH~q#l=|9e)5pMfSU=_Y&&$=P61}?3~>->Gitc zNW{a6wVE%B%!lZb>%XJizJ?-O!5 zdqH5IqeJlJb0f|qr@dYUB^>v$g>Qnq^tm;KsmoH;EzJf_G)^M>IZG|Z7c8u(BRCve{Pc)dL#Yy;%7t~ z>s*?l(q-i#W#lqay@9T|Tc*Sbce(sTFugbQ?`u@jeDhZVGJpi4Npko=HlmOil_5?X zn$hd(J19F`u4{LSuZ_}52{JE>pR1F|`O6nsWl*BC;cxD3jpL%mgFOycWx1g7-z@<0 zhA}R5oKPDJI!h|b5FFo~-j!MSlFw~peQrNED5S$y0aCNQ9?+F|2a@@m-0>%eaf zqkoq&gsvrEI7$`BlZUNUT zo?5GE_>FGh3qaV3al2Z}yMh->=f)KB^}6ru*uvVob*MY9G{>VCwFw zU@?3d^LcQNSej-S>qklK00HbC?&RkyAowMK>alu3t7^De+9+aJ>@5fb?=b^<6x>p#BEFthoDDPJP6NedxJrVWPf*>C^p{x-3d+_n%U!ieItSsy;wfTN0aQEI5Qw)V$3yNd&7@xE&pJF?0I4x=y z4_zsP8e+@+S2(-Jt=2>zpT#F(WPY`aNv(Dx@08bJ#U?c(=0+X+1lpwQN0MEN#u7PM zeQfi-ou2z(3km63fMFmKM^SZ|6Bl3bM}IZkI+rM^%nEJx&}BV^1I>_|wP5>Xg2Br- z?Flho`vPm%r+0L1m!}~g_1a8;4^Od5&kkapl^nW z0>#8@ekc6iHN1gxE}ou_+dnrBy!eGaV@VkZ2bRFu(%oC9vwT?u?sDcmSo1J2X?+?fMN=`L-` zOF)p~zOIkLkZ2qNmakK0wd)Vm)4GU1r5>`r(ETIH_cI5NJf5CWL!NXg>MK)O>cRA~ zh3xjz9iM;SgB{W0Xq(Hq*O~3D2t{KcLC5Os~v}P{&J3{EFSr zHLWQl9Y7fl63G5wq3#@oh6PL{zZa;%g_Z^Ue~P{Y9+)%XLY<7;Aoxf-H0BF?Iw3WI za}sf7>3X{=8SGQJxhlc|@go(spJ>ndQ(Px#l&LE3jz6COo|qp`O3hyK*1PEZk?*nd z&}GRt;grA1oX++8r1Y6Lw!^XIkDIwox^Z&*4&9Iy*Sr%;ko>T(z}2x+dC0a9pt*D0 z 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 literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/dql-syntax/query-syntax-1.png b/docusaurus-docs/static/images/dql-syntax/query-syntax-1.png new file mode 100644 index 0000000000000000000000000000000000000000..89d35683a894d8d464911cf1060d17e77bf9a905 GIT binary patch literal 272824 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

dZ$;d;S`?R9=H-&sG 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

@HrM8l@+&J8GC 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%0AXtS@G91RXi?8EX*vE&3V6A{4Uz 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

  • ea9xv*Z)4*n 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 _dglV)~ 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 za�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 #Wxs^ZxbOOSu)APJp^F#%^VpVt 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�v}H)u_sg#ZzR&P1s(g)`@{6-F?15k`=*VwOmPD8&7S)7D4-{Pd0kftrMKw z@gyaZlbHEahGA89I5V!a0w{TgZ!X;u(Cs#4q`6`?DGvqBo%{vkFG=3c4L-79IFEw} zi$Z83Z?_@4^d>}aduH!Cn>>PaAT`nCFZFyx!Kl`AGPeUTZ+;j*^<>&-Z&bmv_oHd4 z)8NL0QKhYt{7PQL1DWRzv+cne0WbdEs001GP~sWRxunXLHWK~Ji%O%0SJG`+cI1SB5Xx&zhdSrA)=vB4muYEEg9%5~dZ6pq?4S#5VM>JGs&^P52YA{s zf_N{bFTIPec+9bCmUP%znN1p~dZC1ecCGf+3-OqlLHM(0Iz9ZW*5BmqipK49?Nq@t z24I(mGpEz)Na4um3DrL{%zPEe&>${f0D2!Q`Su%+$Imu;Vp7$0Uu%ttNB3!@VGc%g z3&te7dj{mD_?r_~#ftfUgwoI*VGzKA<7ylIEH%V|t% zbI&D$ECz8I6H?CoQbUS-R&^ff>alFv@&^t6HA^=~#VwRI?uFA+_O60p^Ok2Oar%Kj zv?zTMw&C!}t}V#jfUmXGr0V@t(Eh*;3ROxnlY*n=Kc=n=w?+o7JcY}@Q*Hh_yD3fK zVHWW^mtwOZ?0NW^p||qJ`mme#csTdpSO*`{WXABZq@?s|pD=DNcEdu_LV{0Ru+!uF zsTWOf_(Up(%YQE=#u&8(rQGig&2rMs2=lORKA6wt0wWaWXky_Y_y5fP|LU$k%)`k=!Gfop>zgLxkte4?sEJI%ufZ%TX;BU{tAX7 zs_rLIJs$fgfDQ&Sn@(l|`LkMaHDZoDoO~kp%aUkW1h465gl<8}&;nvsbtwX|?7a*$ zGq|<&$}e2YsJC@)S770CeHrk?m{C#6khmmU2)-D|l6B36*r}_Z{+cj|L)*+UkQqEyk~1vQ2TYWM4rv#ub;40l zOr{9x>%j)R1BynZPjs)s_FzV|P*Gi&Jqfl=f5Cg&E9m*5daVQmiJU|7gJ#ScMhf1d z`sbOl(H7V9_j}7g87dyQy^c<)MxBF#Js$nRYM`ijNWUv5RYJNvo?GnfLs{Cd&h~uC z<&J?1)Q00xRpT?5jyCRsD{S^=71m*Ae>Hqn8Tg}xNM6A#EYOWqIciS7MNL!-R6p8v zz(*@YynA+&u%{8LEHro?{83V-V*~MGmuL!>0GkUPYn(#UgZTJab?*u%iK39Eq z`K=Mb!X}zssmbf5D$hj}y!%!Qf;T_CR8|`;v#{X>vouvdd;DbV_UP<=9~JB5(r2V? zFhJvq>asgZQ#}hk^cQ%(NP5mFTGV+ok9}(*fp<32hM{8Q5;x6y)k49OSEE#50O+v9kt^8ObW%+8M@wIKo_PrQR!iND?$EwB**dkk*B; zdrPl*ST$InHj;bdZDOH!zv_e*UI9!D(6lA3i!D?0CR z0h_7BU0!BSeA|!#U|ME|VN`KjVB)h!d>Jy8 zJU}&=3(4OitktA`9aTD70sp=8+Sp-Y?`EGnEu4$=x88oVf(i*O~9YGLPW)rN;`SG0A@*|9f9dL_{y|2 zKUnNZ?H;2=&JCndoAGcbDwk9&asSVc*sJTPf&U|g z6O9K;ICYDOy1E8YcV;n{ntHRz911JEFcS`}7w;|JdO={F0eZfFPr?9178I&p*|m;- z6x_V|*1qo;o3AeVy}E(}cSmaP#gL;g^xo`q)8hGlyVZGuc;IQcf-dy4%JuvnSpIwF z>);XtYGOp7`dP1$GwAfx2`j=KM*0$Pc$qTy$(26>>LNQGo=0ZTy$S(cM#QXAruDy| zwfgZm(8VS2(|i|Krj&C+K6fFiP*6q9KU{5Ey&R>bfCzp58A^@^lY7wV4z0*pIshtsH!Sox1*r(D8Ndfzwq_AZ-QX2ax9(6vGg^Ea)) zo4}g)k`y4|4mL^-V!-4-pfXA11syN=a_k9C4#)F5dFqM9FXAcBBL(oWt2|N#Oa91! zR!>z2PYph10tJxk9djxmJ3Flvb7>Hyl>u|nkU%}-C>mg=6ug=Goz(f|*qED)6xOBa zS8cuW^W78VXNT%UhaI}7eGzI!kH42jvyNy+7+lZ%Abp=Y{UeW|%G$*fjxQ$WIG?p& zuXha+GJfhS#n19ZBtB*ytDN-S6YB~NgNQI7{ruk=xWy2N?)1op>(2cA)5W|z3oU_Um^WszFBuK z3=yLJM9V)B)v>g>5YEh`<&b$JLHP}<%i>@Eyoi#Ki%_AE$`XgO74>DzCCZ z8l=z{MIv==c>7!ekaLEm39w*;4WSsT*MN?es1Rwe$%HXSyrT7g zSpcguR%>$Z3^X^7k4}ab4~4d%R1LYuxsbRPQv-OHeqR4YQSUv8u5REkkF-%ly=Xf8 zr9=~#N&o0<27+=;@bF?#*e(oheqW!{tB`AS`J#4(HHDJb%Y{xNRwToLI=0*C&%)4W zuU8sJnIj@~#6=RLP2y`c#%(?^#;sTCpkPn&VTlHfZ|~mz&B9sL1w?&E@0KBEWue<>KbDMt?vYwBmL7 z8;Bp95*nD~>AU*K*oQJIE%_w3*zMQdn&As$Y@qAmp8DQGPDX<^WixH?%c;n_ANN+J ztMvTk{d-tPnvZ*p-s$*oQzsy>TGqwVa)bHuVyu@Eo*WdDk?~yw7hep~@x4RTT89NL z*zLqHTy^vWJi+T;!`+ZhbT61q7=uy} zDnH939`;`h7)$L{lRNczGadckeERA2WaqL_ z6#8y}M{a&Wkt3qZa{6uJ&$$QsT2hD`nG~wK74()(MKb3qUzU}f z+r0iGpr;>*{0f>6^=t6lUsulTP9ME&?o7F}4yiM2zCKeINbVTwBtJJ-ZG1v^%2?>* z`q>6wyO`tRJ8D02p;|14Yp|Ifa|!b-ZMgmNZESInxXhaDYvtnXQqM>xPI>(ceS&>L zp2~dm&YeX)$UevOSxBe)Zi6=`Avc|=u4`xdG66Y z$cR5cE&bX~@{C>LOYU;i9bp-){~;Eax`i*&iabCZd^H@QiOs1&ofrzPTqQukMj`QO zZIlwbf4p1ey#`3|-k-6m~zQPiVb9nJ48_;dNsu z)^y=7C#)@NSten+rn$caIzm8dWs@%e|BiciPikyX_}yO`zEbi(m2`;s*EP`ypU-9;#JtG|%1yXT$eVY*rO%yorYk27}z zZpgBeWL&4UE9#eBv@Ik!rFSyFqm@m4e~ve}mzq@As#!k2X-z-}$9#T-`Ve>dDdS*o z7iWU~3S3Z7U%X|Nc{OO^>5aq5#Kptz?WDufj0nK@ad5m9k7#$!tvd;8ClxxIeWtGS zW%H&1+;OPC$p@%sn3~1!x}Kdk%P1JIBK^#IHTDBuzf5)4WFCtLOEA{OpCIkHOf)ok z!Ps!%<8Ke%4D8`&Dr8X1(>Et$@M?$Npp6A1NH8mbev}z29sk;{QO`d!det+oJht{k* z1rsPe!1DU+#zxGxq7Z%fql7l0=tE`gM8Vad2MA5?NjX=GKGembRN#Ff80$dXZ->a4 z=(b`W3Y&|qfYFR_D8RRQ8Ors{Bnmh0$%)D2=)5QsqotjCW{}=xOQ257*^&mRJ+hZ1 zNow=q3u%Xd1_evKi*6*jYudy^;A*U0t2}$KUyhs zXugqai3(=pdk{4v=sR-s>rvvOmr*5j>0J4L! z4%+&SN&?*FkJ8$_fR`s#Hx*(xUJ;YuL^2nJ@1}+n1_p`);hU;jbotI--V*NV!|}7v*Dg670u`0{9ro6VlY>} z=Wa>uvAlxty}z>^xegwbVCg{fH#`0O0=md-gG!NTH>)!%s15fFEscO%uk0EFnUw9f z?=*ADm344V8#~e0W+T8qhBrvv+9|JN>c*~aV3sI^z33!vst=-gK0v-&o`KdbBLsI? zlz)N;`$pN*xkIMj5&xfy?>L9LhbcYIWc%erNBtHzuOGTFE0jT$$9-~KXktF@DIOP? zjTl2GiT+KRru2Aj*OuPss+U77;qoVD-dI>`d_YakCm6i*DjdEAn018{(|tiRwgJ3N zE@~%$vdT>ZHkIc-*`&%|=B#&eza<0|7?4|7qyA*vy`#b-n_{#3l`nP)5bQ8eG#`0t zt!C$J3uj5xvPiEsza;8C$+F#FMFDRO#~b_6`B8G*25KK+ExsPE!RI|1&5J-nPJd}E zLsd14CUco}tyTzWiLYUQ)!>;bwil7Zc_ygRHqBwp&m7JXbU3{?v2M^8U8y9_!C~IH zW7$H{rXa#Tl;MI6zN$oEOxdrXyBvMt2ZDC|>0)1FZgPFSdBgIav6BG#1>$G!8!l(b zEs8=;VzT{v2fXORS(bPowHdVGju%mE&r|Bx4k~6Oxq4#s^nuPE@mcrjkE}Q5Gqx89 z(a5OmMq{4l#qcDY5Q((=^A3K$JLZ)zm8<}NTKe(-L)Du=L-~g9?)_N|Fy2?{Bih+h0pZa7ksX}lpt+|_g#yqC@*3kEYwCwrFWr8^+0^lw|URv z29bhRiLg7({DS`oo5_u~)!a%SMS6zP7WZrf?@^3Q=)FsNEVec!cLaxizTrB zYlo-z0IsWvR9ck8yxiPZ8vO+~2uG8GZt8Lkj??+J-}L(c`XPkS{I<1jf|e^AuYq!~ z!Gme{QfD(P)gX^4xJ^UQFjn{R@$BEGcx>3_OHjr5-)SVyKlEpfu1lxZ#Lb!Q3W`c= z2>{@`h6C6|b^Fy?&hwIb3;uQ)Fo^LKzWrKa$%S|KzZ-S?iv9YgVRBoSDYeQTAV2!$qVW-|F6n?7J+q-!oN$-r+r>_A#X(~HE z`pouIV>dFU+i1C7f8|gRCVS7-26V}aJiB<_P9RKqI`CMM^9WZR^os`3`qG+b>Rk=d zBj2Rv9)2sw3lq0EK0}z7RNrK5?Vl?!Ly+L0s)FuMC0TE3apc>!(j!EL(5h z??fkpzaQ`$TK9E5>4}DIoKHJW+~(Z&5f+eeTr$I{8xW6G><&FapK$Zgs>!_`_&-Hs zQYukn^TzQdu{2PQdkJyoz$5*yy*z@CCq6z9>^k$AKQl+MKimqf11&C}j;xS(Tq*~B zX95;)v7`$L1oN|pG4oB9kx4%SmGHXiI%#&OS-Iy6riqzpKALYl=+t}j#vz=@H@-~< zE*84uhQGM%=GW{+7#1}WSVM=nkH^GeS>0AWd2a9Hx5mm3LhH0viMgV2=%1581K9O&v#Iu6IHT>e}_jw++O7VrCGD z{vD2FVePt=tsXyg>VZ>g&r6loD0A@UnIWsU>^e01jrN>yR59^(WfMc{2QQY(^!x>H z5_>826q%{hl$d${LG3f~elgIMJ?Ks26`;<4^O91}^Oqd#Q*iWsHS?;ky`B9i8J^wu zOWwD7i|>TORiBiG!+E8|YWvg?ZDgg=WkfA;U8I?Kyq_|Y_}S)rj~8lPGy7x5(L9`HMG_@k=GZIjirP3 zYCzGok?XD1jJ)S)r?Sb2y65M!k6u>Js}|3e`L=&9+s~7yhgcC;`B%RA&U|<+^d1_g zgf5y(k}wO)(g}o}=X<=2VfcZr(p!3Qu350Wi--TwCp?{5sQrTn z@2z=%wa%c^6NEj=pXq#B>9Z4-G@s<6Mm)1PzC#V43d-b zXaVNe=q#SFu#ktqu3qy?TY{PaC$1eKnh!{}^K=4qX*WV;+DOz3uEY>NWewg%ziETa z@G+*oP0uNNY`}GN_ArFN2BBi*9P|0!X${NZTL+LlJR0w-l)K9HARN?#*-$7%AmUKjA;_cSGzWkwL3z3Z5%lxF$bN&$P$d1tQXo z5NB%g9KMCoavl0Y<7CrCFwrkkVKizuckD*ZR;*VO`WR!btFK?EHMV*6Z=+pOyoIn~ z;p!^I`|F!BZ>BAAdo1O=^dGr!cS*LxRvxCC(xuN0^8{oSzFO~#Lp2Bnb9-rMEIeMM z$_8K;)>euu6I`G5FB4|JVvmpAwt4ilHQIqK-eN++(GQ?-x^V@u;=GBI#Pf){96<7n$%_21aKz+FS5+l@x$Hc(1uE#Bi38VtxVGHk@K*c#;r7~}6 zE46>(@J)F-^MMyWF-^IA?6khqu27#rE!6bqVwG1^?}bLSx%#4~ZTGJTP1PHU`p>kp z+6*l|EVPmP%RL6@%t$}6{>l|3pi&#j>5}a0J-g#eE68BpEHo3?ZlY8)9A>x}j%vXp z;$0B~@2^~?1-|#i1!p0r#`QB#Jlj4TxbL!3Dfdvs2ERn;fRVvf_&|PA z{D{khrVe{Ru6MIOm;;tx9k&^(|HHt_D!3r>g}YhM&}#0lD+=6kU^+>q1D0>>^j*T{ z>?09`%O^E~BeYc%{FfX7b{V$_xcz#?w>J`Y3oB*Fm%7`v@XJ5OiZsNYM_9o9UNi7c zyqM_tx1l6wxKOY!h|poNy*G-!V|o=VS065z%qkEw-A=6@ams9o(}n%%$Y~Nt!XzFH zYPxi_3^SX`6sLStsMgXyrb^T=h~hI+*PAq!8fmsY;49&R!|N$Vk;lspl0~hf?Ct#2z+ug>4Tj|Ia#kVhPj{nKN-r#{mgV5Q>m)l$X|+s8Oz*i z$D}ij)~i+b1fSJZ3Urt$6OHu!)iWuaFn!>R84b*RpGyrjlNpi9o1+LcshB?pXzkI%)5e9z9q zcGIug9T4VBYb+NeB!ZlUbih+xR>3nxFs$HyK49S*G|xO*?HJZ@^N=Br*Ru&OSLLUKSC;ce2$Y1;X1SNq3ryBF*_yvF>HUIY{*{Qn`q( zyo5|MXx6H%qFL3`7!x9OP!u;`S@WZ-oBtA@r~>0bqAxA?`FDMxdUN z1=vRnW=~}NQt<1CwbnoHzpiOb3Y6qpRt~@4A7G}Wz#zRaLC}h+P!a-iF_m$;){a32 z=eqnk6!~>8EQT%)P&_RB)n=N;zW~h6&GAc1(Ec`lP4d= zX6s%NQN=V~(%?Y$@Yc|z`ePqnpj{C$ddhO6_GybAXzVBX|d;i@syRn?EOKXf-qH7}AlOcCYr(hBi%;T`MKf-ZH9B6O=~S;h0jg@KLXm4tdao zs4;mJp=?NYnw^qQRC$>1JvU~k-+0%s;N4TL+txmm;n@$HO|C!&SQ8ExjT^+^)9K5i zd>_0PHg>0?truF2GCgqwUxnnZ%cHS2F)3P0BwRC0zhD;#qPaXIv7&?%<0}o~UU75{ zWSr%&06k=06UvD}B23^wHx}W*^aPB`fXK1#CvN)@%Nc|W*vIvfBQzvk{+)4xw8nE= zNz0uO8eIsdDCPusP#r}RdBbkSH%9&mp{s+e{U*$^t2=}*q_ zL*1=bi=An$;nRa37Hr!1wNNJuS*D9oFFMSSK;z7A0k>BEW)ksE`ZJ>DQONoNU!t-16;Sp}l90axtYbd=P34Wp|&9SM} zk)PuLc%z`xcJGt3PET-&7j{y@FTzDcoQRUz^3%{36Lk5ufA?DyE!3ac(G!QphUL6Q zyde*lc||;kDoXILoj+S{0#~a9Z?D3eXV2zNBlN8Q@rF)M%>)pwk zQLkU8FB<<03xbD+VQIpViCHpOWNj9`Ky`^gQ%z z2jY70#gU)=(y_PDsLrsX|hN3285Rd6diV5zxm7eoP3{Fr*+l7pPQ; zROasm-$Rm+mpdMO;<`r+FzIuleUfz4&Q~xh@_LF^d?cyi*?*QioP=I$X0i_pGd1{rfQENj$+T<0ZQf$3L$jqP<&} zeAULaZ61n9TG-}lYogK6P8&4-)qsCc5U*c%=M)&*PDs?RE1bRD4Z(Sf5NruMkfodm zMTaZ;Dp$k}-hN7)%h9#6O6-<&yh7FJW~jOX73N;DmGYjQ5Z&B%ch_eXC%jsxD|x|( zhyR0x>V4c-AYs05`-uM!9<~dE+R&$~kYm>o#c4*YOX`a@K~K?$EK9K~@S2_K!oX#E z9eI!takhjy4BVG&6+x@*V3W2QfNGKHH$1$=c%tU{rxV}|&n#XA@+Q)VeTFyT4I#e0 zfxi2o7wivszy%1_^@8>Jg9KggJ@jR^O03GBn;j6G?Q|%U3`H)y4i+CSjIAHYs#ZbVUkIqVyj>|> z$*-WG#dGfx>J)YEqFAJM0*>_pklQ*zt3RB z$gP@eCOCef2Q{;es&=U6n-Sl5=R#|E1)o*BnF~--YIy#*&ufdPv99_l*2+@wm^BM% z-e2+}F&BCbGSdRDI{!e=@XlTyEq!en+jE-;;j`(Wm1+|Lu*qqxfhEohHJ?pRoxs5r zq`|Ob=dUr29m(VpA2k{EJl@dtFQUBn15312TBtwGWOZeY9|5mNeDH1}s_%~E-&d&H z*s0kGQaE@1YYGm3(Gr+dxisuEvBIjZ@9F>7f47&?z~b1czxJzla}-S_kj}sm@*v>- zTMkua?^GUM*OXeabtWc~5YA@^C5JZ?`~6yJxI3>dYpK0NJw6U}now0Yi%g1k3s6t& zG4gEWeogR$$Lq;G?;n+dFzCGjbQO=B(e+H;ho(NsRLlwUP479o-jIN1>6(8G7TyPD zCS?-)nsWR1=@x)gi4(2o!%lpL<>C)4z*CkkQi}baOMyrB1`9GFO)$!-?Br-#YdH+3<#2hNTQNii`uE5^Q(!{=+aZ0*5WS7#J9~K9BAP zY^mSHu^pQAeP^i62%EaRwbxIKB6tyE|0s16FX8R_G>*0{Q_&+{Hn3bN;9Wv`?03u% zAF10U+;pkYfD8@SPr$j2Ro{Onfx2F4M`XK2fV-A7-rsh*E^Visy4864YcIh$VPsfw z`fPhb-?J=Ryn$EKwYC%u=97l2w_I0?MXq>2cB}Azz*RW$#zvO|-Xrn*x z*qA>1O-G&v3%ZTi4l;1~=h{&swqd{TCE-uui1A6LXQ;FBH+}p&Nl6~4$0%Ry;C*$X zwJy6zYdo2IZ=~u%>J~Do#8hUJ9}42A4<4}?%)fv79Vg>3_Ei38Su|s~<+#*S&#Yy8(A_SQ-WE=fE4D|n`3{A>{G&7V z;!wH24&yvk_CVyz;{-D8N3QojhM0Sw`;Gk~u3!}%c0I6J5R&)Z;vG#-Z{q)voj#}F z-$UmtyB4-?h3Bo$K0amZ=ZdEc1oo z0=A!_|NhYiVq@aNbVxF9oRW!-?2^>q?>9&5JwC37>RhIC&3nXH(aD#7No`7y^cOpi zX^nHdoAQhMLU|!;4!|(xsfZvn_Y_urWs1EgayUF7+$$U@4&S&Ipb1G!v}El1bt9w& zdJ5Yw-I;z69}@#h#H>fpr=_#4+_^OZJ}!M~5G!x_=6CV9di^1nP{s&GZ@d8}4f6hG zY2EL1pEdw_mdyPy#b)v-i-2`nXBmdJOHD@`(C|YXskdW)U8+`JV_w%{jFZjjyNBJT zv!8+-2F+-Zn`<*C22n;vDciz~;=yxie|T zgU3Nf*e)Opy#|qblWf4I9}j@I_X0q_WZqU|&@o(|&AHcn;`d8VHTOZxQ+kQ^bYnX6wh$s6x~1suu#FhpF_}XC`oWk z^3>^YWF0e#%59n=a_=D*fnMk-L2qym>3@yE_?mr0FGvX9(1krOa_@%k!sb^Bk+9E| zqU~iydX*UkTe75q54ARLF_lbWOx|UR?@XK8p7ysl2}^kT_f2#$Fe{iXzPrrk$d)+s z-9z_iT#o9<6kg@rtH>&9HfZ~yl*?cQZJHopA5(ijR>9@3#kL7|B0>Cz#nF*jculew z;uXPp3M4$p3rZ~pz=a;$V+s>N1nde#wQ`^yK>!$FO+S)_BYnN$_OX)9hpKaf1g`% zBr@ZNz0J(dGq4RV6wz5E9)U--IwH#8ueUEjanwzSc zKoWe;CI48r-IYmJgt#72&~%dxD){aA_xIP{u)ZhH74|x(xtvL*7wao+M_*yzL~+gF zQIu{G=)i@m@RU&%p;Ynl8dq|0KkM1X(&0v@Bidu9A56!y-Uv_xMLFUB;mC$Ncs_21zop9)DOPUA=qd6{UCg^l;4D0H==e$fNpVV?`s2 z;8nDhe?uYB(}6)|Q)>9{7;%TjaXOpokp|UX4Z4zVuvnG&zqxP%|XHf#qsPUYjXsfrY;)nPGs0e-g1&j_QKR_!SfbEtJ^yt@CoETE)k%N z?1D|m75#V0^(vP8P`Qu^YfpOWL=K^^SyM^-;t9jXf(jws*&F-{CEB?tTsp=&b==k{ zF-Ikd`Z`Zu+fsyXBr*s%?EW$IBbv5f}XdT{wMPiG#E8rSIFy zu6pX%1&9|vPk6gz6+d65{w0|BNjm_teVFwu!!yq8IJ$!ir#;MelT3=@cs#6)N}&BQ z#!z>5_G9mWMaaQSkJQ|_uFw6?iC=(H6FUXfIaK0KMDtOXE6g!U6SF6ClqAFUIZ3FZ3ST7|721 zt^P1&s85zAlCn!(`(8?(2KGk^SfOq<_y~%F&q+S7NU7*ORMvOVSi=)9GuLOG^s;`2s9vgAA<89 zocR1Nd6SyJrP~cO-yaQ&q4JBaC%-1Jwn1Yw85(no8~k5&NVVUWCNdk31us-w*cA6! zex!GR;l`6NY7noJ5G82vU0uS1Stg?9!8`?K7fi}+t_yrzS{+}`B|#<KGZ<=11{qLipR5Sg>eK)tn$`3g75IJa2)FrVm-FL79$<6~s> zGk|xdPiD97{5|pFtVadUefZXj+q)4(HY=}8DuTyvcUr&|H?w1=g1!{NvN27$;`MTd z7o~0U5Ih{=ql}R1X%91LE%RN&;)c5?eMD<^2I}g2_W_sN$6-k<8+5HvOb>HC|2#Ii zptRu2!SSTz90E6B{HWkTy?IR2w(VxX8jp{yDlTo(IVIF~eOWAtXpLPW0@9{o`wmxm;>zxBB z3W$T+z$6p}eutVV26KBpc^*w>FO1rwZ=KQwyobD`!XI6; zg3uKm*+RQ{eJs~N54{-Wg_j&b*+`pnJoSgEV&GRimhT55dJL+>kIYWbasfwIvyM@f z(Bhd(twjyKV-^t&EYrIXz7;P*^+(Is3kv?g9rS&j=8`HDj5njcM0OkMV@AkB>bN+! zhH zwi{(w#l7B2sepZ@u`kXzhSm~+i@%UeC9@F-D%fu3-%})gI>&(u${>a#r65%mcfIqD zGs_7^w_kkpBaAC9_*d;j{BI5*&-;0}m7vQ*+%km?$R=sG1dihBP?($#%0&^ z6Pm`m5o+*5Fqw<&u_OFB0~D38TKgvm5BQZ3+JJ+_zsMpDqQoO;uX)5Oo6gGB=OEKV zv!H~xSsG+QVNRSupAVN=bv@d$u8Ea}JApD0IWIO-dVJ4SSbu*_VLmrlL~=t`N8?$* z{h4fmrb6?gYHGP9GslrHF;%cb>2Rs3Xr+DMI|;#H;pyPhkIL@GCq-P3K;eu+qukH1EQ z6pNJ_luq~J+o9ALgU$b-t)?H?Wg@C|de$u(TLS4lnS)7)Gsau;)cR1(UeuY;`UClY zFR&eck@F9%cL3MkekbD2>bc@_yNk7vr&oZlWb)6a<`57sTc{eXTK2?a9b7?UE?_N{HRz>@xFUfFn{9lZ(L^etYnM2n9;l2Nsr#?3H z7;!lDc>}Vs`QijgD09_qoc6;;(flFzL~s3r*wX9 zts#nZZrZfsI@fTlbcrS?lKgV9*$)p64G#+@hkn#h#H zu*NjLxZYcr`KUJE@F0mbuEc0iNq4F4~i(w{0}{Gg|o}E zb%`CYAwI-iJup4rS4s5+C@Zo9JmJo|3)3KL4fHSkJ*%qy#|^ixg)>Wm?!jf88rs@- zjNW?ApLm5}-%el893Xq~AuzcbOg%uBKrTeo8Z?fNh`~A{Qo*EPvo+|O`YZa#1IPtl ze*o6g#{kS*grpc~6p#L&mkrb$uzYz%HX$0U^2#FGJP5xSPb3kbx{i^4=6kpIyOnu= zrB{I|3 ztPvcd3cl;f<|ks^dnSr9z^0kp>3Su9t`$F<|6I&e(#(uCwV1nmq+TLA^@aIXImKn! z38n9Cr?m^4n+jlHtDuQlJNfjo+b%`BH1U!#qEB8n@oYOg!R$KbDMd8$O2md1%&r@i z2JRRHIU0+DRrt!<*}k`LwV&tlwMk2c1`Ci$;4w>6GJOxhhKqgseXwPB;OajIfCGC& z>kriVYbwWO_~}{T4|Oyo4(1gJ5%Av*fS_rsoxJvG7GRu^bg39VGXDxh+$PYcXa}yj z#up*|-cHt|sx6^GBHr=t5huk*W=jd$w)9{fCGdfaHrd{`Aw4|necu|LM3bG|`ebv_ zlx=30p%F^l065XGc(HTA@9K!UjCh2Xk@5py=jqs-*9p6;MVM{_T}2+#YL}tskJ=O( zBK|%IuvXeu9S?o`&DbXEBt_($pG4WM3z+f^*{CSsM$lySd7srm6LQqb+7;*hJm<~6 zU88bOW=B6`x5#L%i%(3H{75j?_PC_ohgWwOJ|G{jSlNtJKinPHMSc7H1;|S10)&p^ zVxp6Nsd0*GbTKOiYKM-Q7Qf(UKkm`iO`XmI_#M^VrBAi|4fN$d-aH=q`wXbY-b9}= zz_-9mm)u2%om7K>O27_^8UpQY>J8T>q9}jMbh6#2vAGS$oDRLFbqrkhMgG2UR#Jm) z10JvgxBff6PtDh08}y>Hs_+@L8W1wDh`RAaCHOCPX&Nk@!{XkyIdzO4T=l7rAPkZQ z@@;c@QmP}|uEB7=94FZ5Kfv+ElMXi&cw2x)=BC`8h(CJ0TI&7hYt^_w8F0oqh;aJTUHxj4FK;Ue8luy>7`L)?1yDo*Sl5W2O zbq;whr*`{jhLKu9{5a)}mT1VXy`|toK zZRjs__GI(;)^%0pbpJQJpPdJ|zz$sg`2*`r=sA0V2Ru20?Hok|e9V50s9qpjc>l?c z+?5PGz^YoM1 zlP6zn0;P3+zOPP(ClS=~tC%ybkk>xqS3r+m+1N$TOYbfAC9#w|y(T$xTDDy|a7Vdk zsUrOzy#sbc=h})bcQP5+yq#`5gR8tnj%sgP2JUoDzjYJru5v@#ioBAj>sHn*@4lHV zmJF^1qZ|$ACmBy}zQ@<TO5tAZs8; zA`*kaC67f$o}~=NgirO)&a#JgCGh!K`4zTmy|ShoT-4~-Pt3ewDRe15dONUd$oT6AS5=qe<^J zzy7?Xf@Jt~IEnruQdCfDaB%QZujN8t7C1in@w0Lrl4^L)V8sxt~Q>kSpbr+UCccpKh+HA*wV{FpL zqDrSuCu&IRLyAl|=A8k|H zf=qeafX+^QSq}K-)X;-GYG&keb$FnaE%p7CeO>*zMfrWbTR{P&&)k3Vi*MgU-%aN{ zUY?7a&q>lv;f-tCom6aTii?g(DUVYUK!wO@9IlUsy?WiJDmo;6dxUgD$2~<wY582kMX z!l#acu`clzWFQM=WX6_oZcC7u%B4X*p_J2i-&8|R|K&&=v_K;=6U z98mUT)sF5OTx3tGJUnjBF=w zoT6BYf&M(~rh7K)Br-ZK$(YdI-mYmT*66{7h+w`{7DHB(h?Btx-)V}wZ>36&`Q$8? z8A)@URS1C@@kigVQj(Pn;1b<=9Tsq{MJ*jJwV{h7O1*Iua|;84OhIUnJAOA5c5W%C zI>tO>u5JEL+#(0z^z(2$+gLv0SuzB@Ro%Y<*@K9dNAGte7Jkk56`K!7S|%c#Bja@AVe6PRZkAM%g(eod;oBaw_Z-KoOB#raWc~|(Mr?NHyQKVnnQ4?H zh-{2iCq!RwyeIN(EtF>|Q$0ZQ6*L@ChferT!s?ftHbomsq3GkP9e1x*u4wV_kw_rn;#VRo69gM9z(q zqI=ufd>e6H=oR!R;yDT3f2r?N0*L_}{GZ-~H5xMq236UNbx>-0Y#SMquDW`^vVjUL z4}yc&f7t_a#Ze5b#*d#JR7)x`@Qcdt*4eG)Ik%I6?~6#PG@$&y&&1(h$|(IYyG6VO z`tGvvUY88TUglnS(M56dnW9;58v;L9NKuCp>IoIqS=f_OZgyHEU!J`Dd->gUwl@fifh{Pil9yTv_$jgyx5%Up0t`Wv@R_^mK8$GpILgg|90Ew ziCL1Enfdz;T&rKICKEs-N8Q+==iPnh^c-xMr8A}V2)65V$OwwI+OOCOOSJ zOEL=Ppkb)`|Kz96gbR&LKhWOqO_w^&8?-++-B}E2e!}Dm5?`(Wj6S#(21bX=+i{WP zio7(0>r8!S&q+$%CCCN1apU~_HrB^Fip|TfUJq&>Q%XImzq#79C;R8U-u<}DNq$jL zEh(v5tMk=HP2Y2JJV}IJcd%cazWO@OGruzU8}05okZJg0phb}M>hj*9{BgU1Upt7j}Scxab4%+ zwdfYqtj<4tDIknvq`dIx*&oZVw60Ra2>Nv>Q4kdM_}pZ-k$OVgYuVgeMkFG_P!hH50wovAphc{W01`j{c6c(P{*uWA77Ebvg{n)XFJe{?JeCN zHYc~ff`lGg`HucWOP zQz$kPncoePswO>B1|)i)NI{PN8}C(wJ}_nbPr?&c2usL5o&iy*pc+?F%9qv8a>J)yP(IVi9!QYoUodEPp@Re5%bGqm-d&2nazj9FV7(CKX$AXa&f15PbC-Qz% zv#A`lqWj`MgYJdc7vbl-=>)jARTI4Q)4csy{loI)K8HOqF?l*=exPjr^{HYFW!;gt z{RQF*^S-74ucXR&c;G-&p2k~St-s33U5v_I5kAx|ZWB=)u)u~YiPR6qMW~C%9E!6n z$NN8bDtw0IJ7b5GbfZ){I!{x0>aaU_o-Pw}8kyPNGRo7vKtGPdb{2BxLRd9rG5< zgNoX&X@XGWza)F#7Q|!-=^Gd<{A~=byL8p&Cd>2{-**2FosWM~4GW$cUcchYQ|ckh zLb;rAyIW!FJ7O7NW>!83>u5Ydh3U?w6GOLGAyP^3_OT36=5)#CrE9*>9O4Vajj;Ne zxC#TfjuYT4O;GbVKss#tr@_RZ8ruy>_uBd?A+8gTlC7xlfs!4 zHW!-K^3y8|V5=KMGh;vo!V*_RZ=EaF<7u|k74b>;G-bzbXKt(2FWIAt66dhp#Y{M2 zv)ZQ{#(HXKcoJ4xZ8nQnc2DV&xHB*B1}8%eyEU#qJ&*TN&#ViXyU(LmUd^yZfEk1& zTi0_i-1jl9LGxw zBd~i=7==!v&zi6NHzSdKiirjS#4&&_|1g7AgYggxRJbKZbBaU zMTgh8>6Cr*1NJ+1UF^f$^!q>lOSW%XyKTaOk6HPE9baZ>HlVweRbU-)U0x0dZy;QI9ZS~t|o%i zK1jI(Fi(FtLUkNo9Yz(<)fd%b+wvHH`Ua*FA1~mtAFzJ#XWj3CFW9{v#QoN;@Aj94 zvrdJeVyy+3pWcsS!R8-IEcvLkE~auU2il#(=&kg7^V8=)$Ic?vuw- z(v`Lw_2yro_D_(eAv;NGhV#jm5UwNRu~Q}NaSMmvb{xQC9@66Hh@Y<8Th!RfF7rte z7*MIO)K_g8X=)iYedtM1_?ud(!D|i*?EpOEtACy#vQ(1i5O&Z{aEqBPjc9;+21_@A zgbu{Be^h@UGGk|M)1FEE&$x#16GW!mO-Ku4IfwF&Sw(y_Yr6ZFkjESO6MC+Oo>eJY zIU(jMLCcYXICzDHbL%7XS@%B~%3lfX5$U*+yz9D`%f>n89OPLQl~Vh>>^e!Q-0!M1 z<@KmF$9^{fs?IY=9_gU3CZ4JogFWoZ+lSt{H+L|PbL*=% zf19({EOTotbQd@ZJ;amcABw&uM#sb?k^dADRMRXudHB&iEA)N}^8W8iK-kbp-Sas4 z?hy9r&-%eeEw_S5Uk~h3@KkNP z6F~+Jeu3n5Z;5cP_~;MB10WlF3=Lj|D*n~B!}sqaDr17-mpKU*__DU%frERl9OMXJ z(*T7&A!3AzJ~!U}@9Le@1)G+0xoKf5op<{eWa}!{B5$-(PZIfA; zGeR@$9C{dq+DvJaoz!d&n*XX_7AP30t!wMB45v%+OW0TXW_wbD?o^mVw9PNg=wmdr z{2?GtSf`PI4ghZr=8n9)V~P%R&k;-CJGIzFm0K~_EoLs=ATidkjdLNch8fuoev{B+ zf;EkHC3Go!rH!VujErAttAS-^zfQJRwUaUUoYQidq_auQ)KS`18pVa2n-pND>+xSoO2VmQt*(6GQltF(4aSfljOzzkh|(BUs&VLZ}Jh{%|fXp1vR)y&%r&JC#? zetPtFOF6{|fz_&Zoy>X7C%iX{;(;}BTpmT<^1H?wr5D-42vWk9x?`^Cr{jU}a}? zhMa!82&GP)NcRNNzH`d}J6uC(SpnSsCX%Q=P=|dG@7?8j zSg2}x+r^A`y7gVq{uq{DftObV8u?7LlvzC4ct($j-uMhhX7^C$H^MeXhA?^s}cW3 zc}>cD@;k!;)|t)YS)loxCaba~3l4zEh=278JxhS*PcRKk|M!aryki{xmlP3DnvekA zgiyP4Fynv5N}ttDdci@K_mCddovUZUor5JrR4^e%65S5pyQVPHC*u-&08y<&o*%fR zX`j+YQvT-DW@t|gIMKo$q{(ZEea9FzAuHylCdUa8{5pd=DL2D*ZcGRpYuPD zb2{a8I5VE}yq?d;<9@&0(^tA?E{U-W`_@FKVmrKgy@u@Tw1y!ETU(+pk&szz-#MaK z{dk(C#Hb)i&N1*Amp>`SYl{xu_h;W(`p35i%*>I?z|a<||CwN?( z+g+>MEH#M&esRKpQmy+vOU);dv~E0z(65DEh60jz{C!Wdo_Me1VN=5Z;oyP5iA!e+ zL)6(rCd<9r)uj5lv(HB6Si4u>1W|?4SG^$LL+$HKo;h-#eOl4gr=D|_APL8h;;wsf z3B_$e!@@H2lR&RLrm;C2x(+qmPgFpTl)^rtk8xez^j0eI5Xpv{SayMd=D2m!`$CsxAoe50b7U;9+g2F&O- z>}|$W`?i-w;b0}8 z!FQ(EBId%_#YHCO+bxw@W)EVMLvES*{}W0_}sU)=mzkZhxKqctnx z&_zoCmY*w&U;1Jr-!no4dg&N&Cqwh7199SsFYD6%Og#VG?m>99dP`*1?jStF!0o?) z0=b~^PUKcViZhVumZaWimtU(?R&3$fo&ILpC2(;y*uJ+BB|sS*C+{?CMZf+VE!nhu zb#5G0aG#f^$e*mWyA0YvQKe(s4n)M3JW7jS%T-ntd1V<#f{zz4Y#H0CoYt}ChJw1U5FXa-LUd(F?J;mu95)@jp_T=7Jj_SQwK(_7EN5rH zfE&TiJJ@~X99m6~y$!A=>x@WbOQEfp`#pllDFIE=LAt?B}Ly9Y0f$QaUOH%;!VEV1JR`mVw zt;Ln6MkIm;C7i-f>bd5R660+mxf9Q8(d6d%4E4hb7OPi1K7orb;r6`h!@lgTre_}` z9-W4Strw7e^+?``-oAbqJX*R zxhnV4Wl4Qubz;`mFC|IUca-T|BC=MlJm8fQ-zEGsCZ#V&m)p1ZR&NVco>aPu1sweM zk-yFDFW8&@xPAPD6iPwCtay=OJt^^d`fdexc{;&DVqsRyfI$?_{5Y0U#T=G$RsL*e z-ty?f9AtRD1aGdWq@n@BNp}$x$32Ky`YN;+2lS--TUIa!KYiKf%!c^rRK#Lt`|J@Gc+@w!X}KZhUrtB78#l4vDQ(2tWW zo06K#K06KG@H&*`T`gQD(A@3Q7l}cXnErog??b>&C5M~WFK1243U9ONlkG$=_jlv-3r^1Ce+=tg#tJmYbNCi{ zzuse}rj3MKbZ|Y$G2{wo6$gcIFRN;^!kK2z-yg$WjMYciUiFW3PHnrR!6A4m*0x4 zqJ(6gECq(#JRvUyRwy6!+kc;oC)ITcy+Zy%o?4f~aos(nu z-PY~?;)kj0o55DhqAH=@uNsxz5^NdIqE6K=T^BGZeE43X-o!}C^!!uwC)h@2e7O!K znprxLF)hV&$?=>2hB|;v)ZhtzVd1mbj{hN++>ekGiW-HhTS0gF(E6n;jj*_PrUxA*Z2% zRmf+C((Hr;aYvK=pW$41Gp$in26|@UkdCfCuRMh6 z`UI#(_AnXY5?z={lm-o|c6*Um@VpA`I&wGt4<6%6J1({hCtW_CFSsM)O0*M?1auOS zCZ9b>PvG+EhD8KffDwm=zca}{uDuNB?^S}d5XliT7iR&!Jssse+{QW@9B&|E?%>ZR z4Th4`msg5khjEavcEm6(a)(T3oSI<0yz*w-T&E!tJS)QO)Gb#5f1Pp~5BCq*N4sgw z;LUHJeo5cjZJ1Y@h1zqSu#IDQMY!&e+iE<}cOE{yE%vBflGXP9+H|tj=$YNKjS<{0 zAk(?ubpg9UZ9vzY#LoKFDhmVW<>|&iA||3}iMNS--&E$1p`Ot_6xolB`bm2Z_?AJ2 z=65&Qy?-OT>h>FzF+?JO|6W@3q^awJ``3!bmdLkD$5UkU`<=z zhz7=kUMN*#&CW)FxY%)|^H^im{BOqoNEWcLDwo<|LfY0^Y}`h5A5i*!x^Zh-Qn^OY z<*^7f(ZWgKt}<&Y^tZA*Qyym@3UyoW$Hrgf!-nn41pdh{wL2P@Xe`&TI{M6JE_yR; z#eM{OR#50Yy!b^|1PV@eE{Jc3J~h8Dr%#p7CuZxmbI#2Zut?ZK&UdU;1GnsH^CxHH zX;r2t7JsEz?YEi`S$dXNn#qYJ5cRG_@n53*;p&U|^-3MLz9X3Wd0JQK)Sm4RA0 z?I$W+zhZFE`^T5z*E=Kat5`~s~OLSiWybL|X& z05h|fjeBF3)d91*ir`<>@a+DdhM@nRuxLOQ25#LBM2jt{a|O<0JPz#dH~CQpo_$W` zY%K9p=Iz|Ehn6`I?7L0Gq(?ZH2PNA5b8Sz}kVdc5QUklOHBLHS)^x)yPNxw+r&=_c zqW7FyC4?ew?$#~+hLz{jm;#tZl)&eq3F0laOvBK++3Mt$kJbW<@a+63>O#o)Ew(aY zDVP`_0tQ+pUm{p!zH`8iF0C`5TmAUqR@W&%f2wvk5buD;Gy7{LFB+u##qlPdB+idQ z-bJt6eyv4|-6B|=>xAzJeA`o6wz;9JkX)Y_tUiyz2txL%Ks#pae-rOqvS-)te<*&|WR{{y_|WDheAtV8q$Yn74Apc_lPQ`29a%}SDeJ5LEkUep~caYI7qakqYL{~0-ubH z%>xiVTpx!EIM{`wUn0n6F(3Teb|FhMC_evYWAN_jACJbG%W?t<22K%QX(06qSYzCm;Yi z2$&3);L*R~5G^+B(DU;qINYb%&AFMqcy687ekn@ICao@g1nV@|;MLDxIWMvF8-K!x zeXe?Ceo2bnJ@k5`r#YU71wZ2=%)N#(kq{ehn>?y2p?_?iL?FuJ~SS? z^-BD13aWw$X(j?i&2kK7M%^BfQSEk-CQ+ z?p?8^OQ;E;Jd(|%zs3Y^TO+hYbu(_S=tlh5Q!RsO<}6qRjQI>?_3~o*94tI2*Su>5 znL@D02Z^-{8hCxpviUW^EaJeOPY8o0Zu`EKEP1^%#YV5Pisqa?g?y9W4X(7=htJ2M zgEgR`@OGS4%N2S>X}65ehNP8#-1_jWu;c1C`|or8C-+vA@t5hf=rzu9Man~%(=K#O zS}+{9Avbbhy?^4Sl{ERs$IE>vV=H!_O?#8xWzorINB+4hMmF=ZimP?J*w|)CKf$QE z?rve*Z*e+y3wevFE?-2lS!|XtwM&Vfhy7QDG5n7nI4_ODv*e)^q{ou_)l15Hxeibv z_r8w#)oeQwT)EV?_qVc|?NqZdm7MrX*fRN%;%w+V zQkQbg3F&<5vDyZRkhf`*3xx~3%t!<-7>$b>S44(Dn*n2y+85p!y}!0@fR*S>07jo= zE9<5x=<#qDrB(S_7DC1 zh<6mRzZ^F;2chb%H;lEi&#CuNh#s2M@W=xmMH;nw&_m+W1YP*)dE`i%mZB4H%Y%pp zkmZll$op@mOLNcyy1!jaHrWimy}$Dz?)kNRPd*MVuqCuIJiq#cl!Jp`_O<}zP~^~u0B}f^51KR9c>`1%c>O;L3A)UFG2%g}SETE%0?>r>*!_hCCi}HQ zh8oukrIAbSe+z&|jygZp3qNaoe<=rN&jCD+& zg|6}MpwA^b0Pn+y&0{XVOqi~k>Q!fykv;b?yZsmBcyDWjD_riyy~=$cP~#U`5*f`V zVG>S0y5Rl^3H0s1hm3vPM;g)xj&>a;KlvrrKIcVp;Jd2d@_=$Kj`*W7_d?J01GD@q zOVc@bo+*Ltanz zz@^q)A_MpeM*Qy%c}l`(zqZN=Hs4O+9s_hJTMOEe!c6f1k5~nVseX@T$;C>vG7i8= z8a%?t3_;6pYlbHkQUTHLrM0^6O%?;H+ch>+95Enrw&_)VaNT-{izl*&)q?Mdb4rm7Smg8|@r z=R6WF5H|`tpw|Rf7~BOjO9g^NR(jHt!IBMY^UOc$p8)D!%t?DSy6?d3cV-VaY{ZJ? z;&ypWgA7;1N}7O4W#`ZJbG^Hw9}J$ib&s5Xl`J7k(0)xmAExH=*|5axqfh7ky*{zz zM8!FjV^?S7@EG#Tx4zb&IW9i)qkL*c6tg8l3ZUJ6`xksl&#c!?z{tgnA?RJ?yB?J5nY!y=SFo4{3bjlLR{r)Gr&1hfWECED$$QS*`E;dE5y&lM|C;a5s0{m4Rd8*2wUTR-8mC5EEv zD(!t2RN8*D6~9lR3vojuQb)UJxsd$cOec-UcGE0`k0RSr^aQGc0HvrwUfSuos0-9R zm><}`c!M2TV!<2L#aE1SA$V_1qWa__&-77V`yT5!R*00EPYT-pu6)4 z5p52iUNm3<%t6jQb%JnyEkx5D>H>E6wo+UG?j62{9QdzBI6Ql4tC&)W+CKB1 zlwJ){ogevYr77uN%X396r z|0p6P^a#<9vIrWn*vIQEum6%m*Cys@96Jpra$Afysj6l@-$og9eI*3+4tN~-@Ai6t z?%%&8ep#Eb9IrH&eC6UYTAv3dWuBv5fDbmz1;k_@%(i*$<^J0GT|ARwNg2y|=47T^P2Fvt#P)+zxhA49 zrG0mt;rjhkyi(^?&SLvgUYG?O6-O4h4sQWzVvky1P$%I&##8@AD}a+zuG7{!UNZJ= zvT&OCFD4$Bms>1LB5O8g@+HaXjJ@%M*czgqtu+XJI&yl4?A68dAxDa>rw0Q^VYIwf_YGIe$>2x#BlW*x*k>-nhQ8G3q)~;op>)2RP zB51;TN-w0~gKy^f5dE@GYD{zi4_}YO8r;qhgs59rrpJCdO=P+YH*XTCX?HMqj7+#U zWNfv@O@51b7nd-LMfd%skY4NLy$ar4bS`<_0RImQi59;G5-q~IAK+&wC;AZw!KtNg zy{Rn;pq~YNUNp04Pd)n`Bk%pPHpW%$F}`($TED~o0kl2*GkW+EsnV>04g0yst>90! z+y2NxD(Z5w+K%y8#w85CTj-()EVrY8957Dv>Ma9XQFbG-t1*##n4=$<8(@%P(3~QE zzSN+Kr8D0A=9trWldrGB1Q7TYY=HC}#fgq1M>#XgGP`9b02fw$E;wK_Y^5oVGbrN~ za>j5UdDqmJkxZA@Q(NyhFWUoMbDY$#b)OYMupr(WhdXD|Q15k0?XKk0+m|O@yQ_t4 zy-#!sSll=>tqE6vSGx2z0B6n9f>H}RTjz7v#qzwUgL?#C;D7Z+XkE;!(u*>HH9_}h z0{rl48jK77;KQNYb6f2W=9lNOUOQaK41j*hM9a?&_fZ`Iu`)qlu>CA#YTlGfrC9^n zik}2K(4GAnv5BI$Ad`+btj!>8$;5{m_=|(i?NQA3y1XNWsn=$$HQ7N~;BqMIP*W{+ zyYQUH-XU3PUhe70-S?ee%RNGfbl-6gq{`{2T#%4$yUUC&8+dj4O6hH&YaCUYZSyml zFS|FO>}5;T-qw#ppAwUrj}=*Sb-9UBdhp@26ep61g6pBq{*rdYvr2opQ?sD!;w=ri z>az>UBVDKrC|ihpE{qCB{9i|B&LHuQMFiYlrO!s?Ds~mi3p~B~s1HIu5=cqa4O>IQ zATlNT_t)%rsk_7dcN4+TuSH7)Ub4_wZJ^R*s@{Z8`*L=2j8HH-LOVa5Tx)n<4<*Ey(#N6-atb|x3 zvI!eKZArP*5=0Qso||B{T5vqmX8ghaG)DHa{d43r#ya>~6d9kVW@!IxO;}h4O6lYJ z&oML$$QJ8o6>rtkrdzGb%wriA^rnlKM$Egk{l%qtpTnFJ66(36zwd<4PKGXdw&IiJOG|DE76PySiNAn6Ig{PDjrM*VM~G;BE^=|lAz7%{ zPfO&NnejEm`8|NWc2`qZTxx@U<6Th4^MDha~&1EOrB&(OP@v34CKqLBI*e8 zJ#U*x>TdxLHZ$HC{=mY7sXQ2f@KIm>dayASKb7^oa00u}7gz9oc5lK-^pp+qye7K; zUe!EtB1Hsr=ge5XE|F`x%DCfjcALUTPXYXuUdU2QInT(+D@++@aTynifA8|U(W;kG zAEq0}My?v)yOTZkTPffwV?VQbrCy|rQ| z!eBKamGP(Oek3pRy56Ns#*jFd$$4IS=n&H+v2G-uIWPY^`Ep8>?E>&kEx7O6VPZCW zIx2OAr%|=~^P@Kz@D>)Ip-UJh%lwNyTK*8B_6kHsgYsR8sRagHSIVb&|JX4I_yi9s z<%*YqdPLB2)w>T>czyO?vJrF~@uw%vr{nn(dx?l^qH_lq{p)E(8JDq(jG@SVi2Pv* zMK}G}ZgJzFqwvnhxZCGikSyIX6xfaavA2aZgfd@PLxMp^dwI-acI7P)Vq4wkDb%MQut_n~ ziForWe53{K-efhAaHy$^EwVbZg@e2H_#s)Em)#I0okk*ywA7b)(64rjvjJQ4_ z>NQ?e$CoN7noXlh%4UTL(RWt8+XAl`2hJM=xFv9TFVv54)fRrhqloEe?w5w~uL9$z zGl8{-3UIbrasI1-%|{{;{Li2tQ@pr|Q!cltz>9ZNz-x{_t&&t6Pk)>nRcLE*AE_Z>rm3w0&W21K^gRg`PyBsR($T)%aQ5G?=hG@?Gk+Gj=41IWNSbg_shHe%;+gbh|U>Ea!L$=nMl)?rWRY`kv!{SSj4%!gOQYNJsl9Y-pwKd4yY=zT9?g7ek}F;)KnL!~W{B(Wo?{KmAbfH+yadRtr+1rw6rIPDs%a1ZX7g zna(5UyuCeTnav2!Le~{5uY+giRZ{X#JT*n^g#ws69L6ukJx2*KCxmPRB6)>gsoC)B zhQriS4U`xv1WIb$?kP`8kMVce-G<{4?!IyU*9WmyzO1v?u_vy@{ed&2W>ay+x@n9B zJlP~Y^NS*YFUR%Fc(*XaBp#pZYkLYjcVGi)&sq+5YP45>fk|8QlRHG6@<+xMO^1s0 z;DNB^eF~=mG1xKKuW#*Q{PqEGn1bhx(pq{j{LQGM@rYf3L!jW)myaii!+m`jKl@p= z^M(SZ6&c98$R)q9sPJKVR=*7O-1@^XaR2(6_(#aKGmCn(nRLEX;8pTeb&*t>^0=hA z004na>D<)Zr&P89^6C#wquz}E&4AnYKN3oPQ?6UH@b>cq8x4CI#}gTj%c>n0Pb7g1 z-!hD$7yZyp`1|0m+t%?2t%rGaD)>!DS0^>WVE1QrsB!%+ZcC?MjXr(n@!h_PjcHA* zi33dnYXpQO#iqf^e&4vLi7E$6fXG)5g8yb%zo64 z7iGe?cClp$%%BjQB_V8c%POQ5_M$GCbUZZT)x}S|Q>Uw698y~LgMNp_C2;uWB{aBZ z%ml5Md-a#g_m|hrT&|l9i9Zh9^%@zN!w_weUk?aAx{{BFUz z4f~2(Pi%T2bg}g+=@MjIYHA#GPT|22_Q1+C>iK?2x=O~>KIdb{t#fI)`F|AXdAhp= zwGd&WZ{>V+G?lI!`qJ~|zFq|7WZ#{oXExNNmH6NUVRwc1ldY<`-m4E5f{(^4t%Sb$ zxsCSTXsdi_rt$JIVp)m%eQCwYxAYL1-O?X7DpK^%iia#?xHI*+e;N)RS-1{O2zQ4URfffI^A2t$b>}(moLgotz z#*n)0&g)b0Q1HC+-~a8^N1W(sc%)PH5EhpxJu#D8fp6)ZLI8@|e58Gn4> z{=nCEH`-g0b-aq&E4wzhxK`}CBt^jWEQFEUOFe;;qNG8e&7BcJ1KZVw!PR%B&eA|&trND2qb%eWA*0TH5&-Y>TC*4;)^lD|G|*i*1d>R=IYK>OthVar;g z;et9V0WoRz$~gDt#`oLEO=8TWGtumO%v8(jCo9UEYtAFz&P zQ2N$=y-KDcqEaJaB)GTHbYv@Gexww~j)=BsCr^g<4D_TZxKOH2vLn3CufW@z$|UVc z3IznF7vUwQn*ILe*VI}Ef62*+?Vuj@y2tt%Y7IPs0N*`()_|8(oFga2F78E#*3UIu z{dCoNY5F71D_`UamUHjT{bz*IAdPLvP z2SuiNYFDp@DF(>U`uvu7tYKMb&J?`>qdy5In)#dvbyFR=b#83M<&3cppXsYf5DeIJ!Mn`{ITJAsc_18P}3;pU< zWA-9S{tz(h$AkR-np3E6jsJG*u+G-9NeVkYU;2q{mns}+a1{z`*-}h!`?6FTRKK!Y zJnS>Se@IQgJM5D#~;-(Wu{GcjVeu}B;Je^c`a*Kb3zMaB@gWPKR&AV`l)SNKSCaSt%PXp z=4skd+cQg*fAOp(@LN3B2)yKOFhE%x```C{52)7wu_!@Vh_f8FLA1=-9bi;1uM!mx ztH;`+o!laJ%`F!$0==8Wlm*TA=C17`RtY&+_L*1=Hz0k4g{R@W=Qy>9Udu(kdDoec zbZf=6b3%ck7xp9WRQ;q7a}QEIqu(1~fbn|1CrdCNl}2$%n$NUzW=-x$2haNY8{3_j zZ7F&5`Tb0!{VlS1lw6~Z`WuwT_gnRwQ|tC%_u^8Qx!Y`%NzCLyd<)tE|M(s%U z8|u+SPD+hPDm}ja){%T$;bfCRlSHrRat2Wa2FQON2hRUcYKpk&)#c9lJp$Y*-|u$| zHM}x^?nu|g_md}CyCmUEYhiT{jZC#)r|tas1)P46xnDuqO|NuRg_XzbPk+t2-Qcwm zg3?ayQHAAnVbCDyRZRBl91skeamN4rI^ipG9Yu7I?%F9v3m|9x_BXB{v*PzwZ1DJf z8*)r~K$O)hfql-J7AmjU#_RtmB*aDu`wZFeCaaZ{!{fGVR~6N9cmAx=J#rdX-C6MQ z3j4E#>#f5ic$QuuFz}<$Fi*%IHOH}c5}Pf-357tCA_XZVc+Ok5tvSl|x`_}^g-a4_ z_ry?spWbLFfIGe4(x)c;o1~JFaBL_kL`5FjY^=+9HSp#_$hr93K?Z3l?lC#=4O8Dl>r0xpZ zS4+T`VZmzKw{$)phbhu0q3d_2z1r&C(pfk@d~zf^QLT<;MHdQ8R@=O8yzvF28<+6Z zf&c!|XS{-D!IR&25jHb}*0g@N6Q{cwR@=B*Q(rqZQ|C`_sY#K|&c70`HT8-9&R?Vm z1JBNQ|NP(!0oxz5>BN@o3QhYDy!ylMwY5a(t&eN}T&odKIkOReD=HZcm^BmTE-LQ* zb!)IawOVOjW3h=nxbRH0@H}fkA`P||c0%$bhOMHCBu>5zaHWgPVPaaSs=4E~3L0Ku_^5W}AH!7(E){%izTQ`8-vJbxPk)=gZ;mxK3Jpw)_1;@FNCi z5Mu6og9(1^LnpoDL^U+?>{i@bHK!`uS^W=IpYv4?`zIDZ-RR-}^-|C>pJ*3b7*P7& z!#*Oo;^w_)$rVXq_S|qlV%#^@dU7adWDW8=Q!Yv|FO>hJwNxQy#R8K1n@hjs7lG<i_r7({n#h2^ zS`4zo+zwvtxJ$T@g!YTcF^FlV3r<^x)mbgY4V3o_#Z4RUBq>2(trzD9wi({(whBva zvnIm!gn|SaFs6kKQhacW?Ad%Khv_Z6_$9t1Acwq9v?0(rN`sHerH|C?PF#=Phcgvt z`oh6bPyfoIn4exJQ@jTX9oMCp0;sKD0dAdZdpxAf8D#Y)CM z*r@B{^0ntLKBN1Q5%+G5!WQ|+9I%z#D~NrCD~RjJ{MkZP-rOBy_=He)W`Ff=YZT6wFWdG8wVNRdnag zBD>P@h^(3e;HbP5pUW zo-;keT#liu@ILe2=~Nh;!dk>!2~ZnA=9E)3`N&7Gl`x{V<}6b)_h^&*VphL{71_J^<>uv!V#b*^Tl!gi zhX)yo$Q7zgT#uwJrVZL$2s~F--6FrVe*LK=z;EKv*`|1U#PnpdstP_8z`$W-=LzS_ zG&RZ>BB*LwVWNrU5<}UG@SiR%)abB49xbSyh-RVS+DKB+clzm^@KbuckEv{+UNYpObB z|4xdxemsrDV8;EExNz#(Q>#ri)b2+VrOOmoP(sD|^q7nHzP@auT`KbJ9F6%2RGue} z81vavWCoJ@$)`(!#Hn+I_Hpe+myI$_Uu2qO@tt@gAE^!=3@5__xdPw;>K|eBlf=*i zFZkN;Po$2%kk#El*Yw-9Sd}COj0!-Ll!DNcnwlGlP_MQazpVMop8*d>Mw(c}Pe2W{ z%VkDS$&_CLnQr4Ohs_~cet2NwFM^Tk0u1iA?V*Xbc=XewMbB$!a1yt?_0M}a)8TH? zSSC}F0$$VDvK{*>Hd51-L^Js-805Y9upQNoWja6|`h&y6a4jjFG8TRUzk2YcZV!GW zHHa9CWshjsMG$;T+!{>?j5zt$*F^J=o6Wwue7p#bqZ`EhCG(!sZHX^aKA&S4d!)P` zeuMhVQ?=kC8X?udVa&Sct&Zi+sxNXUUQxTL7k+FGHhh~3Ah(v>83fw zbM}kHUnvWIhnD!vzX(hrtFTzMRZCM6t{4uK(WnnMOUQ|gogn`usnnC-WX1Mc4eBS}gzesK)SJW4SV zl;Q@@te_@emJ>9d`{NDM2(0?J8hamtPQvf-jdO$*UJ4>5e?cqGkc8;g)TMjw+o=hWPdnq358L`(rVXL#WsY<^^ZBt}E~ z7x*|6kW(gMt>Nek7teAU34JDPyr$b75)l>i?DR;?_qxYA(Qk_-}C{>R&&E zdU^gc6BA}oHHe4QpI7`H_o`_AOffI0NF)DiU5LShIk}7a2~*BEx9RLZdK#&mn7r9V z<-zl;e<|vB%LWt>i&WGMfFpbDRcZA9GyS|=Ghvm^fC6vnD?n7C4I+D=ZwX70sw$9I zRgOGr65%`VJ-~Q=7129Lx=b#Z3#zA~YLbKNLEoEyE|lQD7U{C>mKn9eBG1TDqC|AP zZJfAeqw*ZES6|trn;V?Zg{yI+hYJe-jyk^Rg0GU^!$%(>);MHHgLUr%%+}n_p6Jl> zx?jz36tUGr0iQ#(OF3j;OEyl}P=kZ86dIR+$|X z8HHog2DT{#>?L8IAYBh{Ke-hfvO9gV8SIbVfbYMnvQ#c(7$$T-fc~`BH6vMY>ZkWs zEjWa_xdncHrBdnV4BBSr0$0&q#*N_TZ9@|*dK%bp}JXGIvvbS z56up`|BChR*no$Ms+rQnsGB0!TZ{!}4Q~>UJq7wDx)s;inQ0A@5-FrQ#3LW-gQB!h%!tO&3n1zAnarCIM`$|+ z+!j`8P8f3>8(Y2o;4h_-mcsiZ>XAZq&RkMIDE4z6)Ae7Sn`Bn182_xp@6K#Y1P z`4&#s=d8Yca?|-=t>dk?p&Cia^Ffyq{a>SB79VnJCdJS1l^T^?o`8>VUK_p>eSH_j z?0)6>o|i|1|D#mXYc56OG+MGxtqJUdWSf?57R5;P`~BX^5d6SJCkSH4W(jrbD5oIOUC10^KEYfu!W5KupbHkf~npC8?mdWIF8glSu>=I#_e zF4mW^0RuYWEX?Q| zAH5S7K6&mHGOz>X|F7yG7#e|5e{vod-reW$YNb{#OmLqY8+&|rNUz89gB9z8mP}T;}rSYH!-|59$>D0iHd8*~di}8!&m{jR8+C z{I(+JRLO``~@8(q+N1ciu;vv z-RR@@@wjZSLC%E7|5wa;M0wr$~Evsd)~9j&5PRL0lo6P*HcOKpn-eLsq2L2T4KWF=;#2&^#R!; z<1M8^zl|w8NGH`3FV&0$a5p#@1pa-iI>LDfO*WZ7(ao!{=igCY{nip4IWn<#we0_% zU59QE@7N#d64T1mcHTA7w?c0~l?svj^EAyw^iHdi4HI-~a{!5DbFso|BmT)b9y=A% zX&WZt*{zWdR644bl|7mN)Io6}kvC4_*$wW%>cWiDH;;Tqt5dG=% zE;G=a0bAn<7eOy(0nHvc(sM1*)`|Bzds5XQ?}Dwa8-JAom_WSWba!A5$)?2UWhH%n!Bg6%bw3U z9}(u~C-h>mujI@Z4^>iGrN8JctlYZ$-f`!R_6+qnR>yr)*q5`;@L)%6pVu^ocMLd` ztZTn~`vUw7HHIoX!_SLVxi8d24k=m0tfDv~*#>G)$o3>tQUj&NrToVG90H=tj5)U= zd|W*C5A8-LA6&dI9m`7gQ8g7h8X0|H->)X$50<2Jqby|xfApewSK5;%Z|*O{x0bO# zc^B?@dR+EwS;f>~Yp}h*{2uDswMQElHZ*BT?&frpuq?!y1arJGIZJjw-kbj+pmzno zH~XjoL?PY%-{Tm0B>xY4LSMGyunP~s)9WBA$CkwJ)=8D2kE83lMKcT%8Ip_(Rs+;4 z*UdV(!rNYU%y2|72kn4QHl%MCt?rl`YtGe;a||zL9O=?{jRrUJNWst{w#c?q+e-tZ zBtYSwk{^0tI`Yj}sw5&jdIbYmS%nb=Cu>86@m=Pa0sd&H!cu8DhBZH(MZ)aqtTtbQ z3XO*XH}mj@@D~;lhtr{UABj#9o=so=d*d^l(^19Q)IYGQb+6VvG^=9FhN47Hlo@ib zC|0az`zPUESaRKC5U;WZ<%wcn!HYj3R}-vR5PD4A-iWwG_4BC1UO7ORXCm?-+0Uet zbK;fwQFS6s0KYC&!c&j%D-p%+0CIfggtAqj&+zBU1@|Dc*eqq9(j@`UPO9NS8H7TM zM83WvBOt2*q~DqMRa18UpLjRjq5YAu#UkeDBe{pnmF=a=I=F-{YvgNvDCT*(3kQxiYT2=Y2i;1 z?%k=fSdA;(|NBkGQHwaovuD`~u4rSSyO>BD&|k(4Uwk)hKtvFcOUsgFkrVngu!!Z@ z!bQnDd5kV563``%B@qzX%Zurg+PB))=9d%j{pmg}kp_0g<4`!H^DEQF@EK*u-;TUz zhA|=A*&pt4ExN~IW3hLv*5MSoafIW2j5U{{VDxLfdh(YhCq;Az+_-|FRe|k~zb=6s zK)hOyp`i!PdznZ=;$|@=`o%MPfszJmL#_0$KBU`1%yV=1FKx~>DTKl~#J~307L|)l z`dw6)43J54H>245`4O6s8~Q^x*2URxK1~VPZjBpRMmC*}XN=XMNAyj_j@P8JZ6a2q zgjT!LEhP6$X^q*wd)R5$Kz9*1K3+pw8hPo&2e>oQj zVJdP?ba|3#7M`~Fth-n2r~AVO>8lTp8TI*cRM9;kHjM|kO6Eu6Hjq!%|4{ueVxIu5 zr{*ZgreT3E?#&TtZaP4fL^yB|xYsZMOT+!3)bZl+divq9mgH%^d?AxcraSD?e=c`& zJz2Xya?_s4%n9^A#mQRD?lSkgy)K?}G&<;q#8FXl_(`5IxyIq?N&I>xRx4Xlqko&R z9kG9Nb95MYt16 zbA42)bU#ewCZIm8QH*XU=DLUvv!|Ucws;%vc4~-lp7(nTwG_8oLphtAFp;pBEXZdQ z`R`Z#Z{>CbhztM8soTClFPNI%%n^Jcx|Pu^OPWMti)Si8?kasz$ZL|iPIyd0NRP;~ z+!-lOI(P#4gq61W!MtlgeGw%WYnAOuhnPvJmS`1yOK}R7 zdR~zmbh-n*g^nH{Qi z9HCJ6YOI^vtc^{hc~kh=Rt_2qy%R=l3GwiOWo&Ge^Ojl13jVV^7|CuS}}p zfi=B9y=qaEnim~5RVwF__s%!Yg=L-(ypPM>?t}d=;JW z4;jcG*L*S&^&+}x7XFpIBY#aoPbmS(d_(^=W^s*f_PvWFzh1P1hpD$1A8AsBqD%AX zipiN>%4nVZ<^r{msuJuE2c_dHoGyG8e)StKo-~i0#4;VC{-=s>2P?@xVC`-{`kTlB z32@0QuIj3b{DC8#4%>Kz0e4|M&4n{v!VjypH^{ z(gKvKE2M~_($U!do+Bi55bAGrr!m6coW1wq-gUY26srqOnT%hbM8-cKF{Jj@Bq*di z`&s3KgAq60ulzuso{qB%mz1SMNhTbZH3Dz1ip{ejm(M85E|@73MneAnGw=_y7pGOD z-XnQs-M0HQ1JEfla&P`$EwnV-0ryA!#NHPR6p2J%tc8mi^59CBU)fXGuOxUJnhWnm zsD}#HBnH%*jBeilExkcli2iubd`VWV8)}WZw#-7vF|*e(&vDLm-Ivez{@suJasAUD=~10?z2C3ba~{eo zQlH4s)=`9gUlU#8p((8iaj3eIIh?0zgPRLGUaq%^8}sbcw7h-Ch$$_KPRjbAIjOr8 zzQhEtO5>yxPAtD$>q+8fN|unv)X60;Zwjb*OPlgNEp~w~e=)-4NzogZ^(lAXOuj*! zlzWFEEO;$n{XvsZ!Z-W}D94{+0m>jG-~I>vD2CvT)fcD!Hx^D^_I;+CG}YaH0L4Jz zE5NG*_{-P@^o7iqdtjpj2vO#g7gd5MPm*oIaX_&v3nUI7obdC%yDl~thd4;iG_Kw= zoO&eEQ5509=t5wYVOK8{kh6af+d3l9d@M72~u%rT8 za%~D0i+P?}6}0E)K;)NTv??<@auFUQ=Pd<@v}dnuGI|mReF09(!2JB%BIi}y-F0(L zfpPHk<*9RS2`NJh`k25O$TMb05;i`lamtL6&TJs8!T*& zcxFIH0=2Mz1v#6D-KlT{-{ZR<;*TYYhscG4KBm-n-nmb$;)Z&#EbJrbo8=JlpgD}T zG;K~xTWXCHhusj){cMST8I&RN>NUSj%0UgOMu`G_z^H@qGh-kZZa{jDlg2e=yB}u7 z_mP)VrA`m-2q@w$xU^>`^tRXhk_5~}^tM^09yyJ_l-CjPBHqW{$H70tv;G~~0a$hf z!71kO#erv%h9=-O#ntjRx>~&K{S}^G)hGs=nhJuO!ML#*)OfnQz5C%0LL@ZEisjVl zG$8yKj~@q9UM2%$K%_g(o=oBsjTmt-|JddMXn*h@1_&Wa_JIFTsxzbt!I6XE5@^O5 zj*7#R*YxE>T2|gI9X%yUt0fLHvz2%6+OLoh*x$5ym72L*EGpy-<~*t&kTyP9LVoeS z^XhN8Y+0k7i4vSy$j-w8Tqvu*EsU?(_?1S(Ds`*dsth->f@L%7Z6jXfUmu&8A{9>e zhnMj8u7u-G^yG5+!(~2qi=kQUNJ+#^z(wE?TbAd4)!D18aKV zZ-F+nQe$R(Z-L12>OKpk5|95JjNG`Tnl5u~7Qs1X6AhlLUL5pf4 z^1pv6>Jy$p2|9TiyomT!-qdCJf2(#N{0A99{dm+k6rukVos+i$oXtZW1X>J!>ZAaN z_y-JQe|WUZu{G`Tur5|QCY?lTTf{H^kdvyL^kx?y4jI~|_%ll(P!cK zX9%UTfC!W<7%9U1jdzs3!s-(Xzxs_>&ky~O zwl>JOj~2Z>EALdd@%npthXIx66DbZ4%t5qV}x6!RV;>G9OfuE|_vDwOGylk9%hsfLnvW0myN8Xx$Z$ zsE!$QN&7;S_}^IfJkP-qZ#V^_=Z9LNkwryCPp+4~Psr3=1yMCn%QSfD{RyucgqeaL z0_~y9(=0f{ik`oDPv!r}-%3#f1*?l)E(1S004?36#(uw7A2&c0?}3y!qhvodY^el@Lmnz}Sejli2S~ zxxhBhlb?o<$OLUwcV?UORmZrob0O#P*9}d2vgE|tbmZZ?uw7V-=05_!XUq5rPW^FA zI=A4o>i)ef&I%2Vr9!xp2amZyfrCgvtSGHN&Kq)1)AaGmz%Cc#~I zH`FiqR{0*G8rBhF8rs^OJY?_blRpomt%!PksmbPa z?l(!0Sx1@GHdSxB)&Fw!ypryrU?F50>-Fpn-TtzUJaIzQF=N+-?I0shWXsYBx6l9d z39b&$6i>VhN{5T$_HkBt*AqiGSj)e|>{Rn}n5$Ti0siF5%%bGIOH)ZKXBmI-UakfNwBBT#IxRmQu+xuHKRW;O{R&yJU7zGTi;6=*nY_) z>f((>7niTCln-TBykzE{iYU=FQ_(HY*~J9-#wCBNwsT=AH4Txu^R0eGwlCB7`Ogm$ z?pwbn`c4r|!s_V)Y3UZhT%tii!xEmi=tev9y}d&p2_&buF5$wLKKo1Cq!y{0l$6Yl`b@tO{ZA|TeuV5L)tgfd zn*OtU-%?bbkX(HA=W~YW(ss!*%G@-68ji7(G(2=Kp_}`+i3AcI$Yx8Y`QdQgSujd< zd8sM8d8truF!5b#iK6J8?;IH!#+7V#_>)6A?6ePkO*Kf~&n5(U-4G84?fR!u`~RA1 zvSTgJio*G zy2H)Y5HjutiA{m97w`XOKiES8!YzFFK;6d0oinJw4(5C;|G!^UV9_)6pBK>|6PMlc zv`lpGHYD8Oeki%{MpY9juP}5dgm91wT)z?Lzpfm%E2%VU{U|C~Eii&7^aWd``JnLt zlfq?Azpa{y9#tMxX>t=R-A;^TyTM!Fy&;rgoH1|?=;`S%abM;9h*z&YA7DuvaG?cuxX+TJ_P?x* zMLgb-T@-hkB}<0t`en7_61(vhLe6P|efl6QUAFFY1&;e4{x=RKL4{#(XfmEzWfyU8)9p3+jC(F?S$hfnpnDJJ9i*>pI8pZ z>6rn?i$)`J6u%Bx{XCWo&jfD0J&%(csXwSscf_S`Gg%5}#YyU0_-<+$*Vw*Pf-Qos zjfB0$g3*fpUfo=8bIFxH*u|h<*SAzImlkCMYG3;as$acIpTEo=*^8T)x#J^)Poiqx zF(LKX)CIr0FH~LM?LLSf?XZ71O<&%YFf)Zo2NsbyTe!rbVEuFD6-pp?4_E$|%sz@PS}xvpC@o@~ox{{w)qf#FR{=~)ZBA>u{Ijo@+{dB&&H8ZkHnhguJp`r(~B?^()n<>y8Bp{?0 zj5mv0_s;(1JfkriybWM+r@}f@b{Dx9`EM1@eUO8aX(AEAiinf=0m7CvCP8fFE&Z==&sfA`Z*P;$5jn8Flrn96EeCq)b+xc1NTZWstB7bT+;hmiit z{?vgM{?C>p9LWD>mVo-DPxWhGg43FF0eCpdbKZT+JihP#Vs{U@u-u*RdOoWLbSf+p z<{OVY-{nDjlu_>cAr9YOD@riCEoM+O8eN}59s-xAthTFB%lxE{GlaRZQRm%#>>OHK zQKSu7Y&nqbuSqnmvCS?u6SXXUT5_iw&h5Ow8kb^-YO-vBJO%pX?K+v{Ca-yXYyY7* z1PH(4av04<)m;Mj+gwf8kV^VUh8##zvH=wzp zHphKi5~9tE8I!;8#e*IfD8F*)Ra7L|Wf4}f5myO^2gjqBQ->AU;v>W;e0E>ONj^-{g%u;aZ2`R>LeS`vh3fsFWtq2n)Xh*#V@YLo^gg(bX{|7u? z`vN`xuNMkMbOhDA6GV)oa3pVNtR6?DohQ+dS-A4`6S_G{jpqIuAZ!#uHz}mB+bDz> zDq+c5XruqBhxFu5YF#9b*16OxlZyR&}{ z&IMV5W4bnjS~u~)q|k|R63a6=0piK?)qmO z%tlxGFJHadYWdA<{-Dlvns+A_M0v_?sKG8PgE+kN-rI|8L_aYg-Br%-a=M2r^t=C> zm2^B!peHRDS&JTmX5hW1Twov+JyH#Sdi^EDSZJ7<@t*dA72sY4bO9*Ch7EKtVu^(uc)8N?TAkQ@A{r!OmmjS8A2CvV;^kj6y2z2)a*bJX@2k&m zbV%H7UJmjg!Vg)C{X_AT;AULBe+_9Lelxc&{kh?rogh{=o(!5vphIgPK>NxaS$XAv+L}~Q|ZjOEX;jC;U{SeA({sz|V=VB31UY#|_1nXdMO#h<;KS0*- zK#Qn2LK1K)Q-`9YT;6P6Pbqn>`*_i3)PG9&%H%dk#~T~?k6z}a_XnQD^5o}-J*VB2 z_&FLOEB!Yv_oMq6G`@6O0-C=w4|KR~(gN9@zkf%cBXyk$53e}MdW~ND*-9K=tT<#B z6}MHi@B+->U01o!k;e(y-L)W_kD08|BZDaYs3%a;9MmFjX&1uMYX~-tQ&(5LE3Jj~ zeO?c+N|L92(|M}ViYfilwJtxFaAc}ls)_E5e5&DmzxQG$I32HK#l+u&QUq$5;@xmQ zhR1p3FE)CM)EAe^?;3~}>eRKw;B6z`Rcl+WG^;9IoJ^;dThp}~p)VTymLXvIfIQvI z+Px1w(QakoZ{H}8xu5PSyW)-`o<=35b_(8QAvPV9zuF(ag%A$2Jo%OU^HxxHV)4Ir zjT40O;vGZB!m+}Jfs;iQvzSj%;BfAap;Qt<1p|Jt4w3U1q6I$Z>?{t276S%Q5)8Y* zpJmjN-~1U}V5y43z;hllyc1Pj?b-P?FORb|edU0z?{&dHAQZu84SR$af*HW_c{KbW z<+(5*`Ve}{8-bSB=ecAL1YU-b$AyzB_`L)!Z$QQS8}l(Zv_b*qKdKIW@WTac`)4Ub z3#0j~1mRUGO($jtL)qNV*FNm1Equ|65T)CZTv4W`*}lts?0Jy1$V9vJW8i(}Xd!v_ z{uQ&E3Dz(6^3ap$GbAbF)Ex4SgkhO zKoUr3t?)R#7Z@?poeEp^?&y)3>dft~q4y485cpRlwsp*Axg_2qoqEII*~d3pYPaZ2 z4HKT!gIkj=jIS6nhm@h*}D&N@8^r5LP=F;zOc%ZPnG$rRtOQXZ4AXOped-Kt#T`}#6R z3art+f9C)Eow3Vxzmjn3WBicC;+`B);1;RyatdHJ{FTZr@;q`%mC3l)trpH^R>t-l zE_#}h*__rT^yPQQu^0^RN`*dA6Yi>^lO!=V|c{i)4l zs?Xe$O2n^bV)kj6WtZ55pFe>ks@k2X_9!cz)&h-1Y~HN{O8DTrPk0I-i-b_0zjrCZ zj}C{*kzPrW-GD4@8)D~L%j-jo;jRNPjO6K%Tpl_pUszQ#xp)m>jc1BO2J|2idk2

    Xrfs-2~VFAqW18-@#86 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

    DPbfoFiKYfGKPyPs%W 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 N0RW4l?u6#WOW-q?vv&qe&(qOqgjwg2cie9Kp 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�KKL%P;rmx&Bej|PYgZOKsb^IKf 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 MjhuwL8;1F;5=RsMTr09Rnd!L}F!Szq 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%0Dn{ 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

    Jk3nWRmI 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 (C< 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 literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/jaeger-server-query-2.png b/docusaurus-docs/static/images/jaeger-server-query-2.png new file mode 100644 index 0000000000000000000000000000000000000000..666d2f265de8e655d5b2aa32283d4ce945fe7fb3 GIT binary patch literal 12569 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 literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/jaeger-server-query.png b/docusaurus-docs/static/images/jaeger-server-query.png new file mode 100644 index 0000000000000000000000000000000000000000..1957e230b051f919406f4b03eda4686f85a637f8 GIT binary patch literal 12857 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 Hu0Q@CFlRAD literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/jaeger-ui.png b/docusaurus-docs/static/images/jaeger-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..281b044e0f28c7ca660502076ece25518c8103fa GIT binary patch literal 15277 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ⓈT z=M7vwv-|yfG`5c=PxH$X6VG$)4@Hm~{2dxad#PKtjSY&X=c>^GW@hV2)swg=T-u^2 zy?>x`nkQ9Txu87kmjg5xIj>$GQ@Qx6-Mz5J5A-0>A zW___)544K=N+6iSRFEWMn)&w^FzubNLw186*@97Z*(a z?Y9a2S@S`@TdKIQU9X;|=J4R)X&_rb!PzX~O2;7tH>gUzN1#m(4&F&5dpm8}CNM$^ zLt8()<^gmF&i`E~5$|9o7z5aMDJe(FXD>l4?%ZL7bMdlVI``EJQpL#_99mMu`GU5# zLOQ>_WQ5M9QD>g0dy?$Yz$pnh6qDD^611R4;QY>jz0e`W8aAqu6Rt4= zMVn@1Z{wUC8~`tuw1XjY7@d60MkM#=$3C;)q;vYup+wkadhfXgkysJCDV)Tbw+JKB z6W&g5gZ(3TF39&07^^v@snt^^lpG!(y$ zIkqVIAvl5EPK{I$B|*$^V#Tn)`k?L+5KbukOv2V!wy}2+WM3OfPE%H_&DKAB_z()1 za(0^^ZUd|W2Y-a4>mlv~)k8}DKI)9~IZ6r&VEWJQ+c9&`P%s!2NKc$MG5HByp}?;1i*NKKzyoNwZjrq)j>2Fky#c;f&(MID%qr&m zDml5jr6no|j>Rq-*87M3Wfcn_(1I<%GB@;|xtMr${0c_5c-~!S&)2i*l}GuJG*fun5BQ< z7j%^btxM?P_z_tB_3J$$*^u3&u^$s53S> z0{GRZ8Tx6z+i3SsPLjaAn3y_lP{US5M)Bxk?2j3Dm`m92XznnSc?DqHxHT`6Lx33i zbim5k#U)>j$5cGOAr$9(piff=(lIh(LqCp)aN1Z~cGW-NFH0)I~r(oDr*bm%xk?_k{z6}8cd39Jx1{p1^Qr<T{-*dgmvb5B5r$& zzX38VuT4pC5_$q|h-X!#f!+#NxelWW6M5ZGr2jW5pz@?G1nEs6$Njjv8P2Sh_ z>jenVH8gA`InvW9DvPO&q$fn$rZ;6D*ZKCzB0K?TTDaVMgfP$bpEs!gC!$2eO`6J@ XzNP(@n{_ybOOU&$M9h*gy8S-@aEZ3X literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/ratel/ratel_acl.png b/docusaurus-docs/static/images/ratel/ratel_acl.png new file mode 100644 index 0000000000000000000000000000000000000000..3c631c8fc939a55caac4c2864145e9b308167bcf GIT binary patch literal 40263 zcmcHgXH-)`&;SgBh$vm9Xpk<_1Vrf=kgf`9oiUV^I*O4>?fWOWI_1ih5YI+yKpeQh$bXc{uIk2lH4sV|v==g7!B z9+Ht$UG@W$$;epvV1k3DWMs51PAV$8FH}^xbiF<7om}n6$V_{xO#Dp^ezL$UJ|!iM zUb&fc3vyc(l6*_~0~eQ3?afcmlw-xYV`j$GD1(%kgxiJkx6H}RTxSOIX9y}cne8ke z3dH@&WE%BdCj5aeXJRttkwF`Sn9uTH43Nwb=gs%&wINm5Q!j*s0?&I{DarU35bDxr zY`S3&YBvwx-ZFmuS|ZHN`aFo>Ny8O)(B2SEbMB#?D3)|U_N-SWt1JEBkV}D_4DpUX zd4uAaVSiQe#!IFE`tNxCEw1ks%rY+{{RKUvsHFvcZ~d8N1W`VV__eOtKsE{?TOYh) z#j-YrzfxE6MeJ73X|&S4{@dPXjKaa3Y3b5t?}WLUqw%+5@)W=E|DhVLL>@TM9)jD< zB21an>z&@mz5VnWE%EolJ+SSNoUOUmAacAvK<)fdw7>TQ4Z%muzeT;&wJLc~jJUYd z@=l5{{r89c_fr*|yHo0HNMsamOcbOgsNdX<>G{znKIR;#UM!GBA-*8um?r>Bxn9Tp zorbc$_G;5G%l2A8lSree!7ux=_02Z@BFo4sjl-<_X&Dz)y5IDUY|YiWzca-MGFq_4 ze6r=54xdp=OJOXUzH4^>Z6EE{^YsJjiz@B}))-!8!*f%mVu`0#RiF%hwiwoV9wx6h zlc&!RkHqy;Irk(ID~>sP!!4O(%wAADy)rwq_0IG(eDsmg-VDt<89}9?3E`g%u_jeN z1V1gvG%2_X_Q&h?i*TPLG2bsm{r-982`)c9(0UQ_I{(+JPJv8$A)R#w#649Csq2(l zT+u)Zt!uN-CdZAIDKUmmR>NotxoED3HJCrH;0dJyhh#|tBb|VugbJPGmVVK?Q5#Mpp zcIEbCl#kB-E^4i93bcOHS9fjiv7g~PDu0y0IvP;RQgh5tb$B_Y#ERy!{=&hg-lhrc z2WL@`?w1;wfW4oeob>h59>IQwgQ&<;csJT;ZQI-0+pgrEPM2DNFn4}=T<>l@wKVR$ z8b+2#B9V$Q^^R_2^j%L>oGwHga1k}J%4EZ0>pzPqh3;0jGOk!Cv*k$eT3@RS1AgqI z3m^|=r0xDDz({jTN$AV+h3|X_yP@aTSm$~(-JMfe#m<4eMl!)ox{X22$doI2dAIdv={lQiK zaL#uscV71MXz_h!{B=YAdh`v46|)_#V6I!SwE65~Y&ky+-$;4Md5L@RdT}0HtxKKJ z+2c-ru700ipG+|AJKuVW=JVa>LC^bMpq{fATG46Kf$5~weTDh+j`yOZ2>5W z9GBx{-+rmLirx>uzRFRzQeV<>zYpT}Pa+7kGs$a`@g;xK{`#^kcT#^?mqT~S$=TW5 z8Sk7h#^f|SRyn#*6KHi*x4~b|F_rwQIHBZM*~>EdGX7HkGK`}{hKR_QH1&ZJks_lB zoiUCvNYj?NsQEn+#I$RbW|dr(i+N4c&pD~Nhx@T}YIEyzR82LG{@Y2uuD&yJud~hM zQsp#!+;@++#(g!mdUrOqMW+|5f|PKP94|(U#k3M@q(L5;OM-AeIrWzOhV7^Lr+7d7 zT}ZTo-m(s?09FMmMw%eikn_(*zV&d;=8oo$uaqjWQP|ErmihR)_i-x-xcew|&?sp-MK^uJGwt z)d4g3!}ga}NWDEjRaWYL{z>3p1UGJ88L=O!v0AdyuQ9LD@o>TTVCa@wpvTbP!7PL< z9N%fw>F|l$A#rVUJsso!4I>unaB=TqktC)*7ti!@L7^V_?Qs}etz@o9(%ml{t$ej2 z{X8*jhRnzJXN10RcJiLe4!lbpn(KkE{|4~T$=*9m-tWu#sc37*^*a5hw)#Fz4qC5(-4 z^^R?A=@pp7hcMdS=1nL|q^!%DF{)$uv-i9BJ5eD@=7GD``WJ@--ro-2VJ~y}wKQk4 z|8k4p_cHrUyid3vs1L69J3L+6SxXem6BIU>>!s(E2k#Xb{xQ^ZRsjf#$hv8mkF?f$ zx%B#e#N7iuCQV=MxDk0ODAV5TX+?tl;|cm&wY9ELqX64PTq&YF#yg?ufnr(!dm zj35E?nfiX{Si9P?=2;Qz!0Ulu1BizkB8b+v-#^9i5nnz@Z+>`W-s~jn)fRA8#jGUk zS2byA)>sdn+A{L3_*(JO1POZLG!*HbcsS%D=(6rIFO)9~m^Q1iK%fU8tN6@R?o@)* z7gy89)j#T_UYE>p=_z-q#n;VeM=WD$@)o?!(?+w#sUE!U!ZRnXL5C+`B>vnS-V>lP zn@}VFLw?@x2S(0v-_jC3{}xvdXjHeFXmdEvsR&ZRNlnV3+!y<1Oqx0O(lMcD7I=>q zdR2Bug)MOHNzzarUG#SJ%iW}QC*MVEH@-P)GHRN)AVESJFU>((T*qZ=vuLMk&?Sh< ztIJAVm|h&@{{iyf=Wo}s&vy05nGC*|oH3BrNt9jmey}rm*0AdED%&<&K15+9c!Cm1 zqaliaU5Q-tEkoCDuJ?onki1%dR1~4(aH&xh2op97jb@Gx7N7k!?C7q8ho}4N_PgK) ztnql2d`sW5dq)rQ=(jt1Q5r{$#xBB+!v5wS=MDE9YCK3RC$0ajfx20_X>dj>AkOcv z{v`TY5h_aROF(iPiUmO7Pr|tMseYvZ8;0tfop*Zdu#Tt4)zE|3 zkZRDNQ5b4jY*n-E7l@qJPvXh#uoijp+@dSbqJ7!yvdUQurBscOLN`x6OpU~ZGFi!* zJax}|8*JQKIsGhVoN5(}&b#@qQA{pEYb!DzPAqEwP>W1u%xghjWDAlNs*@o!2?T=F z2`+SzJ{wN+Emp7`U^o_2Yd`Zl?-}aOS8z!6g&}sEL7epTN+i{y-)W=j?OU~BAP1NSC#~VA*05{KnEM!ju zl<^gqvk{!Y69r~j4Y4*suc zT~1K!Uyqo$=p(WJ8T*p;>AzMvU8ev$S2I;7x69?Zl%XIgF7fm~=>PwE{#WAv;WYhU zPFZQG|I7J*dj5Yojlg!^Djsf^B7GG8S2O>`{C_+Di}9)0znTA^mH5wP{*TtnbylE$ zD)v7*Q=rz-^f{owZBLi zW@tp{J8#R%iH%aEDh}WxBITyVnm6YRzxIy0RDbDdp2cKE5BC zX#)0kn(6gC=*O254wrQpjK88+(?l(tT*k+V%P*?ATWRXqYAxbOPnkvZzY7@)>?#|3 zy*xx+Qgb2qCas$Uc_&yzEZy0pTpMrw_+U0WUWV>0<>PkEv)JH>E zrMYg|Dr6S!c{#D5i<}j9JSz$`+9?xyReHrwcBnxp+x(Z5-P@VDMxUsKOC7EiWT%Bp z7uTR<_=HW0B~&iLF2bV7(}eUE;#giBz)jXJ-!Eb34HLIUi?uT+$B)3}WarXxt-3{= zkIy#~=Q1zloY|L93J=wd>)t2E(XSwHhAbVQUCMt(nx(Wo`A>cLiD^asGng=$o0XS< zj7#UL@IM%HyX#-DhU~X$?f=)^&pijm2h-YbhkZ}|ysj$RXEz-FquJ}vg9=bb6d#{j z^~0;vRUnTKEF#U3=*BnenlH7rn}kw@&4>`+D#v7=%mah{jl)6vPJQg)_o*TV54>HL zq+Dkl6>)6VL@N5`bz$RHr1VU&_T98kpIp^Gur$Rn3(u@BGBj5c{F;CNSd{jm=he7y z0%1vA#?|I_A{mm+FGXei)1@KN^lUbuP+UZnRYUI}y!;|)O+i>MUv)N`-Mf+-WX^x1l+aLOB~{moqQO`k4`5LGNH0d zq3o{d<39$kWqE8M&`Dtk7*l7n^IMOKk^~9)ToM}BHsL>h5kjLt^0z!W@a0GdS85^Ne3)l0QyzcSr8c zu^+ASgJ${_N%eLECZ}%IR`7C3_Zcp4VZXF^Ht9JB5VjeEKYyzdMc+cdKj(_YU!+eL z77<242-j^(634($Oq;zJ$z94Ll?Eb;+I%|XkJ?TD?e$?$fz#n+?s>z5)WtIWHF7@# zV)0kH9A=3$Ih443(^qQ7*5P_j#R@fF9 zQm50`^vK1SkAy>gl4v+W(kk@qJ`V5GntWFO#`15(NQ26deLDu0ipDgF778R4w}FXO zBT)*x_z=1Fv*FMYMal1bOCeq0NkJFmiEQtTS{c(3)&>8q#&!Fk4$KuwWYY9@gt&c5 z`qj{iMK6bzmB(S<^)Hudq0uRYsPM*cO$@aHCU-daR3v)7PMog-44GJkR>XUgtM!mg z<(b^)`{9f#w{bIXs-<2ZAP}}8ks^^_SuZfYobAoI3E%n+wh@7fF6S)mWTlLyx_9tJ z%isF>_Oy23hSnFpe|6bp0%EGn_svE6QkLri~jIBW(U3(wA>=m`eccrH&nQ;C*`eGwJXxO*S=&w~?yQRb;sBT`N zS*El7lqMChzTIm6c-pZ+M+~p#FGROIf!G0#xxTr7XI-KP${F&6yLFl0wgr8Lf>@1? zRqClVXci6TC_MJ22zzhf7%?>>YAA3&lF2=U4c~FOm*l*MrkOOYJh`1VDrZR~!0(cr zVw4r6*D8=C7|KNc+?$1Y>&OLAZQot zh7&0xmleqS!GjxOZO)oZ)^Hf$!_W7otGHEjh2ajQy75MirC%h161N2Vzh{5 z^8z&R2WbPKu){#Ww%CwP-u#H0yU};gi52GGY*eK$>z(-Q>*J#R-$x?{E$KpL;~-qm z2$YyreV)4-n^L0HFjav%m6g&4NJ`M%uxPNaqT_h{(7PtI#To0&Ib5s_+aAHTw(VDB zjgLWfZu^+Vv7$1jgNr>eUeg-#>o z3I_nB!dFQp@I5al}7DQjgv8+7KQ?aoE$5~DwIGAgAXU1#XQ6W z9laQ-z_7ZTCj^$o!MB9qB|U^~EM5AGKXQy&{zh=4*55&K^#@EdrRNKA*Gxsk990V1~Yj@u?S)t7kz+>Aux7q+T`X~HYkM@{i_#&Cx2c@~YFzR+d0 zX=#4AJ!Jowy}U1W>6*2_uD}PAbJ-0KMGZ|A?9O!A`jt_=lfzw)vukIwCAfNyK6dz2 z)}8&Rc?`6__aplz+oX1;L~{_Pb@o^45PT-`%D0Q0z^-2H(>}4#QF6jO9qKjOgRq@W zI++gQJZsY#TCgok`d%&c@bAc)AmVx7@!f_>B{;hX$ z8_&z!5ZI`vc8>^Qb2ca$y52pQA$fT!_)YV1 z>kKem<6w!Kcc?&>kBksq2bcdWV%5$SJW$0(YiUErbD_k21}T@5dl#mC_k6!BKlqC7 zo+yEZ?t>CFjn$9=7J--YLZOu}ilIINGYYAL6799IM;;`%j&{LkNom)1)o-&@0enPXEu&7hHH~sifi` zc#b`A!Tkf8Z%nZ_;)E zdRn%ae{5qD&zf z#R_lEpH99Cw~^P7klfWr?QIHn$vG+Xd87Kvb`<=oEMq3+wiIM>KeLfvfN}z+7rQ6E zyUSgBDaeSG{FLduR0}J*?ho>AR?FFHbl-k}?k&DySF3*CjMls2&S~i-5 z7w?`ox|dfL6Tva_!&yBHoZ$Hq^)ymZ8_t@we_?%j(e`{DVCj6_3Z6Ji8FURpu^;{J z$zaGAroq06ETH7GfmF|$AlU|}<%)c{D8zhz1+$;`o5LSVC#nek zJgep|kL^)<$k~ReA$OlY&Ne`X&$3ggyT^<+I}@1>o2v0k`eG)`xU=aK;V;>9?nj9? z@k(mo3PWfuW|Avr3!FC+i$JPk0^v0m(lgNL4ro5HKsVKVu+k#JS~1Owuvtu8^bZSy zE`ecVn1xN{Woi7X$}(&Iy2P@!;^7uHxU^&53b$ae7-CpEZoA{_Y&=V;g=6=5PxG}- zpt3A_gi0L;*#?*FyIAp^y2}rWln~1pOOaw9D?^`yF%k=2p9!wJ(G_NBdENQ(QD}6t zPh#GP8&wNTzuBFdEK)P?q1C}g2j|?!uU(!96?(Z*xkeY4+x*%mYV1r=^zv(5%e>5P z=uXOM0zpAZ4Y+x1#c#fwhR)<-C^9gps+_mNI!e0Ceczd?`lIq$;Gw{ZQ;zYvCNnXq zd(E=ewlN-(1Huz`a2G%MIXtp)JC3{>#OiKR-NBT7;MXaGz^bVT1)pGsjx2bd@@Fved9u_UhPAgX$8wr@XQV9!BC5o z=O|;Qygx$HbG5>3!WyRW^5v@r21R1GiGyL-?s%XW=c(#^!Dz*jIAt3QPye?^b;_a$ z+T352+3c22Q%SQ3@pW9Dj$;!19dv93!D?qdc54r{Q~@vIcj`6sRmE^wHOmMT@^vVDf-E+7$ZsiKPv6ZO0B z+~xGJoUSQz?kue_drG72MrN_Ug}lVLssfw1}k{v z8VmRX$v&Rj!M6Q~6o8_ay=n>+XxepPnDm7pEtoHHB^UJ?Qx~z|QjM!$3dOZE7LJry zSx|~W)tT#=eq)zV%a9@AYZR)@vD4a=oT}tHDx}HLM72B>OepbDZ4C__bsRV4M>fJ2 z;C}Znv1GSV{1&`yW7g2o)Q=8K_4Da{&PrixFu8W>MZ zxBDn5Z!c;rbK>>XSI>-Ca}+$^83EytgeN?TJllj9NBzflv-UYO2)YCd;4l2bR?z)D zrSY=Hc~SY##aR?uvOk#vJ`sC2#P(uYm)F8U{j!vtcMPYnLf zPAA$x_8S!&;ds%B!<|UO(n^dD?GtqyJz#6JJi%smSjJ{`T^79^sfKa^Y%zg=*!k)`nNwUS7Nl(Xl)|*WmOj zRaF1#=m?85_;?Q+jjWm874Yvk(Kh|Adg7b6AEUzH*W%lvPPd~`{R63&TK|`IO{v<8 zkzV$ukg>HpSN$4?FxFqE4X`PYh-d#z7DH#*q9=l&p%e)GfZc28$q)P6t0g?$F z>V|i8-TmSp5aW>JKxC9ic~^n@hYg7>Rx`<%NmD&rL%JWPjiQR}QPlvj^Ld$nc?yl5 zbMAIk1;_(C&`pj)@SpFSg<5hcZVV){= z(dORG_gPssYP%KchZl4V08P9FLC1)eIe$`jLP0;mB3_j}U052^5tRohge+p^{3`FB z$JL;43@Gc4Dfq_D;;2hCp_Kobjag0R^h-G34*4i?^0en^?4MGDto+v6Kp1YTp%veani7(}-+HiW4t=SJUgGf|J3Y zH-YJb;E0`M!yiv2r?H4}f-VrYgEh8$3dc1m?C9x_G%c~tYhr31J={5hs$o_%QcRhy zF+akd+n8Q2Gcn84S4@jJiM{fITD`93`6ZXWxnrCHh1}dfeal3b~RXx z?om=VD6>{dJQTT?Z`1&htk5gSNENVJ*qN?g4|+KH3{4~^lAdNj%#SOOpZ&@6e98$? zi`RC3j{YfbCv5hK7f6IYXQovHx~>mUHofjZqkeFH3rL|6r~b4P8(X~3Nx)rYQ#fP@ z<&4afcW)cE3fR%>*!z977xzJ|HVD(n*MYP9Ic|5-)dxEp82A6iMfg)A9%3d7N4+>1 zfAVU^DBbF9x|L535IYm0kh|q233}0UsH{jDA0crlatDQS`mB&nx+fB6n@p_Uv@H8n z!AXZtri*=Pkd@^k^uDWZCPSbJk^y7z;TYBV5zPN&+Yjd^jVJO0mhfk&WjxVnoKhHj zJ;#5;$+)7}g-$)o>(>jv)i#G&vl8qt`oE|C&fiMA9%Ss^WKWWKssp}1X>C$7Uc=gs z6cZ0>h@M@!4DkT@99?%g_e2zbS{P91(UrhPe93pIaU}UZ%CLSgD%Z4!7}f zV=D#wiO|$pl*83|xx;bmaX8=${?~X7LOvoy8?jLJVZ&ytPI6EqKGzifk-C^#l{zOM z`xTN+6Yfqx04Mfqjv}t*JFhkSl&W%)MitP&z#~%Ex~y=7_u6WZ z1-u2%{fy3)4yP}cplr&3dLFt6M@kw>+#4>kChm=O1sP$8rofx{Iwkmrlm!=s1vm_Q zHt|S?`GsDX!K+4r%40BwZzvEl1|{KJaVTjtI2U`p#Ve@0@k$aTNEKMN6FGmR#wwG; z0O@C10S9K!`=2u8|XR@xfc9PjN|s}8t#v){%g&n{z(eAF&!gX7f0cJTf4)YdmQK1ybw2J z=AGAR>Csd@_pp}bD5IWtP4Tc+%nWQnYPgg8OF{8Gn9x~P^0Fp5d^_v`0*^ zfx6=tlbL~3RA;&B6PFWL#l)AB;QVfYex;+H3#vID`Sb*HfY=l=hd|on{kjAmHhb>; z1iFsU?-NIRKZ$Z(dTiZ*R%@TFuEqLI2fDjb-8fe#Gwh+j=jVO&ZdIrkeN+SO>y5#w zzf$+cX-03*9C_}1#LPueY0X2Cf{NAL({D++X&Q=gc6+C*pG#*qIQ1=F5{`UCw1EOWVs#j<= z#dF*F(z;@hy4r<+hIFsw=jY_AIK3WiI)6&;NO4LoVt$3Xrn^dzH(*uy>xRgd_~eSd zoiZggkaWgwxw7qgQb=R8xqtI1!W|_xWR9$DtOJ+`FIXtFjOO-@)lA}7{=E4VaQdh^nVA$~wzV``fLn#od}v|s7it#A z(&Vi=F`t?$$W@X2Q-)^{h<}gL|X0dv=2j{5M4h^T_+VP@S z40T@H<)#OBZF;wGNVlRc&&}{3crT@qJX{*2FGCIDO7g+n#C~xX297|fsDOR>qj|Uu zQ=Cjj=+ud9gLz^b+205PPB8u32?^G9&Of%PqWEA7TJ1ae$Hg==`~$?dapYLRxTfKx zrdf$_|D0cmpf%5q7KY-sq%5ZoR~6!|j5qN?K?`8r(S}m&gzeV3IqSl)%4bK%-^Zmn z9SnW0qPO%%pa^V13If;dHo5LGOp8eOF2LnFaukNdjJuR@yZ|C07^db%dR7c`aLKy) zT`GaAJe+6UN=Fc%hy0S^zI$c7^uEiFZp!JpH#r+Y|Cp*wA}~kbwX|>TzPsnxeC4Z@ zKTyjj2b=4^Qk%@1oKHC#M{h>6ueJD}#ib%-RDJm5>A3Gb@#{psF7mchJQss-q&Uv< zGRS{-Z^e6etY!%B;VZBDNM4oEh)CPXFcsgQ6b>71laPo8i;hdDQh$dOzmtjZArpS+IR z%_Ee?{Pe<50WIcG)J6bmmYSZ|GSrHjve`=tr+b2iXPe%_<)f9o$fck$nBvgcSQoS< zI_i@Gh64l?rM|8(+9sXWYy$IQ{yye814wMgEoOElwIm^^Bv69D!$8F%?Z39qj)Oq_ zk+E=|RqZaZmer^WO1I3ot~FX)d^Mdgr}KQ1m|9QG6wRHGlj9!!Vay}FS9K6!Z~>GH zf75>D*m~xlY5m!eWp;->EOnAg-%JW;@8d4s<>Gm!a#RN-_e^v;z!a2a{g>J$Az z=y7*%*n?Nm62}i(Gy|Lkwpss%64X%A0zB#9f~crC>tJBl-u_sZs;|*E{ezDdAs-h6 z835G(t4(D9rikh+lBLUK+xvTa%}(bQ(CRJLnQVHtJKn$Ss#X>A3BF^1nu}#5Ywbq6CYYZvx`42De0**dY@RsT_FTP7{d0V;- zGXMwCM_qMUdk3k(o(+!>ubijzTuibC1L!v^nyP5*O@t&mPc}MELOnWDpyQo6o~_Hj z`ChtR20+j41TlbdK|!Twqrny7qhE|=Xg6g-g@2=8AVo3r77`U7xh~&37O=eJQXFcU+min> z0RRFSU>5r1+my(ED(>dwJhqy|na@xhgABO8E_{aor)-NjDwDbm+>eQsn0Zr)@2~6# zSZEc-7RuVWYbB2j&pB1ny{8f>%(Ui*8xf{PUT$&w;fz0tn@r;eAFk2jhpwH=$q)+b zmuw2G5X9Azem>OSGBaSuRl;1O1TvV%p!KW>Mo>>2%_;#=F)Y3bil${lN1w-T=wmrg zE&OE06n$)RM?1?r?_3`I{vsb~InD0h$P-l4uZQ^?ybUpNKW<&Mt?(B%Ci``JdF6(- zif*^;ZNNMyseqkc_$E;$%Ysqwj~bBW@)B`q9iDsGlMcOYcr@NFaPGJit0}f?;zrD< z;SRr0?@61?{S_a=OwVSa)_mmF`NWaf7!N2ez&aZ9$t-El+)hj1TGlqKH>Vpj&4tb4B_p~BZf#Br@D!#|8oEgb_&W%@&vxHl3&;hfSwx;Ci^ z9w6Wy`tmqGA@5|9(Iq{6mP^b5pD3fFd(je-8k?UNywhgD0QT`{{nfJ>JQB?h-<*0< zqM5HPyvcF@c6_+*@uS_&xIbG2k(MRzp|bV@3thKEQbYu161KD778?gP9tcTR-PnY*SJMq56zBIko~i(J zx_49S@IqQH%|Pa(5R042olc>S-oa4qAN)R@T$B%q-o(%IqC*wt}UW9{nyxcKL@7`9!Ig zONR1fjxcpgs|>Az%tw*nGxmFp}lyHu7!$d%Ttt6yZ?K7x73p#A5b+^z^lyQy-|tY7v(Z?>dEwfD`Zt4uisJE1;@V8d$nsM(sJg|M1x9ED<6r6odyoJoUclN2HbvFuE z!-Y~wCzrQn6gPyowgQagtZN++sT+#x>g3pLoMLmLB4K=lP;S+fp;%k*2qfKW2$Zqc zDIn4Q>VKIkl-dwcQ+_S(3by?9MvtBAufO0?63yK+Npt}j!CBdJ)Ko7*{Wi)d#7rVf zEuMYMtK1MRgTG^v&n+ict$%#r@Ao~-Nl8VYuGC=uYG2E^*s!zbq_@WtqIosQ;vybE zXk-7QMyG*okF=X^DO%|r_S@L(diq%M)Ln7Z&4DNqlz$n#P8Vv5oMbc^9Utw@;@=m` z_K~fzNv?Z;dlzf&2ofag&F89$c<>?WOJt959dWXi=;S>*GZkXOkPLCbdQAD?a5>~6g+O&*=79mBxr*pp4#D-# zWBO=KV8I7X42H0fvv}xd;JvfEdTblxF)fyg4iEHp}03~us&I^4X%;BuTr2{S>cQd-7d!rK2YBX zD?RUs5?+@=3G#DRzNQeoCtBF%Fa~EE8}_1`#lLD*Kd|lc>Tm8d(n}rm$+g2utep=V zwoYT^u9xp^cH103df>{5rF9NTQc$60q?Q8Zu+R=nCX(&IPkSR_ou%JYtW>Oz>c3NN zJ!;u*N;EdcZj8VOZ-Fcez^caY}*JLo{NvA&mtJUxMv^pet;EhZ^2nv zn)_c+x*sDvuv)rdyym9}<3w$D#XDP~tBQgHi@5n=SFv+8>~y4}bD1lC3Qc&kwYSn? z!XH_sBeuT8TSJ^bcWOv;pT}CV1Cjdkg`8%S@*Gjp%)_w~ZDGn~mmh<%(D)&a-^DxN zx?c_&^61hY=t!D!S61MW>-65re7#djFUh*DUAwF7q6Rs8B!=8j8QhU{2`1CKuKQ|w zS2U(`_e!*KHei;0uIYgJ?;E{$vCP88r}dj{*@nTq5R!>i$mv1)US5!#dukNj=Y-w?)m!J~Y6D-aw- zqHA4cg1_&8CC-5g$X?iLG%3~WJ%9V!6ZV!$59GUM?rZ5dJJ= z^f>5FQK^PIDLfL9@iyRf?c!GegL7kr6u z`ZT7@U%hngMwE~l6^F)C(TfNqil{=&oxQkBEI23uz3#d8GeH-VoQ8TWA{leM8(@mI z1dEur_9_Pi7ljrC3TF7!1lpKe%~$_f*;@Guu)2>|LqyUDT`)5*jWRxKvSljvNiva? z=|MfHNdXw;dt*Wr+XkqcvM0!GuDVcB5zG3*8rv1(TYIlg9L*cHA2oTJ3=fJ@m2x`ltlV z-g@%4C4Aoh{SxP#RMkWv=o%%{F=-M~Zelp{B(QAu07KPtt;go_^GVl&2~R-7&7=Y_ zyMBu%il0hrBbNwsHPk$KcY~>KbZCVP4M2Nsl)Db(@3Kjeu zj>B3qh0yz_y3;MmZ0H# zxY5oJ{YPVecJF8b@GMbWl$n~o}VSgANv*G_c=dW74 z%-fk07CY#>MFZdOj!EDvCd8IglvC$kDS%{j+xe2Mf=8YX(eJg}X*;?lZnQ-9DEcZ6 zRaqc{+Zf7)$ZKrfo!FQM(XD5YP|mvw-i?b#E4CpP82BIid2r$h3GX;}Ld6Lk?@gcy zsoy8g5=eo{H65d+zxi#xO*Ny+&3cCA_TSF?!`!}nZn!OC+Bpa}L0Q1fr$|_6b4Bpe z>Ak@bsSBabAD3wbg5Z#!TPCmB!;bB7ez?AeaR=FXp{2}*5{80!6CII?`guUR#Mq*S z3ii07<3T$T670z-IcNmeiT|1-S_qwaax&V2v5e4EiJD|&q!XF&l)^qM(<|T*rgOQ$ zP)yje>FRpla}D|{y9?T=0GKY+&2<|K7T^Dns)tHQtEiK8;zD9!#4A&mMr8R;Ahe++J;s78`g z5HEeL-@291S62txjQIr1Uk00#n5rw#6(c_KILoTQ+6!<^8A8~1#U9$*!};CtryfSI zDl=^?QF>>80vAs2SdB4oOAPTm8{J>tx}x^XCPlHTHv9P$!G4gocUE9!i|gCGat}$h z&oD#IHp(OHL)4(4PnMVSE5%A(pu`T{#L-7~>7|V!(27bbpf(;b*)kE7{VxUVCrh5@ zxvn_0M^%7q&39b4+iiRQ6g;@x?D~WHf+1~swN^!n^Qx@$j?Fk??62Zo301X+Qm1+0 zeH^}Dvc1P|kOFidPbmR(JqES9Nu_JeyE6s!Et%DD9(lvqlMl+-Cn?I8cL*h;Wp+(O zq4GRN|HagF_nYNwjVVDhZ4TKRK|_rpJ5v+&He3@2y(f;#!^4UM+THf$Y1@)s@r z@ycaV>v1Q|g50Z2g`Q|3>_>M0!DQnWzrPJ_p(6SBHJV<7msqH+kTWem^`bdbmGSd?MhO$|UKnjXqv9TNlddRHT~C5}+Ni|K6R%X& zkF{4u;LGu!FYk*F`0zIQAO*#%eCeCI6iUeHa;2h`qOjsm1J31qv zi9TQt%&z4l=j~}Te?7+QmrI*HXU_~Bt!>|m{=0j(?H+w!-ZfE}}G(5Z*^5vF=IrBelgQw5l zKhJb6Fa7ek5HiMmlju@9t)_7QvLU~Lr~hUa3(TkJnjzD~>aA_L&XnmwN&#*HX04!D z85aI%d3A}jgX#A#ND~=*A-W>cew#v5XSEWQ)5#!7d| zVxmM7e)fW#P~wjN-4oeG*zF4Loo?>?h&x&BX_kM%<(<#@qM0AAGtb_> zA53hlyy=<(O|9Ft!5VAibpt!su2=LGN=dnOCQtL`^xi*WcT<|fQ-bz!aX-CVWl}P; zAd{~|OI@b=+90;&h2j6~u=z4(J7T#?D_~`=+1c+TJ15~gOK-hHjgP=#(5v;C6QPCP zZQ*mq^$V)4pUh7ag`aF({^<15u_y^`4#w}tD?*vXObp|d6K>#cIg$B&irY)$I*Oq+ zzV__U{AbQUyk&y-Y&Vv@EcGQBDqmk&Z!LBtM1Ch@_1S{kC!9t>Tw2?hz1UuQnH$M~|#-ZE`8ew+{GZtFto<~ieC-v_W(L1=Y&1dpz4xr-A7ZI`-zTxmx_O5pkm$)H# z(izYKD7(v*(NEoUw)U3 z!{WH7XTW1V5#4E6a*2JXp6~gQkgPmP&! zzuPdv&^;4+6*uRwJ08p_T(?}u1P$UeIYuU4Xm_&LZ>KXv>nrV!c7{GeNOGW4*s@8* zo;>_<71jxU@ra9)Pjr=(yc;?)l3SJO1t>M8;o)4W-LTQsBAcA!`YN#E)iL6xq#MKdND4bl++}b*+duRnhjE5sX20g2MzbdJC_sU7?ieT z(0@(Z>&u$Yn_2437q3&UJa1@Sij#yD9RSP&Unh=3s8*ogR$yi2p`|QHy^|!Gq*a;w zcNJ4c8KzHN>1rnEhJ{h~b)3h#(Oc1MD)6QeY*Xj*{XO z{xjs(Lb#=R8yuF)dOk}>H=&Ig>XtE34(6wIeQ&9X3i| z{}r(_bYBtTxXuYq`V>P!prXpBTtSzWagyHu%WoFFFewbTvcq z>l%$Kry}63t}z7}Tukc&xbs2%--bc>Yl|~H-`Tu$?$zd|y3V%>o>5a~zmuh8U!)Vp zkW|E1_=v#IKHlW(q2rd~_jKuk(bK<-zlQ=^%BKnn0+;_klIs1BWrEyqB)|51CbxKe zN&u9K{P6lGh^~8?kcb%4XnvUxAJ0Pj zsY)ht(s|rvGav={9Ye#8A^$UBjEuC(*u{ne2+)FXZtH#?UIv|zna4rnFE9BLYZa9zC77@ zODZ7veRZZuXV)S=Tr`T2qsq_cj?4LyKk>}(UA=d2dIPgakgNIv!#Z2yv3A(tW8Jm6 zpNU_;+MGSlREPZaxgL-p&ejei9a6|wrm zz3c|q)K*J(F85%3KEd-s8N^tW%{$~M(y(PZyoI3QS9${;Skl5?T;gSYWo zp-Lu;JpEhk*=Q&Aib;cWtV?_(Ip`cnz!8#bpG+sFDG41+!fhKpo zt$V*IJV^0#d&|m(IXViAte&fPo(&`{IMVxK*qgZhhUEw$vZM}8qdEuOmV*OLOpT^+ zK8!=!x&ptegR& zE^-<;tl;IW!F+?JealwIVYyen##b2qMq`yvyGoL&p4T_ax74OYxcDFf^4_U;EFV54 z8yw9phF)b}s%}>bpL4E6I%+QBxAi9lN?%K=^JwJBVy_f!Oar{mKVuVlN*Dn zSfxm4&V%P^TYnEn_%2hJT@9n%0m&C4!g(yOSNMLAt9#pFM)Xa|K0vR$3v0e1WRIii<+-jTt6gdao2jjHW&p7Xx8+}A zxwc!lSAWlto;IvpS`<0TDq5&^9FKj=K#|5sE7_LSsZ`85TSl!W7}4W2RkU*Ub6-L* zb=^2IBZJGd&%(rP?eE?saMSEDk+t?5!AHfBSq+`M6lNIs4WJeiaLG{{p* zhetD=K_Itr`+=%&+?sO;OZHV-hrH+Vu*e^;Sc`d*5`hHjDU$L@n<0Ali%05*Ly zWH1}h3UgGn%t3>3$;{8YqSy`((?sbtSYEretP0D!==`16 z`(k2~M9M<9TmaU!WjCc1jghdbCoBbZGA9j`vXwlG-U&L+oXYmu9;12!4L*aG3VUR- zJ!6#obtxmKE0TEon%>L^xkOtYx||V63>My7aEN9X-)nf`cgJ~cOFrPo7@03DIYrEw z_@*PS1E73bu3+W&Gu07UADD=#`bmL!cxgrJ0H6(S>^ksImUJ!vITdYA%T%#t1oi>S zjoPk*lDls)lg7k(Z|_alhB=!EU!c~Cu`NuW>o>kbvQB~E4q1p-3p56D*AE)Cd0 zu|36tf3TWCNe5#lhKUVjstJ_x!z*a|WJYs{ANS|$>6hC@?;w6C59t?b!H6W@Gtrq3 zZKAS2++j^FvMM)Qt8~rvH%PhkfKz&RMZ3D=JG8?|C9EqgMZ$SUX*RVIX&V8Nzwadk zJpP?!zRr08#=w?6vUi!<*Sm5S|+|uX#hq|3c zvgFz?0uNHV0_+EoY?q*Z29Xwj*_%JlkeOxf*8kBn+oE4$z$Z=Y>BQiStq)W{qSIgvIPHJqZZe|8(dinV{dbqE1a>)__n#(9jpuW?qiQ48)}Lkn85Vg(Y3fkx z(qO&U;8JjwUf_1|!pWlFf?Xhj^eY_!_a2h!jJS!r5=~syCLLB*Q>lg}219b+-AWUM z&}p^9AN{2WX|?3P{2@&!D#?`)i(GIBjA9em0BdK+aNFsA9ywOyRsuSH<^*gLVpv-c zO=%*&ENIlJe!YL~)K8E>pZ_bu?!`lp`g`T>0tUw+ePS~Nz)gh(1h?fFomm7i|k&*R84*cn}2& zd;$@;!>DcQWBZCr{~WpiN_26r2?uMLKfuPZPd{q-lGm^%FB3IUqjK1DFS*>hVQA?s z%9V|OV`h2v7s+c&s@$S}tl)Y2MrUkDYDKAjAw2zU$G%a68)xuuYeN_K0W&GE;t_$3l(E~{OM{7}Ia z2_2Ebwk1Ipa+TIb2f2dKp0MB9s+go83dN!DgKP=tJ~BheB-Rr9)PFmCl>}2|~`!3sl{cV_?BPUVTlAt&CdVdbVto2$0h%M{HENUIChK zToM7@7$JKwLYb;k@VN4tHfN-*J1*0)(8X&CO92*A>kph~Yr>c{8FU#Qr|9RcxD(CW zz^a^{jcw$PTHn52*#>^iirbKtlTDylA&Z4Yv-sQ)G;z58fV#^3qco!!?m9m+t}SOL zo1>Vp1%EvJWRVs-PI<=22K*lN_(5ZTMU)Js6W|eCt;1g=cRr$ZxL2TCCmkzc)mtJE zP;b-jy5&0=0=jlVu5mU+)D4X-T#3<46vk~XGE4Skygjm+FV*ixcVAF4-70%LTy;&@ zgD`UM` z$FWZaFegG|y@X5Oi2CUCB?zD*Sbtr+tZDHk`Jd!OGpR{=Bdt05<`^z_eA=v0nS)5F zeha+P!enZ3S^ig_p&Mxs7!@rly#xqqYW@#*l&d8XT58pn0_(bmR&l*XBUYR>`c39T6_3vKZmq8|yDyL~qyEB~JKL4?G3AvrU@gIL4h5z$L zFaP80@xS9i6HoJn;ra0S^Yi)m>fT3>YXz&PXesZHU?D#B!utYx_q+7;^ad!&vB2W# zC}vdoqISJ>YG$r}8}6td{^qsaGdG$SQI)iYmKHom*dT%5u%j=5&-IOFQVolrWsdsC zm-&V!bv|K2mWVNHVRNZTjd)(W-pE4WqBFkc8Um;(_bNl@DPlisUjp1ILBLEy!#1q+ z!v&)#%c2zI+hkU6^*TEozfp;@Co*?po#xc_l91n+^VMY=_*flX{X(vbQl)y;A(KUB zB3>~+W3eLc02dbSvF(NI+?gn|d!wgG+>iS}vkW^E6lAConILS~=VVxku2H;dzIG5A zVsy8c@UlK&-AO*PMDOHLqFKqg_q2@VhY`zlfGq3A+MlqW{zx;iGIHVD%>!AJ@)w$f zvpfQZylhQ0i{&%6rN2WAy}Z5wwix1GFKl~&n|bO3_BuS~`?f0gXbwncp1O2J-l$&7 zd!2djnmU4B0J8eV&hF8!6qTikx=)~O#bAj|v@H+)AF z=xHknrS(1?kZ$+QL`y7fC24AFH!#bSN9+c^+i+{dSEaf&_Y(0K=UmkoxO&`!lX;N; z+SO8PBm#;2d$7)N++`$7K|F~3*1XXp8>t-zAo|au*{AX~*-#V3aXk%02Mw^FOaLgQ-o{-C!hn3_vn4nb=5y zioFI2$FZMZq;`rdGOq*O5OV<=v)Du3*??iDBUFYjmmCwPi-nGu_(i958opdn2*n5y~ubC#(#Q znI}PRJ$n6dF_5q*Zu|4XazBfZq~z?*RJk)xWAP-J*vjEC>yEn=p`5ym#uDEZQ0`MOWyA$Wq@$IWZbm1 z+%3N6+tlLXV)G-Dz=K{Maqo@i!Shu%odGe%fL9edR*9+l3#atlS5+=YAj~Hio6(NX|D`tCMX9Y!@yES!1JYv)}0MD&NfZSAX zd46E!)BAY?Y~^z4hG3QaDS4b;&a$#w7n}?&Vwqq$7Cq8_zfVL}Hc;^M!%RzF&iX|eqHajDAiB* z7>9Txi<{6l6%KeUWDXZ}29gI;{etJc&BuSDY9raeyYAD)PLm~H^J{A?uJn1e-zSNu z?;=mBWwQW1bl&1e?;K!5gv2&&W~2sY>T5}I_tV`D&P)(6wrhGCKiS~ET*fZubUfc5 z&lfjYX^j+QnSku}P>Eq_BC-t_{8Xv*sS3+fiVV=#r#ATM55;my_rEFXw%Se<=>}EA z&2zPo5Be#wO;Fs<2^Sack(kp&k6RngNdA_Gc@dl1VVTo(g)1=q4h|DVm9=HnQ=+(C z=j!%{C*iKrDh>%pFQqzV08dC z1!H`_bI=s9B-wX!`lVsl^|a@rz=*A+$yGi}yJy|1P z0%mhL9gNkAhDC;@Mskg7D%t97I@LuXnb59@)VvepCft=`dI3Qx5y*~#b(La)cINKz znwF+>M^YWw?$YYZ?r_} ze+*v?YtyJMT7X)$qn3*rKky!X=p@>XzWPLs(0hTZAvbCvB}@0^FkzM?(% zQz^iZ3uTs@$t>N;DB0q(SkKeJ?RSGnBy`bKxj6}_ohIwCDzesmRFSo}`N|-4ovT}e z^^8it%5Yns<5-@$`9i_j^WEQ!EB_4}Pqnfy81V-pPN^gkR|Xb&x&-2Vd$86^b!TiE zZ-+u|t$n?xx*>TEy9}@sR&;)3D@70^110&c1X6I*_-;_}F)~JuxP|t&QV)>FP$^i;)?l&jm2zImoo-<}k!MUG%xGteZUb_?53Ip|qlzUs~-G zgHKUORuKUMtmXtlG|xjCdizlucnu6(>`X;jIVVO8j~MtFCf&n&7a??ob#XrDA;^WUJzDp@s$9{vLkw z3AE?ksga)1P_@Hp^+kQVxn>+kSz!M!^P>Uu1=fU{Vovdtqj7Bnk6JLQ(GZ5NjsSh* z0a|R%z{7v{4j>z<|G&1Sh{a+LtvQ*fDLEdMd4c35r- zSjS{yit{)1E*NAp7+x^AAZXcK2O286U9|4a0WaD#_8^n6NQ(GY6KfHZ@01~+z4GzGDQ+#OiWW4mI1{{+fo;t(GvGjdZHlvSuONh# z!3!un;8@QzY&PnfS+#4qU#8<@e6^6VUZ0j>-oNJik~Rsm9;*L*X~?@_!uOfi;0QH6 zyo(^Y!GLWv5NiPFXt9gQ(tZ`09JnEA?D2_q&TaT(fQa|AxKK^jVE%ffa(`)|Mt^C8 z3oL2c7bSAR5V+%0Dj$oikw$4{8$QL-e?0*~ucn}BqtyAgShu=&!Gu5_;8C#)%=)cM zN?UTk@6RyYfR_1Q#Z9I8ZzLlM0nn3O&cd;A8DONk5RbO0Gdj&$h9?uwkWNO4Dd=oxmpV((&QqY#8TUgF80nO@7S=KT~^^B=DQ8-#KqpE=x=Qn^W;F++?6F zzh}a({O_1)(rM_e$$VXdRcUBw)U2(&?jPujw4h-{XR6;cEyTv(`Zq3j*3VOmoR>@n zQ0s#Kl$x%jdMVl26|h1i@BVwWkZA`c_#2SoJZhv(*fU<$wv+7reFHUP#rb!q?}rC4 z8?p8$;o6LVETX2~5fw1aMf;hu{&O|!hNZ+Zll&89qkP+@9-&Wndg+n_v>){^3?(;s z6a&>EQyhPS1yRsOC5mPLu#$Ee8o^>L?%G!+=C}=iyUk#Z^vpFZwHPfi;s-UU+N#kq zE}f*M4(@)})q)pBC9f|ESk)DU0DiS+-YtIb=nH4$5E2S(%g?)Sz8<+=rgu_v(YW>Q zosa|vv9W2_y}z6%Q|jUE+@qgA5A>ANp69E|phL@FYV!5VEoKb_40Aq!wi6wIgfQ&U zqsM_+V@}*NCA2|(9OKB6T5uu%e&I1!sd9qHe@$poentn-?xXYc%Ku+Rs6c-FZ~63x zmWbQJTM}gCrFm+i9X&)E@IZ36S65g6Y7TVZT?da%$RwL}kn1wxWYk(qT?@VzFC;w< zxc}ISl}uL+!Tf642uuBXnhB8$AHe}lULOAbg^Bx`LAkb3+@k9L<>_DBa31`#iTYrP~;z*;EHB@z9AAVsS; z{p%CU;&gF*Zm_2ZkX0(iv;SF9p9MdDJPxeQ_E9&$@Jht4E3?c|QGQ{eY9j6Bz9YwZ zEM5?EGH77Sg#G#zbMh)`yumuqt?+1PJK~(%LgOf6mr^cE-ddIOpna>SK^l!O6V|Aj z>gv@1>*sYQke9mwQAHIA+tg31APNBM7`BV}J6GEUNHM;0ON_g6NVwM29r>8IL8GzT zb5myu-bgh5hWld7g6FDia*?~sF8y9a{cI1Q2-s8+1KsT)t>If!7vS6bkVtOyqWS97 zD_n{g!XDhL`jAIf`#5cd;saC^Ib5R6<%EP>OCh}j6BrZ)Bjq|QM~g)mQa>cWf^=IF znzN3oC(Cp@ciTu>(#Kh60mRy|D>A|N#Bh3M#0E)1f*P@I(wKNFYK{1tp|mD(H}cz5 z%#i(X1}0=$kA`)Mxs3eSnJje%FiMC*`3GdMXjljUPR`YBkGoExCBJ5>ne5QXGSgS3C)V?|3v>03_>&~-IUq821uCj8!(TWlt<|wp!5`-kqVQXc?tV9D`0UfNA#v-;<};{BcWN$eQE-~Q&))NcsP;)-DtAdG~xSDZq_zOD}E`70&h`ggthS{ z_wu=dZv{J7drd%i+LIj=D!!Dl;linJTr{mfl1^ zF7t76S~EM8HD5j*>0S!No@Kl7z-969Kl1dOZeWx%y|H?cCQyU+XRZuvsWWPc5G>|FM$7_uvgS9m_nR)^;^KePVoR{ z%4`j4q%VXaK+^vS7oqYxxENsr$&VflXM}a|Ar$Ip^ z2#BtA)B5e~FRJWNWmL#3V?UCJDyJjFX&T>dM?CrmPvmf)Rf>^;Pp*cuyp-}D|Ra?P!UBRwPee7q*m|FFhsX zfF2ZaeT@J$4p+32AITrN;C3eQIEiID`b#(|S|OTNw61K~*bzWy(_`x|4a-l1Nds}( zCf%}9$6TPWh8TH@OGMK6m7g1fDJQ5pPQZ+K55Ea3mHqxoOV!-mXs}Cpx0EuBe7tbwwfMsyh@8}l$cX*j) z?G)ib*k7A@Ts$T?r%6Geatxkt^t{)C&1gX{wP35}-P(Eqi@r^4!@Yh-S?9^JZ2=Jf znP}=Ev-}5Lp9)Dc{wKQGivG)_+-@UgZC;?#xiOfIRf>WKV%zWs)7lx2Ch00fs3Kww zs9kAyz{MO`!2pom@L=VzxwNvzsN9U0Au!l7R@J{Cv-NjeM>4dzj#+F?2UTH{m;%c0 zeu9aQ!}Q!^Iy{`_H!Aww&}P{J2TU6_O~MY=@5R*B0~UfkbVIV_Dg|74u`wesc6hfK zo>u|2jzrmmnd|t4Lojjg4i7lIs%!EL1&BwQj0x88*3Dm`Q0G_%1n~C}h0>#x6Q)3s|*&XExO@d@(3jFb$cuSPy-z1r&?w zohw>pV4$LhDnpWbIX|W-zeC~t{Mmt14a;YOn@qA#91SuCOG;Sk#JP z;v}qKvs89mOWRRLE#fw9U(y-jwx~)0coddiCka!n5E5Fyvp@**Ly4(jdg*OHbGyEK z_a~lP?tTkUZ(rRH57qdxfUIDExs*fRCa03C=tKq-cub*H<$>G1 zxN_gH(e~54xFmT`iL%OXGMI@Ru`WacqqEVFmqE;ZX&_SBZQSb;+qr%f=gFF|;H9)g zK>&HZ+ew-T&F3mHVG$QFu841IliY@uhcXy_K+&RD7N3i=uktfMV&qQ!n_315THf)( zPfjgbR^h3&O3`Hiog<=%#1$~3C5O9=f{tYS9(l^5k7|c->$8S9Eu{_H?a9OY()GsL zrIw|Mu#EfGYk!LEGwQEHGi-U%d?ID{Mso2luvnMToUX6je@oY-{jCB74rR}i$Ee3T z*LkR`uwqeT&Gi*A)naIUNzivolN*+F59_oG8gbKmO0v(UDFgyZMOK~PS$HQQ%1}ct z?+%PxGvOeK;w4~A>>t&j83Z5Bb$GF*SQ{4Wb@f=Ak4e$Bg&rvb@y|=bSC4j$mE!LG z?vqE0lG+U|4{>{;gjv=kD>Mh;PS^))dPaB)Ht9{OS`U(&m^8Lpi2>!`ao*8QmUhp;Vw(38=g~{_Ty+31>RIC4{<^_X zt65&RYA1@N?EK|hYo~7W1<{7ys0!djnS1j^JMY-xg(dG9QUJ-6*Ghf}axm(M=?x$8 zr!anV+yAcLqMNzk2A66K4Ya=<3$(oZsT8?N3G?UD@baI$S9fqS)e!*Q$gb4tA4X;} zLK_quYlS-~id>9~k#}NV42}V>d63E_W}~Mqof&uNyi;xY%;BHqrzY~*tQ~-18YN5J zQo>Kf#mt-9XY58GiW@(KvmmHb^Z)rW8@$E5A1>c~I1&+`8MKX>ZnNnm%2_y3$ChB2 zZP>eCFTVeVm5L5OXOe781wG)gNKx}!iNocOX`lw|RMyx( z5_+RH*ouEBx4>N~?QWHAI}Gv*V8MyKMM5CiUu(WLts@r-7tM2@N|VG7=k3t+ROnmOncvbiKsVQGSmSg9y7oquO%U9E_d}ktFdcD&6`|9ktDVSeBIcm8JUshNl`FV|E>(r< zC5p3?JzO}PojfacOZP8#b4OXGUEeIE%%m%67)h>~6z6-+$WBg`SM#>2lf8a=!ZQsV zmjldbQ2-W9;MH9qX!S}g2VvQ%0{HmqvN%p!=*4PbU%xQnUv(|Z}~iu_i(wNS?8mi(&RE0YBffm6S_S22=fnJ761 zMFs8YMA;W+Nw2=hjR67q4mNkM#yF|McO+YNW}gRN6Nr}{K^z}AgF<}JrE%I)qs{1X z$(kd$^I}OpPU_@75+qi4ura?|rIk*o)z^~mcPFi=ayr-A5AUOr%zOP99StDQa3jU^ z`z;__=5pGsVE6{Gc4pt-nSyK4&Wnu@kc*|WH_@_AgVzIIq73 z2w90JQGQ~FHnAR2q?4a0_1orVqp>)*-I*P=KeWg!fSYt7zW}y~JHQsIe(h(C3ugod z2+b+?jYZZN^hl;S0{r8SBuJayohiz-=xw;-9ok$P;eHeLs`FqrYdNU4`c?NylOkZ` zJ-jnH@3pl6Hv!6RjFi9+&TGT??k{ukUsocgiwpA)mteC%p5*dtAQ?f}tkc(8%Hhv| zdILtI3xoooK-C8nA9v20bF6&1@ArXq~~H3aaqnzuXmhuDqXrC_Jevh z824A17G@4X5CEs3#9sG2WHaNL1>iu+p;3{}5*W6pu(*J*evM=X*#M<#Q#Lli`FiKn zHcE3al6rOlJ`A}7RI&WfqfK}>T0%~z(s8adU0vyLs?5^aG&wnlD-Ie5j|eX=Hw6O4 z%Rt=bRl4He1cXDrbaaTLBS?_&_mB)|n=hWYC26p;#4TW*ch89Tvx>W9+p}uu5^&3R zAw>X{4*28DF_?Sc*1v!87X9xQifQ-zKTGp2%oF7Cl3aE)G%B-l)=a7dO1$DG&+Nim zguU(o4}Z6)1;BNHL+1d00@!}NufR;h%NEbb{k&?f(KBw)s%pll>19G%+M1SIM3Y$m z*eUJx&IobyaFdvl1_lH*g$&1>j4RP0zzIbfkqdVe?kiVm0O5??prr$cMI*m8yv|V2 z`WI09&!}=_0j~WKeD7cAW%*^lQ5l>SIH7^*d$U-H$@YZaSJ=PkUh1PqE=2SRT--H% zvdpZP-%wCBixxvw(b1Ky3rx?DRW!@hzOp!*G!(E3nBDhsruGxg)!I&)X=+;A)3_3S z{~;)d6cv^zHa!Z;NWiw6HA#7C0(1hFTIisebzP2AK0|x!zchxA3iUS)e%_Vj>ovMk z2G8?1R9Ejcs!^`~ui&Klr#~t}lH9XX?lU)=9*6+&=9r0k`c^ruL3{4;95s(>1H#qr z=h12`XXrHUa>f3?o*4D+Z*D%X47L9Z8wQq0W7=g;@BFu<78c%tYTEtZJrU`qktfbD z-1+a)7%*HZ-)oy~wE=-QkmwqaRy z?p?c5xg{!*>TVdL|25SAkZmqJnxo8Owgw*5c|P@tVvXsUM^2^O6oWc~|)&A6IWcY&j@b~D^R<4BN?FVf{YA3drq zYc&A`28~u)KC>%$acp11 z$SKzs#3A1CtEC^9Ex-vhee2B>fSpyV?sn=-Gh%zCqNfL>=wjl(8?wbc_8uac32V5|e!S6z!c;@7h3$~GyJ*n%1_S3L3Z-ES(Kp9clm9a?_xEB5Rp`cCoj znEA7rc~u;;vlRuQfy0l`n}UbsB=IuqX)UQ;-crNdxf}gEZ@xbUPDMH*c-lA>oJyxC z{s0bzsuNC^GTZ;tb$2=iJoM1>z<`8CVFPdX0Vx23FIhLjG&ONhuq!NKCHJ(BAb-*) z8&q)V76v_FB@3Sm=gA1}qWNxNgGVI`P5bR$+-*4b>qXjYY~Vru^3-_JX02pe(pKqf#C!G&pEx(`YPWM?9OUiHu1yZ8{ z+qEYokuOr{+o+)5)Sz_n#vi4DWxtExY~CRuL1Zo0(iy&+t6 z9*1%nUCq_-scgj|qPY$mn9r#!u5RHC{Knv}0D=s}zuU0Hoyp?$P8Eltg%kV~ede5t zUj->q!2B0~A{d(~fA8Kn?d+*(*>SoYD8z{biI?yGQcIAdjuC|Ue0b3bVB?{0adG4z zL*|5#*bXI}lVKTjl0V3LON4cbU91QT%U9%Bkm6r(G_Plz1VEGKdgtTr8s)`2XLk29+M;e93`eLxW>@*A8 z16JO8OkCmMo~%jE8H0|n{0Gq-W`PaQn=c`-EjkiD#}3G}-O7jguA|KWg?BWpC76tu zLKV*E!pdmz{;OXvjv9v38-9d;xru=-X|M?FPI<;9c##z6f%OhJSnZ>%QJA<%adp{< z$Qt1*-uqNR`0~I(wtDp514b0-m+z*m^f4EwZq=C1(?!*2@32b1iF`IFU3!)aGk1Jj zr}mi`C_r@Lg~GFT^}p0NAH6)xMs(HWP@A8 zg($uaew(-jxI-%I_ryjWZplzXC#RD6#6Lz0bmDYR83_j3nH_r*j*lr2s678s_zIxT zJM$^*C2Qx>~z)d#ATnIc6C&op`Yr_TTio4Ka}2x`=u|#?yxe>ONK1 zaC;8l(>7jC7FkWwCp?H|H}Rb2&3xim0-(70`R1$Pi~&_w=xz*#>dowIWZ1j2c{oiL z?Q-BCPIP}gv(au-oYP|juqB!A-bdTh%cQ4;{wCdA{zb?aNu@@`F2E^JUygR~pI{tj zTR-I|@~=;?lwyMp`UQ?TAzSTK3sf$o!n)zhav^(&G2G`LWLh|STZ)d?wKV*JQ=n32 z@S&2gc8nH-B!h7Ny~94y4+n)o$T@zt2`8h<4g4E=P_rC~D4i;1UxADX8Szx*v@16k zt=*X{A-cLRWFcTOhi#V7^bN4Znl-bl@z6`dVnsTXf5#{sy96U*iY;rym)*i<-Gh#~ zTU4KCAI5Wan;kxgCO3CR$~4oQ*0yW)^Q((NsmFVf?@MjS92}y1!rI_`PTpLv7raO zOiF`=bNV|-EZ6GR_aTvIRDH1<9H`NW>$$%W9Uld)ng@m-GhmRzR=$0ox@Rw{g4|wk zNX(QdRCwrQ2lxm3ujFvU?_B$%tTcLmk&cZ~>~ltDenxT|-od@iV&=*E&sXI&mp(9D zHUp(cg-@4zy;pRviiK8B9Omzhu5NYKM7cSD98Brb*87c#I(N*B{?d;ztqza`jZDnv zS6!`$>G+k?rAdB6Cq{QqNWx}}B{)5Cdj=7GNwwWKoaKo$#KpecOcWRFoDmO2)S(j} zR}au<+eLHOxtpsgky(P28`8&CZ^|Euq=cX2f+-Www{J!*%QXbKnu#^!GD*(}BliTQ z_h;^r)1=E|!tZ>cqTERb^Ky7{sXK{FJIn?c!nY-WjGPgKOKLkD-JDfg0G#BNI-rfe z4lvW!fHDW=1R(xLZ8DM^s3ynhW|aX_Nw<=$aZXjXRs2IAhwqj*)kHr(@7!X^67@sH zhy;_eL!uJTW#7LyE_9tWWFqt~!!3U0{RIK{*-E9LVJ5d7$e8%{e&-!0GkHs%xn1C( zm7i9Dn@S)C(Rf{esYE*7c_;k*6SSA*?(3-q|DcZ<X5O6-4A7hm3EW0k zj?K3eO}zV2Ys%R|D;36**4=|kn6bm*qhRMYGP%{%o4nUa;tG^9p}`a%vjG-SSQHxx zfYX}vIw^m=wHl<|8poKnY8tTIdc3n-{NJxIjYe@_HpTc;={nWxm%?uV~M2?SirfErU zzm@mXRCucNo62<>!<;O!OsSGR{&^_wvIatI3Ktp;hBEL2z)#;U9lHn-eEMY0m+^GG zl{Z-grgi09I+B|4d$_)0hf`0@?AFC7JpfTCHSz3UDskYp7`fE{tI~rc%p+?B7$ex8 zf6S;f;VhVN@Rn)xRs$xxs)VcU#tV*loUw%iTN)%1Bv(Yqt|~o41JlG|7_JE(HZ8L1QPJ^TL~m&kXXx zvvgS|?-eFK%AXGCm)W#QA(HsGC1>R;6u)wn`ej<9-}7YPy6qS;wb>=g?CmqWax(k# zI&SSGFeJ`9T)H82z3TKISGHmWN+}gAP|>((^O!EOHrb zkKYm>ZRNvh_0H8Z1hl_m^SdK1=yNs7&G-rnU80FCHajcg;ljB=`Tl++U8PAKW+!^w zLL_0`xcB%|%}YpQOTF0uh{$RrnL{@7o3vcv$-_>ysji0?-Dc2idBn4qS|GZ` zCmum@3^E_w-OFDc9j@hBNpKpNh>Ci^c%MelOHWc>f+VYi#!e|&($kDEH-Z`NDtgm zr{?KEVlPRTD9^MyuDU|mipp9T+|vA>fm_HSwdmJuJt^W&TkiVU(eFqeHxaT9OO?Sh zYU8~Y65v*25)t|2L+6PBljWPP&Zh;jIoCFFnjFubXCAEhSOj6knK_zd!o6Etv`xfx z*ZWvYI{bA~P%J~sW-E#bkC~` z1~tka4_~p4Z;kuCL#B=Ywz(IO@Dn&;al=m@U&|~pZXX%obV)ad>~s zRvdCi#(3Dce_%G|zj2lGo57wUE2#rjVoONi_`d(r+jT}Ym33__(IFTC1*0gSI4CuMN*_d!8md4dNWdr%suY2sAl-lj1q&U4 zL5)BNMQK84!J#K2B|zw?6d_b4AoaVKnZNH^-@9h5_h(k_KJAvX&$FLrZ`%di9op4k z-j`5<%T1THZxisBcbqc=U&#$+kEl(e0Q3iID_+?&U0&`U5Cc*c)!?Uq^XbcB>FMCOc?)Bv)8ZrRn#Uy`q1wY#OGp)PK8Y_*x#1!DZV1kp>$ZKCR}TU+0L6ghVA zSa2^A1*O)SwxR$DeL0VxnoCjCc;36v;R(3)T$-ZYy?#d!_~6wGG-cS3(WK`<%!#@B zn2~w0BMX3$(S_{jQpk_&y;5C^ zU@HtL*}d=E#u+SN{A2tge)cJC?<9}O5lBwpI-%=lS> z{5FeiduJT5G2M85ltW^#cy{hdZ%>l^8pQaymiCdAgP9Tc`?k_=RcJZ@}3t4<#q3U`)h2u19)r3 zBDE7UEpJJl*NB+BMwsX=qd=_=om3d;;O|~a-yAvz?=@YxU#(f2kcmE%e?8t|voh0{ zIl~M&%<}rEH_-2MG?<@TluWiNw=`43=Ogb|T@DN`oo6WW$`A|lzcgf(n+YiS8yCO4 zgqeT*BECaJEVnpkpRlxy+w?0WEjk++Zgq7Y|NCD(MV9TnOiQK?#6lzfur+0iw3ug3 zno=np+@|eSmGJn^0bEmOWxL=Q&6eU`RT*Jk;KgJ=N(cf9tUq|?$U=?|UaLVi+Km)5 zF%l3i!rMsRp^kxa&u4Z*7+s$Cu@^sZ`OZ1P*GA5xjvC+H0U3IoV!8znsU{kynnir3 z(Y{_i8$H!F4qy>FCnucEbN9{J6cgxKsLWJGXE(2|5^&@1zv^#y$K z8yawfyYn|8?*VwM{{j4gUu7nbanJ(mR{lnwA60JV>B}#%=u>lh-6#%`u63>(W!w4J zie}rK zwf!z`Q|*@rqzh{o>N~+{S{pDuW_pbV`X7NREDA78npa#XnmcNsy7|8sCeri9$f>vL8O@oJ+J*PI27&x4{HdPGjyT5@P84}*g0coi5l<_~H%o1PNhPiEVAdH>e3qY(fE85oY+D2&RIaD#CMOWej;Vr% zhB25Ipu7!8F4K@zWL-Is1(IE^c%lpJ-GO)@Ad7SSmIlb{Xk=|bB=<7GF*d276b8t; zcG24~**im}tw}OBol;Y6(3Jp{wJhe$oW%7Es?50LKCfL@0`_=%0I1`xWciR`~2Z2_HM_SN86xc*zM9y0f<^&PtWNtKW6S#F$VQd$A4emwlBN!}|Q zOgcrldx%|s0GHP&rVKVteFqF~Rw;G(b2IzvJA`?G^59d~r0=E%GKQ_V#-Y4Y9xI^6 zYfvuLX729%ddnPOQa>*N@OZUR9lVTnW2Hfz6e)QNO#MJbA(&pO2r9l&Ga};y zt#ye0(C5`y)#CKG0birE`Qnlqu#DJ%r2moh5fzbd)y1ZBa11H^LSPtNPraeR#Yoc& z`On>YKRoA=1c(D;~|I>_iLbK$vU39t(rr3%n>j-k37Y*rO@TDVmn%J~GxPZ;uoI%Pze?nsad&;XkF!&o1G~yPQ zY>&Zwg3D$pq!+6!HzUl;N?GyF>19Q?lsuoYt}Uc6F#MH1>Q*wYcpb}@TWX?91dso0O zrdJGjOna30tyaI%J_eIYxzi$l@vv^ z2cEtQzC8U5AS^{A1wnFdAOr-B6pVaY4b)At^};6yV{pn_E=k9@HB>cvhS@*yxCvy6 zpnrS2UIqICJj7nqNeLIuvORyG&%I^TsP160)4&St?peFBs!1vX$UN6gKb-4Tj*n#R zJdt;w)n@L2(UF3%OaOKE*g99z`GfAc!}54&8*=?DC=Z<#&w*~N$djqVfnhem zs~GTh0WmF<$fcqAhB&P&or^W4Fx)=p{f)nm92c~jX{TS1p5c7iUSZg)G!2^tJXWC* zGG;l7(q9|mDERi!jd<48eT>UHgC0u*Sk~6idv#=urI39}c`Jcxh^yFi!4H~g@h0|~ zF!>Z8Ui-M8r%Rz4=rSzgAvTd`MM}7@f#NzbwxBA_sH$`7oh!qB82NRxs@*GPCDo%` z^5Spy&|6S>3q>ZI984!C9^OVjnpp~GDJ&eg`ona+h0<-LHBoo(paa4uKG-sAY)Mqu zk+WEY3#x41#u|H5<0468@B@E zMlb1}V+g3H56g%JrbBpoE-|A0MRFP}lmDmj#2b;EcRY6Yh(o>a(BAer7)!NXgYOTVG`1W?Pd^WWQCd#YOqbNs1tK+TDTArx)mWsl`sa`+LARZ#p{ z{|Pl6$&8!iURiwDPL>IzjF6uO5*pG!l0!PRqz+kEO7b`JX}}`@#oqYdb^=r&@FBw z1g4*p<3>oUlog0vtkF58=x)XeUO$o6cI$dPIv7W;Az zHfIx!?1yiGz2hr~rL6O$GWVLWLRBT#C^tk;y+&$WS9{C!)lU^>`T6<~pU+pt0eL=E z>5w;2n!nKY>h?{VQ=<7!9Y3vdQVS*H%DE<2(mb?PG<%z49#B$*$(^x?$AHup0Y56L zxC@he@UTMAQh&AC)cmb-&(|#Fql_k5Xi~vKLwC1+TFp1l(Cy;^Y6EtcKe5BswXl}= z0=EN7>Lw4aCU~r=B?e9+7PI2a}jg4{DcNM>4amz9ggYAT(I9!Gs1ejS;Pxn+C0-zx(?1u_y^ce0(-JOn2C!lzfc-(W0aK8;Pbs>7_0nnYFeE>IF79A&iJ( zK>LyTPJ3WEznIc~*ss>GcZ%KRYKn1-G#$A zffL7gTN+Sj)Jx)<)}kf6cRkvEyE(Kk1%H5$x0nDI{)oKFb-j>hZ%;Vl%9E-gcIQX> zr+F+sr1{VNLC47gAEG+A+e$$vRKj}t-2g!<`2zKII;*vS;g%4CIT1;;$t~U3w~rph zh{M=$bvgi^NZ7C-%?;kYCtPu;NZ+U=N-!dFkNb$_z`2t9`E*>tZ^)`p`6iFHt`=>G zz^*unDjmTL)zLshZJdY@-SbMgw1Q#21nkYE$q2O7yT=hk(47Zcg{s5;G5Cl7@bX`~ z=%iy80s6^ictmSWh!asC0nU_~4M@dIq|-@!6ll3ji4s#R8Q90dhRp%LJ+pvLgvV@# z@13oVd$#)#@{|~jWS)7#i1TRku8&|p)x&Ar(Ax%Y75?fk5egE1abuJpmockTcqP26 zyo%MWpPDFlq7rmncRjP`0~7RG)nST$ev6bI3=B#3t)v0zJO_lV@oHZf8PZ z)_1N{Df${PL4q#boWkT`eB4~|vhU!_MF~`bsOt_c&C#{=^*MtajGujQ1sS9kb~#F!E^OPMT5s|S25G7-%)<$9iV-z1 z)Xp|%>myx8n+M6Z#$;VgTbK%4Pd11E-B1VBJdJ&{>)p)M#H>DUS+RG}u2yOgUM+K( zN12iHt6HU3^~y|Fs(%nOiVjr|Co08^bRlF(DkBxObOBF?(tHH*@a^6O{I6=V1e_=e zagAq?SQ)3FVYN{X4M7ynDmkW$>HNKDH!GW3I>`xVV&yf-aEJj`l#VQ(NFhjtH_M{)Uoay37OYu=e zEJCS3y@tI7GY>r$Piurw0oyZzDg9K*F{&|*O{={dWQBSVOq+yowl}W1EoL{iNtYJ& zYLbs2fby7&&}sTAG6C~pgNl(hT1$Qx5<7bZGG~z0l$I?8SINCM{z7z(Br#&qcxm04 zWX+2-;p{QYDom>%qhC>+VC$4pwf>rhMJAMcl%!@_YB;gI*MaOK4RHvJsOM-LhqKvc zoUf<=qadvAZJ1iiij$O9mWazQrVx^X2;IaJIq5Np(LVF1LTy_y0kiM3@mQpu|2^*$L(u~AdaU@aUAF@gb4rPyyrH0x;ZXoo1e zUnn;;I>Q}zg6(g+H_+;W3Ia=feSIxEYp`|zL+;~{u=&N@co$k5Ee~lNGNUu$s0Tn6|ujU78L}^R`_A%TQ@(@y9Nkh}J4=jcoP!J5*qg^j5*I&Y zY6GIC906g=QA2vsbfCDP#Qeq#qf#{;6+#N_qoUP!|uj4N<8a7KL2{} z@yzx;K9FJ-mKusCgd|u3SALXSfhrAk98Lf>63%K<=Le}DDS9+w3DF!u!H|Y2w+p`u zn+t^t$put>`jXNKS@K(HN*XmVx{N`py;Qlk$8UY#j>s;)CHi29q=@8(#1rov&xuqo zT`%1}>={_jl;Z^-U%_rh-$>U`SAIB@?D+DTN%DpPitT}U- zn6fgYCq6QjYJOFkBc6NLe5lK;OUTr{U|%g)&0lS&TiZOg!o9-yGkQg8Wp4$hxz^h2 zD9OX#V~JlsUxz=PU&h_>`1Vsg~VDOBd6T&be}!> zrCUoHj|3kDA3Y!O-bD(lZYUMLFRV5y>(TC!>RA`d#5o*K z6hDHi%=O*eZ@A5_{8i;waaVDv1PbD3tB@StoWWcLo@Gndi589X>_vqkhc~E?1cfkkql+6II3qmY#Z9AW7X(rWV~M(6!Er4z&)p z-f5$swN(9O{dkkE!#DeH4i1h&EAJva;%|fq8sZbW4u!J0PKKY zWOSq^Qs++v4@*8A-bG#!Pm?yuPR!2v&Msm{Awh@xn5~0|K(`zBDUbEjcY$Hwqf{wk zWH=MNkM|FU-74KXx0Kvayb6DQ-+Ub&7?aqnAKOWwS$AtXfS9qIsWtp=s8*|6tK?*N z=6;6sz19EPf7=iHDesQzKH`4**5UGH_h2vc%&Yf|CD7^@;ji^q7U`9E%(yk-2BBW| zAc8usBBms~EaEn*I;K(bC;|4(Jt5JM09q|gV3^BeFZQ-#AZA(&;vD3Rs?K&jTMUGVLyC+@}bGgkQ z(b{T=&p(#a%q7fyIUJrlJXC$J9Up*dhCz`~kqBL%x1?E*vU9RsHuxeO!AtF^u$N_Z zL9uN$SSVjaqae4Ge@@0m>7uj!Lit4LqvqD&d3nG4V>gkmn2texWf+-6!0n_|V@E^P zRsx@niO)escc!h*#ctRm?vBui{dEDV6D}NsS%I@4OW@*=@~7;YEX-H9Bf6u`uRYFY z?V4)^h)Tl|agM~ftr>SQB$Gx{XP8j1TJQx{Z_H~Z{gSbgn&~UmaVZ&bJfoLNZc2ET zlb3TFMfL~xPbQCM6vx&xKPG1ucu7{#OrsSR*mJi#yH*a$s*&5|Zu3}7r8(N9xkn-< zD<*O69uE{gPPqC$uw0Hn2ScYre^yWZNX$6Tgo$HVu+Qr-*K{DYCDo%e^6{#SXQnQT z&1-lkyDD4HimZ{{l53_VM<~#9Brl4ub6;(LfAZ!1QnRx z78^d7cJGI3EHMVp>Ujg5rUw6ShngOh*_HCzJw_ZhQ{k?Oms56hc6)ZK^d$`V3p%xW z-KP`pwjOiS$O4w`eCw{%KPDd< zx2%-&&GH2Tgg5=ZLiZrZFhA;7_3V07oHiWn4Fr0>y0i^dmY&AkrAJhDYZK_nv=Db< zyZ_w1nLW00a(2}3z;kQ7(fU#?&^of=*g4R1we5Ji&T|KUdb3`56?9&7T|7N-DMOw3 z>2>eC*5ARQ>%Jb zqbyuF?XUFk+~xEG=SyZxEwT|okCeafY~kVt%a&aGxDhy_CnpC+P^$oVQ7MFIqz8dT z-Y0AgZb{7^dbE2dkR}U#E)H0;v&!>uqlrTsiKpI@O`Wjjb3e@+$oX~uy2@O}uj`6K zQsL>S#jQQR^69`nNP~6DJv}{f-`)kTBjbU)OLw+CNvTBs)z|9y7kgTPmA{aez z4GRVZjt>S6T!90JFgU^gTuXz~fE+H!moYl=-Ei4?}texDK%?3Dutd?vvK<*$#1%5Lp z2WAsl%m3sJBo+L9mtV!k+rnN)(#8Sk9-s_iHdY>9 z!T%Ec{~rBsk^d(t=zo*4vvK~vlK!7Z|KFsVZWgW*P7Xk!?!x~&Hh;_gzYqT=6lD3` z_W#ote>(cVyFgD1!wa(f&!_>9FwCNXfh4q%RMr5_z>NC6K@b2xw13XPHTcx+$d~Co zFtC0YSxGSsZ^M&(Xm89h>~NIR(^E&3%%OE)Bf?%cSTiwk0mkk3hA>^}X2q`{4gp7r z+W+#9qoD1p?4_9Bp%zdg6?-u^c0`qSM&o|SY6B4?%O|CZ3G91z z_hTtk$0ORchRar1f9?UlGuw-=+W)=q`__ZBAXSxcz;l$>+4rrR<3;bAaX2NVmgvHb zE+2=C&zT;-bNX)&pb^}Kzkhx4%?^2k6mz~cKxRIg1dC1y`}}mrBL3s&YOD9dB~^i- zPY4VOan$+cnF!ePqh@HFXapki#ppasT#lx4gn>4eKV0Z;qEcmnP1+DStP1k62}&6z?GA8Jhvy5E&7q5a-x)juASEtkVd2Qs z=wLjZq0QsC<%7)~BOE$qZ>N`&%fls>i}p2r))A{gN7LK<$3S%D;kXEy1j3;jgU*YS zWe)S10-}qZk%7VJ)Dt~Ff@k#0y$J@4^<@PAJ3A z_s`Icn*y3uAXSPlI}^h9c`k(+-dC`GhDRmG1-#cvw48WuV^@3ryPcy-u&tY)_dOc= zi?P-iHt+fk$rCaU@&{wE)TbZh*@~Z$O$VcbBT-0JLA^i^@AE_%c_)|r}-+b`9zgVp)g^`!~< za#PBsp;}Gn_1*py5Tt^qEqC1LzLMJ7C+-4^q334)EUsUlywv5RZnLRWAc!@QS=;;i z@>K78N9^WcHHD-Ue0}sao9iXYcefRuVL~mP$B8&kz>8SDOkrs5{fNQeM=o4m9T8JMHUko(rZ$vb`4%% zs`a$%HNLW+5(D#8CY?UL9>|>qUIxCdSR&H&YnfuXUMq4Ar%ed3n8w`PA1*C8?U#Br zrjuPxme`)K3scD?-l_kBN*!NotmB}!TM%)6dGt8AGA9zTo)xXqZN|U(@h$z}?D~kK zLE-n>4v-O#M2-)G!;pK5>lw30>ENkP&DZ(5O#Fc-)h-Xx|9*ggzv&5%fl+k`vT<%q z`dcPGmSf)=-O(hn4|fZVD&G2C-m>rR=xVly5e4nAr6m2ZpiFs=Bj#AK)=>0>`XMaD8lJi zw8g7Iej~$LqaNnFF@K%A>6Hb35_w6z*})lP%vj}P{{WFH3;jZD_Eu1fJ>I+9XL z!bcNJt6EZ`l+Vw6i^pM!XcbGt(Q}EX@mo_2y$O6e@)&3dgANQ`#+$w!Ty$;$xs(vZ z9S?(>3$e4lropgRtgiTma(y;gUt_N1LVMLn` z+EpO%tNkgNZ=W4hy%t$oHJ64UaO-?f7r!R zqg8Di!j~zh$*j4hcDIji?+Z6HfoiF=yHf2==j%bSNcARD$RzQ(QB$ZrW*yTdn2)7I zt1Nf6)bzYO{gDz-SXN;OXCurP*~}_M zK_C~~`Erv}7d#)ws)OE;i_$L7Tl+a8RhOr>4uv9iwcoORY4fO!!fP{(g5XHQR2D{9wM_&8pqA1MdsO zxbLLzY>AXxJN0*E&wz_A@2Q8&Jq$aam&cpkr;>8B&x6OiFP$zs5pC8Czoo8nM1IV( z(18=qs+s-Q3!X%aXGOCEE@1xC)`#Xfz`PFoBTbk}g~F_otY!41U(-_9S2q5XOvF}N z6OkzHwyr17NODFpQ=t9y_GGDErCL|>>v{R7I;kI-!H~fq0>e-?ew*KRf?3Civw^=VSuCL~Augso*B^}qS)tQd7Db&XO2+Md zj(UBvjPdKqh`s_g0uhfM>9*c%#N@}kO_`XGN{!iOZ}3u`Nobc_m9yncK|HYBZn}F-1;#c&_pJOE6ur#W&;~& zx*cr>BMC%PKFDZu11Ck86?|^{Ngi2(5$PDvnNq3L@q11q3Hhv6(}c@B#ZnQD(F|Hu zqQH!CIs5KkVNDn0osXHeGm`BGto{0kGm+O0cf*StMC!K#hQHBZlJG5U-5Yy8M{})GCoN}BFEaXNn!O=PUj0` zH%Oq**z{c~CzJENzIaitv^X#ENddKsi~31_y0$hlTRb4SbkWJ@|Jc+<_EpGzp=#N*;v?)X_sQmeW?!Mw_F#1B z`b_k8g!xpC<{)Yy!o%t`w?~;m_6Mc`WQA5l=^7Kg;FYkNJNq+20Z)DY0lG5UPfOBf z4Q%i%6C7a<1g*|wRZGUM2;78AjdEFa+koCP$^%A$MdZ-YL|~Yv6>#WUf$CF2rUHmgaAjfSFg!D07~j^kQeG&BNsG}d59#lrEoN(u}ED5j+) zohIvgT8F&@(MobDghB*eO(GLMmuF_7P(4SzggSKN(oHnnTqy(`1NjHTFPiD6mVULw zA_0_VZ+2WjVs)v#?@*Q-C1PQGjrOPW8A76t&vWRtYfR~jC$sq6uy0S6DW2?>>d=r$ zgc(;G)J!b;Z*-FLMFPd>$;6Y5F;J}P+>g}IEHUY^t5EJ=XYn(r6?NMeREovTrgEAs zd+?-C_ePV|x6>JE{Xjmm%kLOt+*z*V^U3 z(-jafeZh1T6i!s!lDe;PSnrq$5ZRYKNd8toc(vDUQ(9K;TB~Ns#}T2F!>NA3!` z-K%M>{$uRO_MQ1$v4n3siT~rZ2U{6Q561%E8Z}@`xhnTZCX$L5++~lkv~2)#ZoF}f z1lbU!P$$N&My7S}$G6JtrwmvM>1T%iZ||57g{OKjrv+&Ow8_MwGVON#U0=HX2$ZlM zE6%s)JZU{{VLcYl@jGXG?`2wUQ3UKBGV%L_Q21r;1txE*p|k)`1;=HGJD%#(LahB)&l7j;7y9og1S^<4 zOv>}n~xe>F{CsL zGgUUlsZ6>MaGxd;*26LP`|F(RSpD!BNx;wr>9*LD-7T;&(XGFNGS9!et_ceN!d`<( z1RT1L{*B~RelqvOI%g;wM#s8QX8tNQ`Z`UH>*It1X@g@r8+0yRBpKh9RuWTF72^Va zzUr=m>b2HHj#)dH0GXmES*>}2p*7hg-d;nXBg;_?bxg59&?Oxy?;5c<<=_*acb~`3 z_9jpi5UvbIPeXwuYMQfKKJLzX@D}58_!@ixcs)^D(*iZsce6C?v>JW0Qf$=TLUs5LemN; z7~j7dcZQe5HzCbrc4F0MLx~stuY>Z*AIY#9|^Th#}*~`H;YOS!UrZ%Vk$KB07iS5e~f473u z78RLr@dDri-bO{>$!D3@xlDsMx>p1-jIw))-I1}h;B!Q17=gSDm|(rN0txUcr#AFnu{qL$PVekT>{nZ+y1yOpf~uaQ;eN{3jbvvq+CfIV*;+w zqX?Q}oHB*}>+fX?I(D;$8t!L%9j7-tq1>6kmFIF?1J%Dy=5Wa~9?PauCrc7wSM}if z=Fq82`@%6@w_I7!%)LC_?F#y^=*Z|E)R~PSyI7dV;opsT&j6^wc!xVvneq1LVmlfp zwNMxobk*^L^bLaQs?WZ68ORU|g_!lv1rP80&Qzt+f3H*4k$y-xdE?F~xb~&KNo4h5 z8@40N)re;%E4{fnf+4Pe2J^AUxdvd^_b6RZ6&lW|mIU;gtkG=BXPbxK&xR*ufXndk zCiYKS4vtstY0frBFPb9QqL3o-aCdOqFVX5uR7uaberd39vmrfQ@0{VZe$OAPYPnTn z5thAnf431RBip_$blzENF;p)zz+^pUOwBzkH5cQ2^8?E#`o5|Y#$ZuAJTXMZt9Dgh zzdvp9wDh#a_3bTg#c`TBvNO1cDXG_DkEJSxGYoi;cysFVHR(@vEi{fq zx#SGeaao6}t!Gwu0~ZD8$NYpdQ#U@Y1PdfxfmQMkCo0y>j_cA@LD*s;P~0Ai1P8vm z_x_h0GpVb3Pt6NEeCJsUH*>Z_>;WtZPbHeMDj>as8Q1TS!aZvl&IARGJN|0_`DSG< zOUUM{`8|bUL=|_Z>u9wpwebu`;vlw#pwHhFcAmNH9jF5-p;B?ZvDVpLQ|_Zl|sYu3$&&(?T3?B@IxwN16r1Oko!G+9y&sheFTWIMb&Rqe>jr@pc!6Id)dk;_%BpsyI-!wZ zC#+sHzK?PRL{i(&)&h*Jma6yN79<;PB7z}aXGVW4(=hbg13!%nnU+Ki9Q)qEl-Cyj;;@c+1P&kfgglX64r!Qe+X^ziCU^65{V^S-C>Py~z zgqHuWDpC(G_a#7|1-X(cSc31~^GxDfmy)<6-3_>?^9I0=n7B9z0p*Xo9 zAc=01waKp!fAXb`x%9u6&F8;yI)ZO=Sml1A`ID)XYTB8Eo6>(a-*1`aM?+urw>&A; zZVW7~KWHfMyAch~@V{v!Q?_7nQQT)ObFvgaR6#uW)fBk>qFTzczWp&{uUQi!_)^FNz3^ z&zHKvaN4RUk6VwCd!2rl`Xwf@+xV}LZUQW=jkm*yM=D*`XxVa@3^6NQm1c)UuhxrY zRL}Pp6vu=jF6c7_La8(Va=$m!0Qs;D#bSH3=+1GS@5$3VoWQQb;r(jzK4PED;?mOx zq7nRzj=o0Q>z!V_uDj*_oqV8fQ>+?;9%jerg5a89z@X>qKZ8mj5ee?RJC$wM^z4Tf zZ(V~i>hiN$9ad;{TyMyPSgbKo29!h{%_OnDLH+@Y3{w|tz`|xbX)Bs+!kt*JBN@cSc1>z(5V`_(I^i>E>j>!WBA z_4do~Rl1D};hO*u!HYj%9qMW!FMyydPR8wi|CUj=VV*BwiX2o|RBq7t=95;Gya&UB|h?VMbRS@(3kh z8}XIyyWbv?M{8`F{wJ%Hheu!;e!ad>0H6gdiEtO^s6T%b=~Nb<9<^@J>(N(~^iK=D zDWww@K9BA;bKMRM5B6+sw}gVeulmAP<5}RTG;u>e_T*W|o)xp%!_&U5Cu*_9AYX27 zNg%SD?&YuNr2b4~%;F3{%wW!m+>&@h?pXy=n>NRLKa!9+7RVp! zKq8=$CkvMg0(-rfFP|i25HnnpQZbjH89A0vNLxc33+F z+>UG3Vd5(8r)zjX46dPe?`l)D7ZYItliMB_4Qdwv>&tcDw+yoJ!ROCWM4C;Fmu87r zQ3Jre1xs^ZUzklZ1u$dlwo|ogbr=HacyaA^b*rSJ(ea2@TgARoBdJ!)S?~-UW>l}v z?$jE(G6zFIi=XxQlG|lW-j*67a8RmU^YzW)O&d3b#;iL|BE55q?diBpf z@Ob|A89|H5D9$4GAQ1cPuU4WJjwS(26_u7MG)x$K4HzVR%yfE9^yA5mz+dqd>K{!3 z-}P|46DKb(PX#bXtm?PFmK(KVV^8K<;vm8R_bOagIB$7ukha4|BH947t z9xX09Ez#D5Vj4-wrAbeBK_}O$uvsyrLs!eUI&NglU>ZbYP^Zl#oEKm-gTS~xX|eTx z`eG$Zd??OiKS*m8tK80Bn#3XF`EWwimhK(;;cda1&h`3dy9x2Ps##?I{120ML=PLd zX|(F#d-PgE=YcXN8?TTlYvO+urXRnEBxr6WX^pcA@LCca*E@=p3x#n7y;%XYksP}c zK=gJ1DE&*@{`F=bH_-0Z=j{jlpcFD7zBqjav_Tp`9L-Tz zjMxa)0Q?|NDvSyhnNX1NXh8N0Wi*>lKkj^mrUW`CYc$kQ;(LoRa!-4`g&sh;Z!KM5 zTrQ(I4(#F?blgZTo(B47>;{*lvuVCOKF0$%o!s)A*$A8MH80NgSglcq?TT>Y^J^$f z3myzE%neu7AZE>SqgUYzh5?wvj)Q8s5D>~zjyFamq)m#8|5hzegZC7hjgoDUq*C>B zsa;<9pUI>=I1!FTaQQm|oXhP1#KWNI+~ies>dmfRz4ZASgVoou9hE3TzIO`3FtDg9lG7DmKe}Ab+tiP;I>v-<8rFCIQYCG&|BmUh zGdNtiSX&R6LUcVIR~c>MZxFCCThG?8RM{q?5E06ZS&UkmqDpY*-plG^Cf@8GspE+- z00@!y!xz~q-p`NMUf6nA=_JlgGDv^@+=F$RbgN(s8K{ zF5u;X%k+}#_H-k$;Meu=KxCr1PuTg^T!lZuLxPW^d`5MW8^6zwG)4p*?l?s1Nw@dL zABIwnxg6$2*;(lS8i2}!%0K2SMEG^pyCXlyrj`JH*ca5>@^alSZ?+63y$DP?wW#!o zW&y%QlLkmjq%NPUGJqpsV(T??c~(Bh?p-TWL~E)R(Ne8D`gzlX)BXz~3<^<8tw|$# zecmFWh@qhDifFQ!_UJ?7M**4;W6!P@B7Ook3pXlCOoxO!`qK75iU=fem8UE%%}+Wbc%kf$W@zsFyc%@;3imj6I1SCnqMrOT>MIe0Nl(ih zQd8~nxBc7d=M5RQKrgx>qyxExeW7=ePf$@mG@tPD1BA`n|4sxJ%=@J&*E;29H0q(I!}#v+3WSnB&s z-UjLPX);&T@js~?HxM$o%C%wQ@#o!Km?<-sX%g+C>HF=DmaAhaFJLkFo7NEE<&~Zl zCJ4VSdYvvQ{lRqrn$Y_T_E^nucr2A7QE(oDwHlN6*;>f}2D1bB9pvLcn3^WuY65AN zYt0gfL@m|z{oI8u*wbUw!W2)?B5yr6tLf`m|FMnTg={$rV6$EN3{0AsGF|)1(KOGz zv5YcR4lD*8jE=!u0})dFVQ_1hc^SN9n65Qv6+5oXjf2En9_*?^Hv~MWE3gGnaNDse z+mCAr=ba5z@)<)hSL)OWQYB$6l_yAjss-M2fX7ldHH+lSffDI9syTz*ocp=F?mPj9-^Z)|OY?F;T z55cDWJO}dejL0u{$F)F|4e~0?Ru_5DUvqW*EG+Y0+vVISL1zz5RVujY-Hk0^Q}Ygg z1;WG0JWhsQ2HkB=mS4^Az5cm^n1zF02n_JV349jq>HcsvZkM~VvRYd?h>c0Scz znxrwRA}Zo@B}rl|i2ifUE(I>u`(s=*M5~fU^XPGo6u~;M@sduW}Fw zHCI$FLmqVfyl>LB-A3~{U~IK&V}58d$a{+Xt@XqDy`zbg>K>Xrh7=mi9uokrnnN^g z-YO|6rC`lcgo3G$+LZDBYoZ_e22+(Fy(?{1mXhCmxhnH;<-6BsJ^-zc5%jqv1)9+C zJ@Y&&>aW=d@ZXaCTI)(!FUxTO+=rN0*pIf5sm&poTq=p*!`3(Y$yubyk*`Miq(aI!?Fa=3}5l4jia?8_sU!59qz4ZkEG z41^1c07w-Ul{Dz{?lI`;3-AAc1%BuOY9Ezel283MB&tC5v(0we_g4oqhL>WH^f(^>%mc-^ZjSeMV) zg_~BlQX46W3i}qpAlwUG#XmIQS8Bd-5z1$5h~L$>h^1gtzfqpCpGABFTmDhG3@Hi;j%lS63Ng$dp2HrC8ht=l^j`X ze+T+&Y6eJkNrIArP_GHVUAS#mR>3sr@GT}X|U+_z#$M1%oe!j_FZ z7LDVK`_KPfC}=EPXkET{$OkipnKOiqzXQuD_S*od!Fr{sg0lWRu8#b8v33L?808P; z{O?E)$cJn827xCF`FiU21Q_Vw5es^gp85i28-_OUZ46@whvj51Kv45o`-{8*0S!(= z`YK>DgaIZ{RGn!*JVFO#fw2E$r526d1HfmRt=8iK+*h%GG87;V60=}wVX6bmB?^-+ zC6=u^D?tcY(d2ow4UFJJJ(x;s3D`{V6@jl0Fci{py#PpJk#7Xo6A-jy5;V9KtP=b) zTqL@cX~!W(-1?IU$1#u&~K6FqE82oX3+XB0uPCv^tUe z4gmMZhC%_3@M(xU*6wBxrhy3jOq|)xb3Dl)G2Vjk0XJGGI6@^@#e1;VxZZb<_||QM zY57gH=lL4SNO^%^CtbEI=U}VH%Y&$m_-f;Zez0kUQzyPHdj%$MO-Q9_i%uAQgL#tZ zw*~CWF9(JHaV2|@4Q=bmG1UR&N3vKvoE0DmAQB7W0&;OA907;Y^2gkJ8D6)2L}WtV zpx@rdZ{lcGz=!fnTZl(UOYJ6|h)YEXbQI_^LI}$=m@m@M&$*q1z^Ys7nJTeB#xiVVR=1GX1O3Xcwkt2@{| z+q=g$b-UI>AxKhyGc&-H6-e2oGklDUHriqoJG;*hndN$%^N>BVY4s02sc!p9`OEWr zmrp3*5SiScZvhk>6aWmNx`KRz*b6Lf3!)A%-BhO_a#~-;qCWIosiRA?q5*v41~e|X ze(?4k2$>uRncVEL=h6w|9*Ev-t=?$t-tiyYb3>Ql(7{*L!8=pI{_(-IWIikn8I9Po^%}opLX?iQ_@}m$5LMz zrwj7rs>{cjG1Fkn?4QXaU$KHj<^7YA#)Y%`Y+ysZ-DtmDL`rfmL0R+nnEjhek)XWkn_3syw7@AT0VGr zB#!mM3d4xP3$j86A{+xEo&$nwpFoUz+S21k(mHj?D-Lvd1ZD5`(Pi>mKTuBq0*c4wCaK^Mb>a? zt&S~7Ujlmx-AJUdeo>zM)AT%BO#LzU+?Dg0MRh(_%&Dg1LZ^Z-5d!@qd)WGaW3R7Kg6748&F;gYoV|zNa8eA;a>%HU=klV72L*ll5mE(;Sq+NdsQ;b$|CH6K&l0fcvJGGWp(7A@0~@ zJFR?3{@O;WFSPtbqZWf`W}Vy%_3aq0M(#LG#@q3W$iq?vk$IiLPdyF`r5^G1>ey=$ z=ZQDjT|5V)(Ouk6o43J)E&mksMhH9u%jUDh=AgmmMv3TB5%+}(XEK_gbQh~js9nNZ zL$%CZ8~Ccjb~u|FU0hvBc`?K0p?}LDDz-a99M&*(n5PlP_GDBV*FkWwrEd(8Zs;02 z@)xSadS&;y2_hKhcXo|+s)Nn?;Lputmfsqd+=#4Apl~pB&(~O*T6F419}z?=@I=wv z9Nb|jn+8kcEd`{%L~+~YLf6)7sI4~e+c;oXb+Viw`~%u>iu=bAia-_hz1ZsRbFj&c zmO1KZxGe}v0YlW@giuzFVcI_7TXIQL?Qdi3RuqUmtYtX=rrVz!}f@)v}<7w_^TtTckIB_4^HWglq!*b5$n;bmX1jLF!9&ql>(md9w# z6@xjcrKBww!_n_Qt9h2Zyx`im!)}S##0XkrIj|`$q56@r{95YoD`V}k?E)K)CY9(x zn4w4a^-P#2aLT1H_iE?ilF-^`o9`Udlu;iyvg=aOT60j0;k*$gEfai%Pc-s33iF_;YO)6|NMDtvJe$MSO_^kUNE3X|rSZ==?xFYe z9X^0Mze5X#3~+Dp_Krv*lPCcooG8>jP439E-xfu=Mn#Ih(#6qib#ld;5dEjWi*`?Y zpJN%5a~6h^?h*Eif1~$P!6Iw>jiR~ys~UTU52lFa9>BxzD-@}f2S3>834}t#ofZCg z?~a=|^nviNNpLB!$pUCZp{hRLm#3$wEu_;T`vogloJ*k)n1`TplZ|5Mjsx%eNsr%#w&fuR*)K0e}iy1-WJbZ2GgXdph?nfYsdy^(k-LKoa>DoJ)-#s^p)$ z!4iTHs~OD6lEl=W>VJyi4r8x+Sq#f0^W}qV==M--Y+G>u znYp395C-j%)e>9rgQ)bOuohlQ2H54 z637#t=v0cpeskfC`$ERvEjLW5|o)qw#Ta%3!(CYfH7{t2A`2;dA9iG|iVuJhZkG|5(JsFq0f0lYsn zfLm2BsT!vW>tYZKL{qka#x!gIw4bf{3UxIluU>#RI?)XfA%cP7i0W-9^3LV3Le5|@ zVqRdaC9Ug897UUmZ}N@F6jT0M0ypoa^2Zi^-~ztyfPlUiXSNU3n;;SNHvR>L#@i&# zht6gyIbW%b!lc_Iy58Y2^huI7%{m$$h&Qx76Y)BWjx%N5_p7q5x0w)>0|;8r_U+x_ z97Xm=%^1_EZ6Nlx?Rc0zYsy1<=eEnfEytv7s5~l4GRHc_F#ob~mYJ{ir}zt^wzsW@ zT#Fd)HRrOle3y^aB)dNeF;EKpFBeNdCHL8UZe^2SJrZa6zjgVz#S!pK^C8;;LrMM# z_;iADg6@M{I{lt~JwCU6R@;jzrz$P*c>@~oJx(w1Ie;DqGB8KtEZ(&QLtaDb(<8`5Q`~=kEZ65E1RmMkvg&chk#A0FTHOfh& znHaO8$N{cw8vy4-RRD~k5`gcY5*JbvQg1qx;;#*GYtfBRhfS(=8l_Dub(?LeCc5Y| ze%LvmuZq43lP3k{ce$F{r^oz@XloBkY4v)Yy%-N{6-8k@F!e`xvxNM(KnTR`q(_vl zMT|!wG2jlwgYnoNgcJ0C)TojNI23)rf;7jw^8xr;c_M*^+XVoKK!Ht_!KO#DQwW;A zsIV65@PFb43^)o4V11(DNMy`uCKa|%1Ec72Fiivn0Q`~2MEwAoG4v=kCxw7@H??Ef z?z&fb8dNX_{||$Xxunwne<*v)sJOB%Y&Qad;8M5+cPB`&;1CGz?h+)y9TJ?v39bQx zyK5l0JHaKmyZg83KIeS*j{EEWsqQg)G*z{0@3rQ9=kva+?!`L{syfDn8{gcAqm$~n zZ(&V2@N~l%Ja)!w!|8g4WdSHeJG6zEN@eVwyqIPqjx3r+=t`{n~J@tseL zD*($x2ycd&e8~Ss2uEfzise3uY%fp)F17t|E)Am zD8bD3Yc0vw%fsfBW}W{uZ!t^pBxFTx0m$@;FL~-p-Co_2J#{4el#3y`et&Kw zTuyf=!O+r_8T>!C$!5c8QaU+c=uXLOTZ#@8WcR0bc5c4G5fLl}<-_39)gkjn&y)bW+P#4_kOr!+ za@MelV1V6iCzI_6bZ{~cch{Kx;j3)B_MmTD2CM(|9)7skTfhdIDRctctIhw~qLuHq z&R_K}gRmL#fvyV$7(Xd6Icngy0UfCKT`4^FYoEcF$WHNU11)lU zv*&FY=+Z^Q@KyX`UJa{biHKMj@w||?T7H8qmU6OYW@St@P55;BOv;430 znt8jUe2FfRlip?%B$E)M^`0j{75SX>~Cnh;v09MPYW zQG3!>;2E5F=#9e*A?x)yU|rjvE6ruhmCte~%}B7fv$HE_{;wVcN%za0Kv+26imo*u zC6h@PxUa0s1+J=KO6Y4kAXLz=>`1eqkb=$Wf`B(b?aCfx)@@a#> zF0Zkk%d{BJu^RyM*6FGLni$27HC)^X>7j2Lo}Dmv>p#gkb*6-4vHGO}*1p@Y17)3nf&UAyBI$~Agrr1nQ56TnE#I&Fon zWcM$3hQwb0IHf5XJiV)64qNB8-%!Qgl+-n-`9rxLx;Xnhi>3upm#PS8Y1dj>!r|%M z!HOpIZ=9QjX{_n;1~lw56~;GQ0Eo-b;(3emK=c+L5r;YI`m=u+#ev!2?D+*o{Lc@` z=)H>Bj`sMxUSuVS(CgOrz&gA0Bu_-}#VD$G-#Q%Yn)XB!ITCQRT@dlMG>&%c<1lIZ zL_LPJrt&&x?;ZTQ1u~fcQ$oY4`=$5IfJVMIr}ZM)>Dha3=LbHUg(iP$xirZ{fW^F= zQz3fXgNAw=OGu43_vq!(oM1Ef@Vj5mOkJ^cho?tgI?i1XU0@_!p8LcUYqcnBSmYbd zgza*P{stGx(?laRK@dt0>Gr;@tAvAB6l86X1NzTa!9i#m@TfF}8If74?Q=cPUy9S0*-r-rQ zF*~EHZA@PHt)~Q4&nKxtIw{G;9|Ak2<48T~zT|2A!na!=_(s5Glhlw2n5rWsGC`Lszop$S(RzweeRYX{b*k1J z9rSbecrU#NqHbc-3Lss3(s%^{G7}Knk1b6piTLMhs|XsYhs)YLs4J7jbLLYu zSU1SHen3DXlZ<==NGLY!!F2LlhrwlX35D_xjvWy=sQvK_W$`b*=g740)t}0j%371Z z7|*cr?FzypZ$Q^kC^tV=MArk@1Xb*H-ych~QEmG`r{XAHHQ9U$v%y5O3s#j9=A@Y% z-33h=rGlTYmgu0VrIe+4x`ic8r|p3#!VgWZ#y`%ni|3?PyWRA*quEXGL&yvHpe!#@_~@xvAZoiklCRVf)pUDC97ITqagunC!w`v@ z+UO+Fbq4;E2=9dDwCIY426MTo$1cEw=@TWkc83E>l}hA@W6n2^0)oO?7$l z%?z(li0Q0@Kvn<7X>U4#+o?)@6hK?wC=oXeHi~!>*gp$E!KD10fD@X{YZ2YCHFZl; z>BTTpvnlwi%<@uKG!*x_3Z3fjm~Hl-Sz9gMfl}NsbF}W4M3J&T0e>S+KxW_rWA^}E znNtXf#d+$R{7^|`2eu$|?52ZV-*e?gTI84=td_7_ePBhvK;C5GjnIo^1S)|$xFcq) zc`)ll2foB|8X`Uy-0F|*K~nt0{9eZRAJte*W*xL!Y+r&wd^GE?%vk~}QW>$t-+SGa zJ{zP9&j!8HlTItMhg+aTyv|0K#7a_02oDt&NPqH|(0H8>g&fB98|}{N-rdi9beo{ z{83So`0`jp?zA`WKa|s4XSGrJ5GD35g6d-$^m$Insu^d)w0u?}8G)gd3+sV>X8|+n zUdc*vUM2HCHK|R$Vj&RW-|xS%07yk9nN?a8 z+k0FpVI%{{{e;&9ly=6nh{Sw;L5!M3(?ade3Fp3l#IHUNaOX=;d-2$v;ocwRFXWpc_xPV5ylN0SAY95Mn!vzl!v zCwgBV@SA>24|TOSg(euahai^#oKLcIc0_saPoauXyPIP+SsMG{cQN2Q9>(N%G{vL#YJm>i~#ZlkKXn|7*lh$Ppts@O(Z~S^{~bQ9@I?xBa}ghxCUmgdDW-e=W?v! zT&GNjk{A#17lOxsN--Y1#bMGF1?;UthMgl4E(c6nxz4zqEUUyyS2(#h?L6RK>0dj2 zngCE&r*yDblKSQaWgQBEE`{~%#0i&erk`TO6YBDLu_=yi2uMI`0^^^=7R@=?#IBJ7 zuw>HNUiafLqeXS%+Bg-B2><&0_#7DcbtkiSiFbqJtY@Y94Umma`6=YmWFE%a#D)_< zpCCm|zqC4%Awq5%id&JA${Su~z3}2&*pXqXa)UNyFj00aQCdL;WPJ+c`QQLMJTemA z1#?`nI&CbH5tgY;Dh)pe(i>-vZ!NW#vt!7mspvXZK_jzoUE9?2i?mmDnIopc304c* z>{)Lus2sNBPn?gwHUs|d)y7~N)8<0$rJ!O74Rq7sp2dEMZ~Lo(5haj<$V#}wi1-y3 zs}sj_g8Xw`E4$$FDT1!~go+l5ET>;rSPtuk67o+rcgwY|AGBZ2KG^U!9qw}3Knihn z{BU1R0`B-0Bc59`o#75&LA;h!xRAi$zUwq{*A^Y|=DHl*lrVGf4zG#XZTNtt{&Qh$t^=m5^XcSXMwny1OPp?F_DOl!Th?iwgn z4cC4Ba;^6&7(DxIJ=F%^H&&c}fJ>IZ_4&D5f?KAQf8WYRyDa3@&&uOyS|c|peOA{U zhu#;QZhI~hpC^>r!q|FcYEoQTKAqwIe9)t_#i1fuoZG=@*eq{thr!@=cD1o;rIxdL z*=+AVDJQdV5Tx?Bx7et*=-qu2*gf=}KG%bo)9@$5W2F}AHq3{3PUO2}H=uk)v^uo| z+K%G6SUVLX#T<1d44Y~2p(fxYC`+IW>UFrF!)a|eCs^Zh-8%Blp8w=*#j%fQGko#N zAKf6K4KP*f{FgLHYFFga*!jueo)1iMMbJ;lH)FsZ*2q(r0+1m}sot+>KY}WG@4KsS zSbm<2V#f=4WhXBZN&4uIF$GFL6ttdC~c zovx>!EYf2BrRetuwST>`uy4ydUy)Q}jA8|4(zZ34bOA3c!IhPsMVj!i z(K-$30j)C0p=?*Bc!5bE6hxfMex55=Vso}d!gKoVa5#qNkBAj%qQmPP?Z;Upk)WAK z#H_()BASh`9y!(I8=5;?Z;48$TtY>}BQv*{C!{muoTx~NMkQlzHCusYPx&yKiZfq7 zeerE>WAMB5%KPnx@g^0mP4NVh+jkIKhr=w&f~DWBISLmW<6Z+xY}wM8#=$FWUQ2qv zZu9}Ejq!C@Cd+}n>dSOTr=FOCmAv}-{yi7)8i(D(q5P1pO^ZJBC!(&BKh`lORQ}V4 zWqY}(Q)RxODvDc);(TA3wMVWs$xy+s6O{Nda^D{m#XYCUtwU9f)#*&!CypPoHJ-`JuLk+m%3rtSG1neDBy| zT|vMQWx3xv{(#8JbElPW13R|Z#UFbnfs%Sb4!bftJ-d>QA5#;4qcN;euuf$ z@@=~{^{Fop5BG42&aAG;m+Ql&f@YRjyHt~mrquAjufKQbdo3ePaM|rSuCjFlK?vhjXjl za^Mj%sz}I~E@v{hBP*7O5m(JbXl^gU9LQ1ZTE^KD7_e%u(zhj;BzivRRp*TY*Y3w% z^;O|Vd6-hUuxqdIJLd=Cvu&FJdez(@jN+w5lj+$s>Wy{{&LY~7VN&eLc=%cz^=W0vr+REa?ulu1Jj7Jl%$tOil7 zvP*6GLQKHL%5+ByzNBBK7-B!J1~e1bKm`mNBGO*#o-qP5VE@DR?$bMUX8rR@eg_2t zVGQ#swe@UOOLpg{{y4@9IX#L0#~&90|9&NK#};|zobsR943G^F!pcvcRjL1SJs)#D zk_Ix*rOU-$qH#Z%7hYq?-07QaDnmM*f3)?zlvn@deu@CfuF7~IDAge=;aF0KX42^S z(he63d0>eh6M<#p8AO$2spU`IYv98{=yqAYk^_p5o^bITP*AQoAkF_3G@&OS|G7^8 z5%*>PH);C+Vdfbxc7OJ<7VK;i*P0FIx2VJh=Qo3OuA3+VURUPK=X``p999V+N$8f)&yr=n_xyHWLup8*Ln0+f8oj^Dsg zN@@l~2Yopnqa=LiAo>agnScuE?)sFvzb7P~`FLroTr!c&KL$`Wuz@HfQ3zaB8dELp z4cMq8{A^*Bf$&!0PlBd9E$Ao3z+#7Hp_m)DnkMM|JTQW=-I6>7$oel^yae%R^paMI z`JD*CQZ9a^-zq@x^Junum)m6vjhNpplqKhQ!-Y_QIafBlwfB228n9ycA#ER%yjt`H z=9=DT1>u|R6`R9)Z(P3A!l|zRdg4R1$qBNAeC=-Kvi^W*2mEfil#ZFx&2>#aw)gax zU=qW~&GXC7cAo3=Vox=ZpzRB7*uB>Zo{}FT|knU3!ma;xh=bqeUhJ zN{P*}>&8pX_X%9y8D|0!$tgjo)4a2+I_b=3o3fRg!sQcUxccojdLw|qFe7cv zpxFciNMcUpd(K4>7b6Obc$%H)L{Y0%HDsf8;A=J;8|o^)&+a+ZTIz z4CKHHBGgLOIXajk5xY|@pXJ2A?N9xAsaXuTK;(zCr7zPS-*_(@s@ItZGu+}+hpN*m zG&B(&4go-1(Y{H;K9bto05t#VqEJiS#DGtMLpqVQ`sf^1^GL1;5b;~t)YL=dL#gT{ z$2D!<`x)eGM6Ay6)JBt;_=LA+#C8d{>W#WD-Cv8&|FHz~=>lbmh!(dD`SNI7LE8$? z{JDAWqi3#&kSO=CkxQ)IEFMc3>7OGr#_H zoAS@&C5T8uTLfw@zxjImEcJ3jNst7hF6P08N+KXU8g0@cEV>&`i9$p1K){Y-BoWcE zfo#cQc>}SUX+V~aXZ*fyyjj8@gh>r7A9cY(A^`?#K^fBx7DRDODS`XEP6o$ga=Ugd zA_4c74{iQ`LPmtEjizjjfnP_f)*7dr-E4!yYNiZ(b>MiDQT;2qg!PKW$lr`Ht>(^@ z@r^Lcr~K1fPU{&cPi2n5 z_|2a@wMMFkoj+O~o$>08HZS||gm8JC7(6&OZ$|G{d1|f3QA7eF-k%str5+MI)_j_K z{&==cJ=NfPs#>H`iGm2M93@0rEEadT40_Fq2Skb7t_A9gs-@~=Q!&h+i5(8ckO9m^ zW;0iH7$k82s;>dNss|ag4S=5E+&q>V7)*JqRiv`3R{9&;{_||Lh5xq=FP%oOh32l! zBHdq;caP||7bL%do7&pnr~ZTebKb#AyUhb?QYnyq5dMTi`Q9hRF8LIlH;`NXX~ zW=leU24hT1&u=c?2VOiakkHIK29K07Lqet0caD(&U;Ftn8T%<+D_=3Yc?)`8nbG-E zzV%L=`=c1hf7#FG+?mYxxAHcQI+cs&MsM>&VH6IPSGSt3dJQ^A$S&g4U>aj#Q8I|X z>j)zLsQrh*TqWtP8OpB`L`N$uokH>x1-~=xMB9d3Ab5mIMMF z^1c6w$-4H-M8~;mn_%|b;lBq9?njoB%ti;!iDQ%|bJOL9q?%QED+Ll!Wezh4Jl&Aq z?;-Rg5vMzUEcX@~m%ONKL=4yrx89&znRY8)fNdT9ZOG}k!92{2-Z)x|UD0Nt^n z;ehvJ-~H+}rECoR!@#)`$EZ)ur$Nma8r_Nc(k(l^B#uvC0qnUtUw>*hO%oM8M}*F-4T(rO0N=g9eoX{JR7Pu@W21? zOjaG5tS6UCby&d&WtgsAtdbjIJWTk*=+uF|wn1IwjE$a>1^38-Aoi&^hK6I-<^r#U z*$raxt~uw=VsFGk(OR2d!OA{^c`FPpR}1IkBr9_5uj#qzCLx2;;BM*S0JP#3pA)21 zp3T(gB1iC>?zuSZ9>>=y<#4=+o~%JV6qKxZrkf0V`24#XpW|u@F8zgbserk93sa`( zLsgho5$B80xNKeT%PWTZz|Iv)X>@8QE89&5-75HSB0&Rb_2p-W3*%^`B+r3eu#l&f1Plu(%X09CN@>tNr#vu={!of|a>iv4U0+)BaoyFyA&_ z?upHERrJB>i7U#SV?5X^~gw@mH1W(%AaF6<7%@7SOYKCCFHVnNaPA#rQGJ;q}jz>-x5S9j? zt5#~ea>gT*#)?{QDB7Mp^|{Rc@cDpN#S35(k8=EnK|AJgvFK+415NY!I@YIHLy(V@ z35;23P8u5E@isetfpqey;*Yg(u!Elw!)+jpgg-JYMiveRBjie5p%*+Qw-6P}No+*4 zg{c>_Q~dTDMI4L36BEz`izuD*uHkp}?lhiAU|6JyOzO}yH6k<}H2ma7U1wV}zX~h= z8j`1%^P3H&0n04~0Yv+FWp@6hg_z}JW;LPF-Si_`N7}n29}3kXTyBt&HGqlGnk$#K z;+@}247Z{{Bal!Xi3g!|+R~MHF5&{>NINmy5>bBK27G)ZT73vcUfXFYEL(dUN0DUI^TCO^10oKrg_Hu%&FoG z=~NNc4)E$!m_LtU)WyXc^EyB&dYVx84R`kYVZn72$!GZ7nY4e6D+E3Y$rlL2Pq@Lg zI~eH`3V7f?P1Hf_D}brh@(TTWWcu-_v=l!@diWNriHj*`)J4a=nyJk8U zjAk-S7jEG38EEh)OR0r@ZyUTHzgcy6K)|}f^Ijr5*fG{F8%+^k1o33;wnJivB6LuzCdq!9Ubw5p+nYwG049z}FBr%T033N4i1ghZeHfkvDntd> zYkWYO$Y;QyTB=QV8KpFc{|B92+@aSFcb2blb0}Tn&rY@R5=bJ5k%?&X@?tJAm{*?V zumA%!#)&*#l^mv2-abzrx3dIKMuO1iS%s$Y2mDdMj@nC{PlK&juyD1gAPLGFO!6+7 zHfd_=Q;+T{&^m$5u`~CtNgH&MZpvbG=FQd8Bi~{rKAW-RT3;+8=p;G-j9>0@Y)CGE z;u(kZo4WnE3FF275;JWbU?=>*!1;&%CZ1l(y@3)fqjYB|Ct zn~sk+xe*9di7j$t`j@?9v%;%!BZNuM2bPMfDP1UCaVX!S#}b~U~)+=U3u z>4L%)5-#6F5b0%c%;bV?lbp?HxhDZfo*p;~$VQz6_HU(a(CjxEBV9F&^|TvJk)RhYU6AhYLtwIbIH7tYl=u~ky< zw2x0Elc1k|%SKq+mx2n6s85XGwDhk)>p81n7{0c-%N*O&hvImu5nR?2L8&&D&lgBI z$o9i+;yA0d+{EMQsqdzxTTp6^gpqSTM369-Jvwfy4oN~@FTz#v zh?^2iJJbd#1sAqfDd7G9g{TX^b{7SD6LGr0MdFIPfe%FUV8L*t#mM%$;MOS9^R;RJ zPpl+g^+qc7ksn)gSy>>iIY#ffo3Mv8Ujy(`;4oLJ>wuKt6%Fmvzw|G=HJ`{CQLNSc zCN1S_n5_@-tRex2*l%P8-qT}t7n~sRF%@%w$zqB8m+=3C+c%!JjY+ngZe^}Cgi{l-Al+Uv!S`?CkslwStnj)$-R zn(#|km9RV)8QPnnV7$8gZJVG-AxFn5v_ux!6di<4-s8#=F0J6Drj9fAYl4xR^G`ne z=FtGrw=+gR6fBHtx_FVJ!y;)Qv6PpwYkD(dbviGblzhdO!Tt^PF$`1n16k2vyf;mj zFqBfB4UdA)kq6JhDPTToD1$X+!hp^`e-H0fL;oX_rujQ_{R<4Lf*I!{c$>ur@>GVU zP?9&=2`oJ^OmBt#;BA-z$D}3%D5lQK<@L6{w^f-V_|?vby6CcimWpy=kZ@*&76Oy! zGEg=yFb@9_j22s`o-$hy6ad8BjLJ;Z4H(KV`oKm*R#u==NVPqs)BSe@whTlQOM*n< zU!wntI3USos&&pkR_tKDzQz35pkNpHYU&7*fsX#K>a(JBP1*)Eqy^m8lmAVMPou*4 zqJB6SCMjUL$9FufF<<$|mVGnny|8jC8Wi|ZIJ7&_9JiX=121WJJg+ogqX!wNksx63SwOE zYZ-I_sL?T5thH}XEK&J_4!S~QuKFIZBR)=TG|c19cRv||D$=>|_!n^Qn9qpR|fpm2HsyJ5NhD1Rg}R;}M4Fy|g! z9UI-IbYCaFgaIGk{d(+KE4UEY@7|XI;jfw26?Qxel(gy$QV&tST+Wsqo;Z`L|ALo%S_16X+z&k7q&T?B2M~WI5n0rBlF-@$c2`8(vG+ ze$H;v=LZPF*-e4vwKYE?UZ=l3QRFMUdt3ODfb*k^D+1UdcjLJ&QI~wNdie{G%X@1@ zAW^jEQ{|=8?12Y958CKCW8Txfy!fr*>FS_QV96_Zkbop|^C&vdW&$`Ghgmm-gBrdcMid2Y<7E z5;_tvU28gjuMT(LeHRyqgics*fA@_6Z@jhC$(XiJ?ujn!ygdH6J;}KBAfa%c?Falg z0FaT4W55HWUAp`kZ^&YlO{%RSkQi9P5+mTT*nY++e6ayi4cP3u2a{_>MeRbFLqN%r zWs>aFlgOVOG+{mGoa8ta9AZ3SuCO4}>2`1jn zy=zdt)`0wAu`w`Vqi$f)y!E&pP(%ZPKH#-z40vjj}v!1vzIgKyO zwF6XeTEvOnv%89b-{@~wc&m3&F+ zQs*t|Av)uy31(fAmQ_$tx2Jo1!!NT;lk+mTG=F;mC;Wx0>kF?*vj}nWrQ9*U2kpYm zpIt5%j{%C)Q2w??=fm}xYlU&?)5SDCPn72`uO#ND%lFKFf>KlXA0c?P(Jxl*w~>7l zJwlbc__I5j!dNxL!rh!!w;XIHU1;?#*AI1c ztpYb;+X~}twuwAdSm5n%|B=xiD(M34%&|(pK$ztBaa<@>33ce2XkL9G{awa8BBy(x~!(V`4f-KX#u$xOhsoW$BlU<+3e{6^(!-VS>7td$afiEF zt{1sX+B+SX(NK-ba>qF*2$TBz1E6Apv3;3mw=8<;9SSJF11N$qd&^yspj-zbOHx2Q zE&HvF*%AUiQ!l`kWGLQV{smePjZR54dJ5c^)vk}B=`6ign>gF!_1>P;a;f6=P?dpG zcM{k^{+c@5(;S}ClMMm>nA=VG;e4Qgf;?=l0<~f*W)+W@dKjvRaYb!mTD4&P3|xG! zxBL6Vd=q>l=O|uxY}8VaR(AOV%s#-10Wn%vDT_)6i6YknkOS~Miwvdkm^`ShfS6($ z-G(A#-k*-`D6=9bOdG1em4B527_@^^p7DM!<|ht z<@`Nf-9LFx@Y*+yTQLRaI5rP zfwVl5qa#tjQN26)#F?pA8orKW)YT8?C6WjyZXeQVG`WuwuN(VNXSYqpv+3seDI>j} zIOo{g$WIxRxh8sksz23aOIbiZ$==eh1y?!%&M}a%+q?kkaZq((oWZdVkNHx~+knU0 z^bpnwZFc8}7k7L zDsyFm43U|lzcvb0?}?QQVAQ>~s}uQlUng6Px=^qI>SYM&6u?ab?;Ny;|+6;DYt!8Ag0 z>9_&$H$#w1A&fo_7FYf%geI@kS94)MGE5@kgyT+eQ9r)C0Mz4(O#-)qFa;Z?En8dP zcIp6j_mCO8HYp0&YLtqqIqOag+1SF0W2VPM?| z&U*vY$msPa*wD4%@BKnyY0!_W;}xkyasVTXfRqUn4InNnlpryRa8k*oQW^S@Z6xvt zxEC39-$0De+k+^CYu{^H?o5_!6T;P4UJ`3JdJ%#6lU82xA2iK|qP4F%F}UU5hythN zz)a-@MlG%7P&Y;xwiS(H2Ml{#`&&rjU@~XiumYI`=Or~Zr_F3=`6_j$t}hkY!Isxm zS5PO|14z^Ar?B}*7Q3b6nL|c)Zp^4TEGFK^jT)}6ogrBBItV{SI8nMY*(U$|OXje? zdMQLh0Y+v)%Ct&Bbq*o>yw1J9`l1*MgH#%H-f6zPS~&HRP2_B^Pg(loAA+Os>jPz? znwOrTXb2R;|CIb=!J46MUy4AOdR~DVUC5pWTi@yJ)-fg_kC)r{EQ(xr|>dz``C2#n!w&&eWf6rKuGw!_4JS=@gG=|J!sP0N1?AxZ35k!baM zo%*mBz*(#*$%o40z3ii&7ESq)>=fIuB8-^)H3j}eA^B-Z#%Shkto=h~Tq3<9>CqyUGwwbgh5TJ@1Mb$)h9=VsBETqy&lizHDDelz06k z(iS%zPL3$@HpWKGIdRA2*MzJMCSn0~P^^ODwL-qO)I^aoN-$=J*bIh0I<+cN2NeCI zVWxRhUkWQD!0|$?64`@r3$=blPas+-<#v!Hj*;qr{c5h9OJ|2KgvI~KIEGdg9*8}a zB>%P*hikbAg`kiPQTdH-n!;+K-a~q>0;#z#oxNqQWy~yGlhpaHLU$% z-yK_-0Mr|8y+m9+$ciFC!rX9!6<2b8dv-jR21T=z*6;TT$Vv_ zK8{5`4zqGpVN$uKmf?N_6iHv70}CW0eB4 z*P7v(4vYnYO^|q_(vQ8|6J>Pu`ApsR9FUg@>bVT&QEoORw8AjSvD=IHx6x>RBZ{?N z`yZ6^wH4+uEy4^>;HfTuBvd3AA6ypkoU(ucOh;9tazlWvT4UJsT%|KJG?u~lBJ}~n z)dIl4*{L$2T3O9$5a2`=%)Rway~T#;%9dTI=7g8csZVA=r%F35D7$ddpskAMgh?XU z*xuXG54%YBrG)-evoD4v9^G2*&vypxe&PdLqh+qQHfO|q7+f}s;sp??_4|K%xK8)$ z{FWL}y?207r0wN_j>WuQqZ9IXYPqxA(&fHnW>5W@zcF zu;k1NbhL2Q5@3#$T!DfRz!_!tjOr|UiL)Osj+F(}qTPA;O2hb+v!yvzEu?9J- zz30QVbhNg^!3c^N0!~M?Nq?vHn9psoN>+n2T)v-0)AGW+G;jC~W^ zFr7i}Gb8+9BZ**G#_G`PN{npo5+mf0-=0Sct~QHFBxx9!@b)bgI}qOZ-O%+WtiH z#=0Y0ot!sjt6r-OD(Wq!*@>$9>lI>S>i8q2T$zUzr5p|J+S=!m8tR_T?^Mzbk=aO^}+lv>PfRMGgc-2JMMDZ`wd3h z#DCRM_ha-2(!Fw%y%4PV$HKNWBP!V+jf4ima9xk`=4U%|sQi!Hl$c6+B-}1&%L&)R z2Rrs-@GqeF4bkTZQ%kN3GxnPyZz&z}83L0Bz;#yr0OF1gMS+Zd4k!NnI2Lj{BH;2pPxdpIl54rRsPiru9Wn!%@ z5_cxEzXv5lRX+9nZO@WG#u4gi4WJcm=3tU|X3r=ib-0w?k7UN@+<>Y1>rlp9x9lq; zr=O9>+s|W?MPTyC)iGhg-jS)+VEkHR2!;e=;CX`@X3rlCvqdpCXp}E3~UP?CsWH{b=&QM$}C1knM4K!1!TixYcI{ z`8$;q-Ky0!>R&xJ4vaL3U$bvbnxXvcWR-*p^0#576Y>*QMi+506OM4*!(dN*+rs8-qwX zzkZsL;;LOepO>)XvCtB5m<=6NO-OB4e&g4dkXG{U)v?&Z3!X#YVZl|@netV9CvK#J zKj(#qK|laOG_om1Q2-$xa5w!om_Od@2Q-46u{_>`cc9C8chY)oAZid;O1Yh|;cCu{ z^2mgIUjdauS{WV1OFK{h`EANn`{`Olq*f+W{*CP(O9TgQJt|eLyh8S!WHhC${^Q!O zAlLz91+fH^BdtZ(f9i|oP|YH~uWDLFTQTkG6~J=%VJztI8#0aQD`R25^o5s$F)N|t zhT7jV?@By+4aKCl>u4*#?CiO^_eOx5HPT$Ol!{Eu!CjjZh$@7ifM0GYFxL-@;NbCg z=@I<3SHY+Tsx6FKHIlR2BtpQ1ET1ETheXIdqI z;4i$3glt1ppUl)Cb#|X}Df}t>xyiTmHTVbQ$w2Et@(`-N)rzF7=UYw#c}u`)^&4c> z*n;!N2nD^gJFtubxL>INPo{jHJn7wWH;JOg7ov+HYzB2Sz&=TUP_!scYfU_@E#Ume zNdL}bZwg#~aKK#_z4o%mTs;jmp1?Uw0`djE2O#)sC9oJoGH9@Yvx!8C%&Jn3T|iD% z&1yfV6{Em-R`j>x$Q_=QbUd z01bd7-N0RHJOX@;g|qY8vgz2PNz@}Z?)_PJp?46|ZggS{KqX;n zV*tWg1wW$^I1Z~Fz@x^G;l}-O9~n%6kG;Jsj6f_>tTF=c|E7DBAAbqO(m5{xIi{~M zss4f=<6=y1@vUZnvu;9xtLN!dvT1NO#?yH>{SA)00S4^>QUMGN&&M)5 z%T+-9(l;!6)gShoLm&pVtnM-j_}rI)oek6nP4=OG(!C#OGsAD+K)gclS8Vxw%#4as zbf>i;Kn`q%*?k>Rr$!Gwac_4*<&6gzBfpEf`e*|C!d`^atOu=^Eg3q~lS5rx#nuqeWlbb0}UJi0oVQD7N}CM5Wfg#Uk3dT)Ca@bg?bqO3!ewB# zS1dm|1;0tkl;_n^M#slv7Z6JuXKlWa`J(}7tHxMA<&B!K#TI}@-f^<7@Q+#xP|+u6 z?b9n*FS^PB4f_98fQg6xuV+8AF6{pmUA=&F7Hw)#lblQ%jYw$|+PK1Hm;pc2pPB3R8=;W5tDNch{C9D&4a znMBT)z?IVuMvIZaa|(liJJL+`W&6Y=l!)uO<&<^g#K>rtn0-lI;-uH|3S|PDBR&d| zfDe!`K0rMYb9&NQED*4P*A}3FPv@PYs@<3kr*_|j5ukI)T1n-~ximQvaP~c^9a4#w z2?gGreJW3J?VykeN!UnvFL-=u)CI$e(C*a112i0q3aq0myH_ zbhoVni+;UXYdl+8Es{n-SmOX2V3O>Y`mA@!p1{L5r2C0?%Jme73?zfW6L1#&I>Q7o zVEjEbN4J^>iQb1=FR)|CBydVB${qfV<+<3l$C3Gk4gt(XZ9Gu?F^?r1&ZU%cGAu$S zH!io>Ksjc?d{2lHs8pn^VJw-BLMqevMysTWMk6!fnh4>Oo(QOU!LY#XIYbetrlP@P z>mwQVI99VwVtq4_r8=dgU2-W%Ef07224$L)2C(MkKz`Qf3Qz|;0N{3Qugo8cH5yUY z>6BY_)Qs$b9E}y0#3>PP!*2^@RQLR_x4V<%AAU-T|K*oh-+B9S)$94)&AFvthlg^3 zqKI2J$P6%3sE~mLiLpo#p^^m(jl`yS&&3zJsm};ldf@varkm|?KExJ(1wkvl zcHzvb1=?Z^Tx5Y$3)S6vTZ^aZr58;~O>!xGDkUvi5iRR=eydT{RtqR$NgUmIk6qk{ zo6A`eW2bW9k!0=$Z^QtOl?_KHe`Md()2*R28>o*hREI5|bA*(e*@DWzVhtnQSGCxb zNG4H0q+?ip70xN}=GRK})Gv!+EFq$w0)aIP_t3i&#NnzX4oUZ3hhST6qo>pTHaOPhT zxC1jCu;FO#Jad|D_P$(fRt7(c|5LaWu$+#W567|xswXml5ab}wTU7nyJDw-Es7x~7 zbGeW0ZZlAoi??5aL`Mc}q}(2BG)}na?9LYsNLzCRh?|35r#Qo%CkDshaAb$OO8T)} z=}QgfDS!gncI=UhJV6|`l|fJ*_S_7;bZ-{RE=YOYv9|j1!$Kp-OE;2DHc(%jmXdXp->(O*v1I2n2hJ5AOW=8QR1y_{yYDjqOE+e+n~f)_3%LU#G&^? zn;+|=0bq?yE9(7D;Ari0WPoWa=k#o;rQIaaeFPtu+|A*XpQH^)P;)%m?x#1!Z!Q|6D?!$~f6EHFg@SpTXpuY+aIi;3Ti2#(oo_FQ%00k@ zj9uPf9To-|1Ck|y!j+kU433%p%xGJA7b}$qprZ6 zXG~MB4T}W4#qR;OE)*pUyT(_SezM*dgw|*w`hJ2YN=*LAB{dUw;MVE`_x;pB?zV=A zH&ym8Oy@Zp~AkhnLRsBHdl{izx%utHDy->Mv;wJKEGQ34O9+y?k5 znFM8@oWiaM{do$RL0ZK1&W{3Z$@im4wf0jsASj~q&ZU=(D?{be`K;p>XrAhHiu77W zn>$_&GmD3AtteU?&w4B=z@h@)I7y$Y}i+J*_Wq7O? z3<*PD6aw^R+WY9o04Os+4Z9A@(o7|BVFdy;MZ+Pl0i0PeEL0>H`i(}jE^=U8@$_h! z9PrfW=;Wf2j_30dco0J~Fb?OPY z$sh?tSws8|--O+b7EqPM z`G>@}0S3|}QOk;5n6V7~7nuKx1Jtj)f;jzSc{i0*Y{)3cM{+!Fs*gEp}$Eux7vFcZ@bV!H)b%Maaj+HnOK^s?Nr7 zhDk15aP3|N(s>yvpraW|$O+Rb;)f;|XZjI;4wzR~zK`mylE7dxBmJM&-a4wv_G=f# zKoLYiT1pA&25B%z38lM{4k>APML<}9ph%arbf+{dkQR{cmM-Z!bNT+hy}vQ`*n8}8 z&hZZhLy@)C^E~%`&w0%&?sMKoAv0oE`8}7IVT|qXa%c0s@q6$R-W;bSAFCkflSm%S zoJK3r)&9a_jYpbqkgEz)_XPA$=<_)yaaqID!pP#?+4-B)Xd=~8U!N*Gd-rE)L(4rd z1k~KAGKcj)i(Qpyq~p~)rfR)EG`!QPet6>!*+PkREhM{4HH97%v0AB9GU@D%D_F1$ThLipO64_v3Wr6O(%&H@ zN7QLLt&u)d!`xpT;iNB4$%Ithyq7y-_?~LrbrZ!Yo_94#Cr3l)O24rB&TC)bAydyYXLmd`HS%|sV(GfZd z=IX{()Q+TSSakE{#fx1*t7WS{b~1XS&Gnik0HIaLm3j!%Q1Zj>$7dp|gITZjvgsSz zxt0qZ2L*6dx4InU54A;PAWHjr*KdVSLgrL8`b*uFMYzpfTn~E&NqKiJn%#Y|@HBI4 zgH&@Hk)3Mm?m)*me0J_dfTROs!?@%l^PysFO>Rp>>|jncjslD;>~I}gB!o&Zh6>aq zIngxM1ZwS{t*aNICX|0R1<}rL+#$s3%H?+`a_iPK|IMXSxp*K!-yq<)i4YZZda{!u zzMdZTXBr%s2n`x;kd0P*en?Xa#S<*=;v$hGcc7p}5ItZ1xDoudIN>I#Cje+%JIPLX~4R>mWyLz|B6lRdIhBz$j1H8}1zV&sOK_8>_0zewR0y*_0H z!jxjJ)-tR1J?E)DyiB9%#?*lO{8ZU0^dYhb%ivTzjir<+$j{H;rp`e^xONQ?g*#rO zKQG8LDX+|%ul};7$@j*WCOZurSYjEMZ9c!ns$FC3t3s#|#eiIUYzAI>O;Qs$*Ho%l zSrk_KGmwaMtOPm}5@W@nDeptEfmUqVw;x#jij2nRK(oaE{scQtYWI4pl1AHWLgDHf z9?O0y#rlEI#T^(Wo5B|o@6KFl>k#HWOlo-ytlngI5k_WjwDMoVFgsW#s$eE*%JVgI z-q41?j}h%G#f-2tVi*cU=DwT0hE5i4>$ujhk!uY11ZnI*;TXD5sWs_-5dz?AvWG^T zcrVKl`CXC`O7MM;IyMwXL{p{?gL6ZzI?lM$86Gre4j&C<;^}d#-(F&InJVSxKL-<> zkm!&=SrV=v_E;v&@sEuNVW1sqEFF$`HK&|q$S(vmi()?hd&2=)r4rjcAX1Cyhzhq< z!pFjV^wt)Fc*tg(#y)q4&1d!mydDj8y>Q+VrAZ0O_imF#B@6s4e5(SUA9v__$C!sc zl0Sw$LjEXjZ=qcYWcR=W$dhP()EzG<1x+={Q4k@E=G}whfyq_pSa9&Ns7KdpOTBiz z#7EG&MI2h?^kisn#HFA2JoO^UaX9WEh`D;>_Jha}h%8KfS}V{$vh<*?ONywUJMnjh zXsDDj7T3;w#}1~qdz7F7yv>m!f$Q9G?L(-+K)KHDndZ;zINnT|VSQLs zgnFb8qML)ad23$1^C;E@`e!<|!$2ep=UbDkIpl2bSq8f+q4#ueJpX%$Gi^6@>jb6# z$YiyY0{&Lx-%N=*PSKHiQh;Au*>*8(r@dR+4sAs{Ee?g>yqdHeE-;wmJDm3wx+-qC zvKtZB8$hjDAat!F{lO_A6DFzMR`;QZ+ReZqv?L*V2P3?N-8IU zYjSa}`5{kBeXHg|f&tO{+$h)UYA!xBWr5oK_9HTNSyC$Onsl>_wEf1jCV$hTHe4wk6K$(#4n(-&c;7@$+`pJ>_ltrMzkD=_@{4q zC;j0C^zo4eXlG-p~4nQh?ofu>naYe zv+Lek!~f`~QsG9sLIYUF@@^g>K$#w_i~!j>W1znM3!cucZr0xXTsWu2tg<=RcGu^| zE#{c(wJFUKaOqLP;v*682Sh`q;<Ff59vdIk4-jxJ6pAQHqtbMg0|5HB0Hy z^F@2w+2I0#2cUlSmGmPRe`=UGUKZ=t(?xjaH?dot2O{$Va72VsVjPN49&aeG zF!KSE84&MF0VzS9uKor~BxrUU&(N_xQMuY*$HbTFaIIl5(F5j^`0C~P%MNXa{Z$^> zcp(Cq;x%V+nc_gBLKHF#z(b6?=q;3*)#v)oMmj5`!{0uM*-I39eP2Fazz>eM2jHw# zyuLB+tX}vA*Z=kyaHB)bv?lWG^+Mc9s{-OP*u;8elKiBuyp)@`$gQr?@56Q_ml@bS6@2b-9;iU;wopJ*K(`Q9eE z+I|^zhd}l_ME&U>@W5iib#W!4L*nGgM}DJiDbi}Rdwj2Ff0L34JH~ku9>JaVUf6OuWkXSKxA4D6x{vpH+og?%MuFQHxFM8e+ zc*}A1T0Y zvnc_YgkqNPfcKkF3^A%97Gu0L0Qm7VID4c25~S++we zV+$vc03AVvca8eP-KWrm71}i4IKAKC9}*`vu`c@Nm2XQ|R=5HvdSvg5-gp{3qFG~{ zr&XTRu?;MPD`8i?rURY!Gb?rSKD2stl+57`}(XBh*7s zrhHZ!mrtgryi>uC>i4fYmZh#ZHY(qg85po1*)F`{4^_x`c9%c^A85g}Z849HGXD67 zknlV^IEP%Lkt)jyt36tYV6u?s5^wI13pI>liZLnd$2x^Q&=o=@=XGGX?{%u>A~IMs z1E0)Y7=aDlVTS8KD>1Jd4H!}e0!?FnC!EeOJx4q1D&TyU)7QkrBJ*CMU%P?*>6jo# zmD;V;jM%a~uXF9b2)&AroisFBVsAhtN7=xCVk7Vg!#k8^zgRH{DHI=A5}xvQZ)Vg5AGehzMk@i zlk_g|Z#b;|Li$%uc9B@e*xoSAC}kp>A3WR`56yg;G`0+DbkrrQ@MQY(VwsHcwcUIx zw)C^7y!EB#*4Wd*BwUCf(mVxxLvYt78WzI*1~iMHwIph*FkP+?{iGKl+%9stAXCm$ zY!^@ES8BbDQlbGxo@$S~^-W3uO|Z3~#~*s|i2UGaKA^vkpzYaot1-F2+M0O`%zQ_1 z6UMjJEHmz$)U}xJOKme;O!muulYCX(xTnqDVZIK7g##ZgidF9^#Dc~5mc2>#sRYp) z26pvr8|@0rTN_vV#=v`;y&q4a0<_=70^bFIdU^k%>rhIjD~ewI0VQEqLI|*W$7SfV z&kdi{PZ5vQhhjOS!z9(<$>r4VU&#saMl1ca91deNrW{_2*&7;P1s@=nyUfG;`U5l( zjzR1O&r-qKQla84OH6@Esz8SP{Vk8~p}TkmYrnDvsD2>`S!rJTF3ZRyxr?eV_vkge zcA)(3xN6qZNm*_+Zlh;N4JOxy*yH8rO8kC%zzEU7cp`2Wswj^2!Vq!(A#@a_m(i(o zJm!Q3on^xp^ofCzn6+}6Wor+}hkWaM_wVx{;aPgEi&70oVKP0ICwEtrg7GUV$_os* zUo4IC=@l9JwX^`_^-Cjw!z&96fcy2GOSOyUP+1_X+LaIXL~u3VfYFb2(y18CQ*bzZ zSPuM$IV`%=VKRe*>~_LyecH#v;*b$+KdBvs?LF0;+byCB$$w58d`R zJ~&Fu(8$MQpaO$2sNWuYYKU<*B@KJ`V#rs(aER8hHTdDMN`|sD@Y3~$DrQ^Zf@3Cz!-ZlikzVr{{Cs(D{BSmJz&yq*^2l9(<7~l!cXpZ7|UXT^|yiO)9KG zVs^AccrLiy<{ZS#Lin{8n+#OXW)709yRL3sdJ&683Tr(+Zj3SCT#PA6>?M@0sPECK z4(go$`R+Wet0a_=MS)2*pV0Y5Ysq3)BEii&6iuFLw^Sht(_ku4>E85ykI?C#hytw~ ze~r0M-+?|~*oV*MrmS>R3>PQppd$W!&+-v-Q-P5argqBw{ijC0jXt~`8x zU2=2Xd*l#AR0WdWocN1TjWT`&=qTF4YkTXeVrG?0`GjXcK@f2uDFvHR8W=S{B8-Qr ztP$|vlQ!1Wj9_SZubJzs9%Y*JxwNd}?bjV)QzEACu@9y^PlMdG53DrOgWK7GKI{i* zxc=&&n0w2AF3tsWHNNX|V(-@3!nm>ue6;s(ZIP7x27eB$RLPLAwA;R$@7B@l?e~=w zZ)0B7EKlLb5Hi8G8qKI}A=6;B$G7hK2N)}vX(U2-!ll$B9~Stu(;jS8&~~Ae3Xrn- zzNX4ST6?&~F7U?< zd%N_~tvvP8G5%^p%~v=M^$^PY>|GPGFU3ia!IbK*VD-X0vk|z3As@O{?*`Ybb_suZ<2si3aXjEK32{j+$m>;+pja;Z>QG z!7~Chc29yQ4PtkcvqaLf^{TDVZ(x%kaG&1{%t=Ovq>rCVELsU$8?iiVI3V3x#^31@ z8u@09RcbRzR%WRh#re!Y+@R8F{LZqK8~6%E$cn8Dq=&l}{BvqKoLqt%eJw3n+EOP| z^!r%Um^Mbtm3D!f75dB?;L}NqE;w7(?&x3aibf5eJpqO2l0iY%CR|snRhDxclz+hL6k3Y>7dFf-rKa3%V{1t(QlQxOx$; zrA9veMlwx$tojFo;q1`rfbKS%R;5zF#D;bdeen7fBd7iYeUG3bHe157I+M*d<=R-VZl*U-2I1&lhQyTh9Nq(#iG z$gVP?i*g-tObX*EZXd}u8IaHK4(8m8yT|ak^Geiw+*%s?7T6QMkdV+McC{6BwzAD< zIW--AI@`WgYUpP_7yG*LX;PAi=OZ6h%~EA?6hYIT|nbKdt9Ql7b?mrqvcm`^e5oB{{r9_x3e_)gcItL7FQzKte$mm zJ%>x`Qe}<|#%kQ_vIUz7a~9)|$Db5a%x;{99vxk<1Y?v%d5AhXx!W){US5!!0O?VE zC6ZoAS1ckz^UQPyOib)W$Zoy>1#_a1E7g!}1u?%3rhL-g$?Z%ad`IT`z`_*}azE&L zPF{}s)+Gl!CIu167#hH+nN6R~*Qx@i&nLQ<6wY}R^#a_B(;#U(-d!pOCL=!5>->no z@<*?~G&@3|#UI+M&s`+_ZZfrzA|cj%SbtfGUKCR%MZ3Z2766o}*Shg=8vpnQ)WlNF z?}xG>Hf9Fey@Rrv$Rul&LBI1ZZ4iM*g*mLi@jyU2y(&}^Nkj%RkzmNKZG5zgB@2I71k z4c`x^DaSjWwva?EYUQ0G=HmXPAhK=ErF}Cz5dF{RHOuOVVoP$E*9UnkRkqm%iZ5or zT#kMYamz2`ru}>!PKHU0Qt$^aid)$DGHb~&6F?!{BOEbwVE9I1uMaA*5WI}y& zs+K7Qar%|%VP}a+Hy9C#g!KIny4+m&wxWT!r3%bW)*UvDG_s>F1i_}3)lHjPBAC9N z$!x#4g)qvpAostxQ6dCvAw_fQFW_c4INv7H%+3`fIFl{3<~$BI2N`GbB?6+8iJlZ>+QIL$o59wu+TC z{z{;0u7w&y(1y6eS~-A}HQcQoPDVZ^n?S=32uM!v0L{L79SD-GrfNoA$+z%T{s&c2 zH!uo(sP~%iS3rM_N^(YtkKxCqFUOBAK6 z7+MsmWD{LFovBsA@7<;~KswtG`J|7y&lC!o>S8A?`tHo9=!U#FS!YDtMfm_6iIi#$ zV2yguJU}T+(Sr!bW&YVCV*P4g7E7<5#`hv3Cm?UUd^~D|&*6X!Gx~L|J~-Dij}tK~ zUPa18HIF%wu3LKgH06NkkzOy05h6_t*vg9D?A!wumCk)D$x!krCzlD%MW)$*_<1E! z(`!T8&aZEFJ_9|=VNtwfk>YDqVm9PXjXSS%pXLTX6PHP`Db?%f0>!J%RDTp`qrad|ha|95n`u9maqX*pmimhC; z*MheZ2yk`QCo3p{P4{^hFwA7b#Z?U01FGL{`nCk#OM#>VDmUhX^~s=b3Rd}o_+(G7 z-jskzZ5XGx{Xm0lh*5sa00=t4>i#w^VW~WSu|e}Au!*|?JkW4|uZc>#E;~UgU;}(p zDR_vAn^?u35C>6pU-;re^8RbGUoqGhAkd53GYiet;7pxQ(n&x^ z^V6^OmkVPyH#{5763*AILbxr((%aNsM=B+pglt2$H`NoCA{3GC3p#sx$dS6-nmH+N!-vVOM_Nk&V z@@xPR`n*O}W4j^X*h;xnjWX2(*R*7f&d0@+@*%P1?1o2FniWw|~w?b6A#J ztr1R`{Q6yFPc9S50yyoAy3JV~A@dncDT@hlAM*4K(45=@cLm@4{?>Uo`kl{iHTOLH z?>;DsNua9Rux~kx6yPxVh0zj%*QSd}_BiCNsMq<-w88T*Hd`B*ypllLYb)3@u3I)> zM21L(FL{FnXJO3V`{egGzdpI}ILb727DEu0S}t@A>UOfv#&xnYY-`dJt{y#{oW@8hp?X!<(ju)i zGaO18Oe)+zy8qF}b3^bv@C89eNH`;0xTTrm-+F(r!$FO5VAcQ z7I&!ygQCW_4x*&IR{x-+-^w{APPi=iHTW5&Px7>_*BX;Jodf`dqDv_Pbm{l_sclh1 z0uR;3&ODtxIWWAQ6{YxzJ1+IaGzZjm7w2ik!|g@EP8S}oA(dLcnQxQF@VMtsIAehj zmB>2{D}9a&BwKms;fK2i8&QG+u-U`L=>|bZ;DXC8l_0z-qN>pSlyEuvfu@&YI-MbqxiWqUY*V-M+HHK?w7dFZB={ z*M^D?>&yk48MkGB;ZT;84h&!8C3j&D{kyPrvv#^rfP2xCTy+kyZ89)QjR|%snXA7? z`+}Y-G_smap-K^5mYDYjE|pke)RVb7l*9SeRt_7)X`+ZzO2A{y-Hr&B5ZvY)L432v zucYh}V273Q80kn4LdgtABM$=!n*lYW{zrpu|5DKaq7CR(QYx9JO~jPJEr3tY{mf+t zr+>mh^G9WO-+TA;;BA+~?sEhMOKjJ7Bn*&o1XY>2ZO1T{q3kqR{c)+7&V9JgDW4=_ z#CGNF`k3|gc}bd=k-v0P&U&_mF(9!Q>JX}4+N9&JPkp40my@n_n&uPz%B5_wYWr6V z;w6%JPZh|m5(61>s1#-VWYU;pGARrNNtWqtms`ylWq?@j@|&kSpP-gpYBA#yVp+soOEf5 z)8B?j5_4ZQsiNB&r}p-4en5(dzTw3PWGQ0#0^PvMpvCRlK9x_>^fps<8*@VRiZI(U z5IKH2+Mm97pCWEAtl(>cLi{y~b(7_^hR!&*-{B^Nsy=TGm<5G}6~upOImF3RGgj_zDwu$dgG;HnsUV z%vZVHZ?U^}a4XZR4Qa$P*0VkA-WyIauy(YZzN#};_9QC>9T%{ly(*Iab2jwPG{Lqa zypl_Q%yF0`xE;;M$=W~Dh{eqL{T%$_@I7PSA^@xC-yMtygc*-fMnr+2q|pbVJ2AHz zPQGp}V^d(E0VzDkX|gf*KoSwL&vL{Mk=g;K_dBf`w6-0n1|BT7w6Yi&g^wQ6T44m?Ctj#JK%)yB#@ciwHJmdi~`J%Z{+oB`L$`m3C-#!C35eJBC?f z>t)#NrQupRxna?)aLVZ`z!MGDuz2-Gt`od{t z0vGzoHc`(LgWf66gY?Jp@j`wu^+*Nc@sBvV3gDGb+@x!x!GpGds8MPyk{V7D{HXSN zx3|CyT(3q#coy=R_~FZHjST5?QD&{We!p?bEZscJp5Ay5ii^(v zhJjlv#VTva&+%MZChbG*0&KbyBT|XnpVZSo(@Fcf*cm=lFZ}AV_y<#iGYy$1cv$GN zsJU0;$-Wy6Q#t3MRIDanzBc(5L}~P)-m)vi9zWRx7klLFk2Q6eWlLbfu)7iJB`jup)x6kc975crNs#LDcQw-4GE zW<2Q##t1S9#}X!uhY_8AV+!rA4iM$h!65GQ{w>nO+LMFuqhyBg zR{rml{fqS9%;Py$e31!|T2A>w%5fEK!!lbnXSg7YTiTEzQ!3?& zR-Fg!qY%n@s^lA6qB>V&y53Eb_r7QKxBAT`jjjQ}qVX-VU-bnvlZ7*fNGmr|UfW2q zyT$`cd7NhE64Z6{#l+3XdGEUuy}=p|C|cntkq&)KUTD6vFLpaX4Sb?E9iQiFWQy3E z^!iiiT>5(7Tw6p2MX>`zX?@&QhPRgnFGsb&sk~Z2tk!k!{^-RIsy!&Zp8?scFIW0` z)$-=kMhV_0k4Q! z;ft~k*^c^`EVD_IOt(`@#7hQ}-2$YcHN*P*g3ilCnuqcU!o39S?z4(rx`oP$Ihpb? zw>7v-!>s>WIsv|=uKo$-wLI;8iR_BuvTNhEg1B0?B2~w8qvtz6AC4a}qh#oSO2w0o zK$jlg8!46Y8u2V()2kHR*_0%;ujIL~JkDikt;EKod(%a|#ufV9xgn0%mdf+wPfsKZ zCReB2&&&o{Z|}oRrlC|APo=ym`pmgc%0~=IxJ1M3ng%~WcHIZ+j()S%$%^{DYAC*+ zH(kF)gO|v&|9eWjg+ONtLBzy3#5^VQDDwfJ6|G?g)Z0B|QRZ!Vo_4a2rs~0)QHs$a zO6uxfv_(l;33kA5lp^zOZ6@JX-h_*-(p&bl1c`~c_&lb}avej;*jVx`=EV=e6zoW*}^rYB5@! zF!8cl6XqA1JyAx^b~B605?}MRYM&K9xL1ug#oMcN{9^ED`Exq3yyXQ$38qMOM4kZl z{myA1atr7QD%E~Bfg{!4MwYP2y(4g1dPNaQ`#vRNYBI%mC*?CmQjrV4gK*cRYMUD`1Ny#VFqIoYJ&!J7r_FaGk%C+ueBH!!Pjs`R3@AnZzJ#_iLl(GqS z8`akI=>LI(E+DA6|NXNiOVChh``*^crgsBxA8Nx794h$ArH?lzzpLdwaNJKFNeL@1 zpN$r=A~uGIPH-0si)O-14=Sm})a zvAI@fFYS=_`8e;TjExb+oV$q2&#&B;LtWZePJdUiZ1Km6i=ovmM#kAAA7%8NH&0)B zo>bht;PJ+;_ujp0zBc4MpmXUc=@m*hkZu{pown#apB;JV<$?3DjYEzz+x%g+kZ{oX zbFF8+QFWCx^>4559eG`BUG67n*IFGnE<_%vy-bR%uNyja7uV6blV_Lc#qzXn|6EKB z8K+hE61RHJd2#Cd){Dcly&_D-Gm*9(hx`Q3reR$*=i^(0tvCcFFqQHu`Tr;mrabVhdfX3lWy)sj?&y_a6HrQOwP zQqIA)we6aFX z-OYZymqMRJf3ynZM(Yw^S!*S=m0cUk>s+p1PIT`-tUIhdyF!~mCc%C>Sl|`$9c#+- zaB}6Q=+RTJS`0;8`K6wOxI=LsmNEYds6pEDJAV;khjeFE6(t`%&TlCEzu;niI#;2Lf|LLI@5ly(bTi#HW)~$49o{j0Q$dP`&*re-n!bb4O9SZVZq%{ivWD(TZ2}c)4mh zv6G;H?@=P@-0@E6%YY8e^`KJ>Q{1UJ&ldObA|pwW%c=)cru7%+BC(0863Ur|ljH5x zGYQr^YA4aL81dSU=WD<3WY}rEuW~RU)Iw_*?O#Hu*y^jmOVIx z*%OIoztzrNdoj_oP?h9_#N-oA$TlP}O!&3imMA4SeL0gV`atF31$oGt;iOCR1h?r> z8xh(~0XhOEzROZU^#r!-Okb(vS=FyxZ^Y~o-B`uMKtpTrex!Z{4eblf->=3YDx@v< zb6WkIk568rW!}?ymD+f>A*-cKWS*0|;rMx>#d{3Z4|g|vht00?MO3OERN1fGoGF=~ z#^k%iP__Qb^Z*U*4dc*%`;Gtp-v9OMFWUUnZPyxjY2|biNGML~TvHeR^Yb|}b-;m~ z2@P#VS^GgH_VvHtL0l&q8ohMk)&JkWu5e+gg2SW??5!;2XlQ6XIz0RP``r-M&G=YQ z*V@`T7Me}))>gEzv5_yRJ%9bWxBPgyb>}#_9O@%w_a`?pUj4Ng zrI(mre{tg2Cr*?e8yjob+b;gqZL9XMf8eEP!j#K=h<4v9y$=Bz+N+2=w^Sk4LEg#9 zX=Ti^K<>H!Z3c;Px{Mouj&bJc)r&w5Wg&6iM}2hE)$P|GgjcNbvKT8hkKoA|sj$^^ zoAo2w703lGHGb;iEmbtMCn}5^m@b1VYK!LHDsNANHs66xUPevN(}@G#;m<1N`?-c= zQ{%SvI#w#wLmKCcY~JmY*Wl&}q~6gmB2Zd_4;tPYN}1$#u&xnY-U}CFAkMZfW>~{| zx~>-9O4dK97ZE6Bnn5Sh4m0VFjmX3}_}!OEEL^58Nni=Qd(DW0%}K3b)t7&-iK1&E zB677)^SpzppljgjJW$Rn9J_gj)4(nx1KcGDB)yn3PCd69Z<<4^vVvNK;75em*w{!j*Z@BY`bQ>95jbP&Se4biOaIu|BA@iDC*$>Y9Xr(k1LEE;0e%(Vq$d2BL1 zc2V!HXpR*mkzN-Og^0_xzMUfvYGHn5jJT15@lx+%H%bX6lZa17$*AYMSLGYbZkH{! z#L=0CRK&#@$Fd}U1bT8<1M*t+cQpXWj3iOCd0PYoh6(aQ#{araD!Dn;$4hZ9t1}og z{)o%$|Gr)Mx-)WOf~qwoMqD`~g<4;h^sIDQ9@aVEWW`AjlmZWNyBQNb4@PV9v#I~Ro&rMZ zWe9&l+*&ctic)k61#Ot0|td|NDd};ffKq z%Jul@gW-`8buzoR7=IUGk6Ym?^S>{BS!GQLyU7OC|HWSV@9wJ1sP42e#yut>D>XT6QK&c@T!3_@0rH(88HT4-8kETC- zvmh_v@$lng&DP0lYpc_;siN(U=il?4uXb8{+hmu#U!y=Gc%hDl_D@OP+V*U7y#qwC z8J1Wt^(G}%gFT4XZg|qdoBbZat%cK0*6+-))L93Ihck7)zg--MVj)V`W!CSk2561x z<2K(}YLDiEvKE~j_`YA9tPKDaq#rhi0iI#)@Lmp=?HP~tPPY2^NAmH}HudKR-0*O7 z1DX5}R3&M^T+Vdgs^wMd2IrJ8h!Kj0EhkPdHE*;2@?x%Ug@>o&EVGKCo)wNox&(zR zI-j2h8{}Njo9q~5$Dcq+pM+Yt??<$3Ya_f)$EP!b*y{Ku9S7u&YZQ2b_Rcq*>t!fCwx5d7 z!K<3i2K%U7kDI@yoU^n{XGItSl_yH!}>wg5>pVj4BF&u`pyk zY2~f^1eKT8`my?Sou@+ph>0{~!JP%Qb0xkVSv^9Kpx(}6u+JdaWAu*{895*s#Pksi zZqC!5hqtgFrT7q346S%`M6kilq?U{2W)QwS+gky19WN2R>zO!h73CJ8m@2-R-%OBh z`I$*xC%&ki>L*FO!X5%PuqBCmeSC8WrhF+lX*!iosL(b>il}uw_Xk}y^_0_68pV{; zQ<9OiQQDv1t6fj~_6oUYN3pD|3ua=v~c zVk?VvHa>k3Y0?$_3Fvs^n;8Uo+y!u1vK0sJxy0Tj7f`k;*OBcD`iU2jgCT&6NZAn! zF!z!CNG5%HxYawD`Ar$QW2dd0LlupDt6U7WWs%K_++PDMR7zDtcSa}&v!V@&dqW*; zrfT?|DT6(W$d&GmlVWO#2OX7Lm|4kphqMj(!lLu&C%Kv9knneZUJU+Q6K!*#j*+i4 z|DV66#R375mr}%|a^&pHW#N+~LNass=SX}kDQQ2fupnGmY@vh9nx(%TNOCDW|MbDr zjoPjnvK-B!l7UJj={qUvM9wYx|G%jE-xX?ECNN6=x3K{~cB|<3@G@of@=jF*=yK&oW*c#?h z=1@Ln!L$)M3O8Ax0E#2r0My=MVPS#zbO8R^dZ;Qc%K`p19vilFRP_NTwVqW%Rdsc> zV>@jWz83sjg3@9mW5y0V%2^|fnP4Ha;!kSBPKyKk;4emORbe2NJpI}-aAl8j$GfCoE9Wyq!$q`u}b@yseJDk9EOb#QRd1n91=z~}AS-x>=`mE)XE zGadMcdBj;m5M|d76o#O@-T$0q*K;sbII!Qqlbr30K`w zK7mRd_=PlT->6<~jF!+%OO9Zk9&B_T{=Ed57^Xi)C z&4u$tn+&z+`Bm=arZg!pohbH&8A3f=#V@|5nFn)$bbg1WH0beb$Uo}YqJC0C8Gcd+ zl#g*ic^`2b^PJA1;C*7MIEwC*I(PzTr6NSzAU;_j_j6J#^;H@>oO0n&&sHYP?cw?N z0?GH)z#~1Q{omV~|F!-2KmX0I4E;f{ta3yWsHFjRmH{V<5b9vu-it|x9+?*T$m43g9nob17@I-<+RrF@%{71(|bRvAo(q6D+S45Ra|M?G@ zS0D58W}+_p2MRa(^FNuQaxl@615c*TQ@6v-1SU-`(;itE0rnat!_*=xKc7{{eWR?Z z!--R&3c;ujz}{Yw9VHy^F-*n^EI|(l+vK9zAEJ(Mb1>*Xj{fPUU2_143qk>P>SpR# z=2AToPd5ixxC*g@QUAxMYo1;@=Y@~ zGUg)*6x1hkMD@|VB#kWDhQc6VI0dJGXw(Ah6@@~;V*u63uRWZKyC&6MsfK2q zhwE6Kr~4gY1r@{$zLDtVaqk|-Lm$O}fAAYE0USV;`uyq%9nf9uSqkm`pkC?bot6b3 zo1S-84gXwOffh=>{$jsiug=92^|`Zjl&*N6%~NJlUTlAGeW5Sgc-ll%7Y5DME`A*p zG@_pSIeOhHIU__Bs3n6sm6n0F#D6|}*ZYSOMl(1}4S*j$GnunWv;c#b2 z%XV>9BmS~%Shw@xnx)>UCLBB+lFRTZ`LxD(2-u$~PoyZ8!PyL>map0o)$7Hb_Q>C} zA1LJo->&~?d;IuuhHkCfA{u^5HGW$we&cqg=sCl*Bz5q7nQEzK(y+yku!qRhFRV4& zO=Mr^w4r_Lv8?mji<@3>(k@EGg2&s+VpzH18wQj~%M!RS$my76yehv=3cZXC6|QAM z6O=@Ie`=#QouMemfYO6UE=lA(mBCw~-EA(A&VB^3=XY21jJ=@Q!rIra2Ez_@2q)Z{ zCydBf|KJ2C{Nk!w?lIygkqYzQ3%LdbK)pltiUV#u)ySWXab93Hv8kmPCMYQA`VssuUtX`j;&T74Zr-o>%D|J}Q!KE9p`FC;MwbsCC-27>}yT(Gp@% kNBFDH|F6EjcyUQ-$g>!8Ri)4meixdwxV%{YGku@`2V1})6#xJL literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/ratel/ratel_console.png b/docusaurus-docs/static/images/ratel/ratel_console.png new file mode 100644 index 0000000000000000000000000000000000000000..9666167e5fec95d72980a9e66f1d508ffb4ed0ed GIT binary patch literal 74126 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 YW6GtC!OP$9_cH*2r>mdKI;Vst0D~hV(f|Me literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/ratel/ratel_extra.png b/docusaurus-docs/static/images/ratel/ratel_extra.png new file mode 100644 index 0000000000000000000000000000000000000000..997fc6cb07186b996c989c1a2369e311fc162d5f GIT binary patch literal 46192 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
    !E%qA^MSffpHtQBQuq6@`ldbf4Rf9q+l@E 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 shortcodes with Docusaurus image syntax +""" + +import re +from pathlib import Path + +def convert_figure(content): + """Convert Hugo figure shortcodes to Docusaurus images""" + + # Pattern: {{< figure src="/path/to/image.png" alt="Alt text" >}} + # Convert to: ![Alt text](/path/to/image.png) + + def replace_figure(match): + src = match.group(1) + alt = match.group(2) if match.group(2) else '' + + # Ensure path starts with / for absolute paths + if not src.startswith('/'): + src = '/' + src + + return f'![{alt}]({src})' + + # Match {{< figure src="..." alt="..." >}} with various spacing + # Handle both {{
    \}\}', + replace_figure, + content, + flags=re.IGNORECASE + ) + + # Also handle case where alt might come first + content = re.sub( + r'\{\{<\s*figure\s+alt\s*=\s*"([^"]*)"\s+src\s*=\s*"([^"]+)"\s*>\}\}', + lambda m: f'![{m.group(1)}]({m.group(2) if m.group(2).startswith("/") else "/" + m.group(2)})', + content, + flags=re.IGNORECASE + ) + + return content + +def fix_file(filepath): + """Fix a single file""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + original = content + + # Match {{< figure src="..." alt="..." >}} with various spacing + def replace_figure(match): + src = match.group(1) + alt = match.group(2) if match.group(2) else '' + + # Ensure path starts with / for absolute paths + if not src.startswith('/'): + src = '/' + src + + return f'![{alt}]({src})' + + # Handle both {{
    \}\}', + replace_figure, + content, + flags=re.IGNORECASE + ) + + # Also handle case where alt might come first + content = re.sub( + r'\{\{<\s*figure\s+alt\s*=\s*"([^"]*)"\s+src\s*=\s*"([^"]+)"\s*>\}\}', + lambda m: f'![{m.group(1)}]({m.group(2) if m.group(2).startswith("/") else "/" + m.group(2)})', + content, + flags=re.IGNORECASE + ) + + if content != original: + with open(filepath, 'w', encoding='utf-8') as f: + f.write(content) + return True + return False + except Exception as e: + print(f"Error fixing {filepath}: {e}") + import traceback + traceback.print_exc() + return False + +def main(): + docs_dir = Path('docusaurus-docs/docs') + + fixed = 0 + for md_file in docs_dir.rglob('*.md'): + if fix_file(md_file): + fixed += 1 + print(f"Fixed: {md_file}") + + print(f"\nFixed figure shortcodes in {fixed} files") + +if __name__ == '__main__': + main() + diff --git a/fix_frontmatter.py b/fix_frontmatter.py new file mode 100644 index 00000000..1f065f64 --- /dev/null +++ b/fix_frontmatter.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 +""" +Fix frontmatter in migrated Docusaurus files +""" + +import os +import re +from pathlib import Path + +def fix_frontmatter(content): + """Fix frontmatter format""" + # Fix title = "..." to title: ... + content = re.sub(r'title\s*=\s*"([^"]+)"', r'title: \1', content) + content = re.sub(r"title\s*=\s*'([^']+)'", r"title: \1", content) + + # Fix description = "..." to description: ... + content = re.sub(r'description\s*=\s*"([^"]+)"', r'description: \1', content) + content = re.sub(r"description\s*=\s*'([^']+)'", r"description: \1", content) + + # Remove any remaining menu entries + content = re.sub(r'^\s*\[menu\.\w+\].*?$', '', content, flags=re.MULTILINE) + content = re.sub(r'^\s*name\s*=.*?$', '', content, flags=re.MULTILINE) + content = re.sub(r'^\s*identifier\s*=.*?$', '', content, flags=re.MULTILINE) + content = re.sub(r'^\s*parent\s*=.*?$', '', content, flags=re.MULTILINE) + + # Clean up extra blank lines in frontmatter + lines = content.split('\n') + fixed_lines = [] + in_frontmatter = False + frontmatter_started = False + + for i, line in enumerate(lines): + if line.strip() == '---': + if not in_frontmatter: + in_frontmatter = True + frontmatter_started = True + fixed_lines.append(line) + else: + # End of frontmatter + fixed_lines.append(line) + in_frontmatter = False + continue + + if in_frontmatter: + # Skip empty lines at start of frontmatter + if not frontmatter_started and not line.strip(): + continue + frontmatter_started = True + # Skip empty lines and orphaned menu entries + if line.strip() and not re.match(r'^\s*\[menu\.', line): + fixed_lines.append(line) + else: + fixed_lines.append(line) + + return '\n'.join(fixed_lines) + +def fix_file(filepath): + """Fix a single file""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + fixed = fix_frontmatter(content) + + with open(filepath, 'w', encoding='utf-8') as f: + f.write(fixed) + + return True + except Exception as e: + print(f"Error fixing {filepath}: {e}") + return False + +def main(): + docs_dir = Path('docusaurus-docs/docs') + + fixed = 0 + for md_file in docs_dir.rglob('*.md'): + if fix_file(md_file): + fixed += 1 + + print(f"Fixed frontmatter in {fixed} files") + +if __name__ == '__main__': + main() + diff --git a/fix_frontmatter_syntax.py b/fix_frontmatter_syntax.py new file mode 100644 index 00000000..f0f8e52d --- /dev/null +++ b/fix_frontmatter_syntax.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python3 +""" +Fix frontmatter syntax errors - convert = to : in frontmatter +""" + +import re +from pathlib import Path + +def fix_frontmatter(content): + """Fix frontmatter syntax - convert = to : and remove invalid fields""" + lines = content.split('\n') + fixed_lines = [] + in_frontmatter = False + frontmatter_end = False + + for i, line in enumerate(lines): + if line.strip() == '---': + if not in_frontmatter: + in_frontmatter = True + fixed_lines.append(line) + continue + else: + # End of frontmatter + in_frontmatter = False + frontmatter_end = True + fixed_lines.append(line) + continue + + if in_frontmatter: + # Convert keywords = "value" to keywords: value (or remove if not standard) + if re.match(r'^\s*keywords\s*=', line): + # Remove keywords field (not standard Docusaurus frontmatter) + continue + # Convert any remaining = to : + if '=' in line and not line.strip().startswith('#'): + # Check if it's a key = value pattern + match = re.match(r'^(\s*)(\w+)\s*=\s*(.+)$', line) + if match: + indent, key, value = match.groups() + # Remove quotes if present + value = value.strip().strip('"').strip("'") + fixed_lines.append(f"{indent}{key}: {value}") + else: + fixed_lines.append(line) + else: + fixed_lines.append(line) + else: + fixed_lines.append(line) + + return '\n'.join(fixed_lines) + +def fix_file(filepath): + """Fix a single file""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + fixed = fix_frontmatter(content) + + with open(filepath, 'w', encoding='utf-8') as f: + f.write(fixed) + + return True + except Exception as e: + print(f"Error fixing {filepath}: {e}") + return False + +def main(): + docs_dir = Path('docusaurus-docs/docs') + + fixed = 0 + for md_file in docs_dir.rglob('*.md'): + if fix_file(md_file): + fixed += 1 + + print(f"Fixed frontmatter syntax in {fixed} files") + +if __name__ == '__main__': + main() + diff --git a/fix_highlight.py b/fix_highlight.py new file mode 100644 index 00000000..a630072b --- /dev/null +++ b/fix_highlight.py @@ -0,0 +1,143 @@ +#!/usr/bin/env python3 +""" +Replace Hugo {{< highlight >}} shortcodes with Highlight component +""" + +import re +from pathlib import Path + +def convert_highlight(content): + """Convert Hugo highlight shortcodes to Highlight component""" + + # Pattern: {{< highlight language "params" >}}code{{< / highlight >}} + # Example: {{< highlight json "linenos=false,hl_lines=7 " >}}code{{< / highlight >}} + + def replace_highlight(match): + full_match = match.group(0) + language = match.group(1) if match.group(1) else 'text' + params = match.group(2) if match.group(2) else '' + code = match.group(3) + + # Parse parameters + linenos = 'false' + hl_lines = None + + # Extract linenos + linenos_match = re.search(r'linenos=([^,\s"]+)', params) + if linenos_match: + linenos = linenos_match.group(1) + + # Extract hl_lines + hl_lines_match = re.search(r'hl_lines=([^"\s]+)', params) + if hl_lines_match: + hl_lines = hl_lines_match.group(1).strip() + + # Build component props + props = [] + if language: + props.append(f'language="{language}"') + if linenos and linenos.lower() != 'false': + props.append(f'linenos="{linenos}"') + if hl_lines: + props.append(f'hl_lines="{hl_lines}"') + + props_str = ' '.join(props) if props else '' + + return f'\n\n```{language}\n{code.strip()}\n```\n\n' + + # Match {{< highlight lang "params" >}}code{{< / highlight >}} + content = re.sub( + r'\{\{<\s*highlight\s+(\w+)?\s*"([^"]*)"\s*>\}\}(.*?)\{\{<\s*/\s*highlight\s*>\}\}', + replace_highlight, + content, + flags=re.DOTALL + ) + + return content + +def fix_file(filepath): + """Fix a single file""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + original = content + + # Match {{< highlight lang "params" >}}code{{< / highlight >}} + def replace_highlight(match): + language = match.group(1) if match.group(1) else 'text' + params = match.group(2) if match.group(2) else '' + code = match.group(3).strip() + + # Parse parameters + linenos = 'false' + hl_lines = None + + # Extract linenos + linenos_match = re.search(r'linenos=([^,\s"]+)', params) + if linenos_match: + linenos = linenos_match.group(1) + + # Extract hl_lines + hl_lines_match = re.search(r'hl_lines=([^"\s]+)', params) + if hl_lines_match: + hl_lines = hl_lines_match.group(1).strip() + + # Build component props + props = [] + if language: + props.append(f'language="{language}"') + if linenos and linenos.lower() != 'false': + props.append(f'linenos="{linenos}"') + if hl_lines: + props.append(f'hl_lines="{hl_lines}"') + + props_str = ' '.join(props) if props else '' + + return f'\n\n```{language}\n{code}\n```\n\n' + + content = re.sub( + r'\{\{<\s*highlight\s+(\w+)?\s*"([^"]*)"\s*>\}\}(.*?)\{\{<\s*/\s*highlight\s*>\}\}', + replace_highlight, + content, + flags=re.DOTALL + ) + + if content != original: + # Add import at the top if not present + if 'import Highlight' not in content: + if content.startswith('---'): + # Has frontmatter + frontmatter_end = content.find('---', 3) + if frontmatter_end != -1: + imports = '\nimport Highlight from \'@site/src/components/Highlight\';\n\n' + content = content[:frontmatter_end + 3] + imports + content[frontmatter_end + 3:] + else: + # No frontmatter + imports = 'import Highlight from \'@site/src/components/Highlight\';\n\n' + content = imports + content + + with open(filepath, 'w', encoding='utf-8') as f: + f.write(content) + return True + return False + except Exception as e: + print(f"Error fixing {filepath}: {e}") + import traceback + traceback.print_exc() + return False + +def main(): + docs_dir = Path('docusaurus-docs/docs') + + fixed = 0 + for md_file in docs_dir.rglob('*.md'): + if fix_file(md_file): + fixed += 1 + print(f"Fixed: {md_file}") + + print(f"\nFixed highlight shortcodes in {fixed} files") + +if __name__ == '__main__': + main() + diff --git a/fix_load_img.py b/fix_load_img.py new file mode 100644 index 00000000..d561e073 --- /dev/null +++ b/fix_load_img.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +""" +Convert Hugo {{% load-img "path" "alt" %}} to Docusaurus image syntax +""" + +import re +from pathlib import Path + +def convert_load_img(content): + """Convert Hugo load-img shortcodes to Docusaurus images""" + + # Pattern: {{% load-img "path/to/image.png" "alt text" %}} + # Convert to: ![alt text](/path/to/image.png) + + def replace_load_img(match): + image_path = match.group(1) + alt_text = match.group(2) + + # Ensure path starts with / for absolute paths in Docusaurus + if not image_path.startswith('/'): + image_path = '/' + image_path + + return f'![{alt_text}]({image_path})' + + # Match {{% load-img "path" "alt" %}} + content = re.sub( + r'\{\{%\s*load-img\s+"([^"]+)"\s+"([^"]+)"\s*%\}\}', + replace_load_img, + content + ) + + return content + +def fix_file(filepath): + """Fix a single file""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + original = content + fixed = convert_load_img(content) + + if fixed != original: + with open(filepath, 'w', encoding='utf-8') as f: + f.write(fixed) + return True + return False + except Exception as e: + print(f"Error fixing {filepath}: {e}") + return False + +def main(): + docs_dir = Path('docusaurus-docs/docs') + + fixed = 0 + for md_file in docs_dir.rglob('*.md'): + if fix_file(md_file): + fixed += 1 + print(f"Fixed: {md_file}") + + print(f"\nFixed load-img in {fixed} files") + +if __name__ == '__main__': + main() + diff --git a/fix_mdx_issues.py b/fix_mdx_issues.py new file mode 100644 index 00000000..21e2e5c2 --- /dev/null +++ b/fix_mdx_issues.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python3 +""" +Fix MDX compilation issues - escape angle brackets and fix HTML tags +""" + +import re +from pathlib import Path + +def fix_mdx(content): + """Fix MDX issues""" + # Fix unclosed or malformed HTML tags - remove standalone opening tags without closing + # Remove tags (common issue) + content = re.sub(r']*>.*?', '', content, flags=re.DOTALL) + + # Escape angle brackets in code context but not in HTML tags + # This is a simplified approach - escape < > that are not part of HTML tags + # Pattern: should be escaped if not part of HTML tag + def escape_angles(match): + text = match.group(0) + # Don't escape if it looks like an HTML tag + if re.match(r']*>', text): + return text + # Escape angle brackets + return text.replace('<', '<').replace('>', '>') + + # Find and escape angle brackets in text (not in code blocks) + lines = content.split('\n') + fixed_lines = [] + in_code_block = False + + for line in lines: + # Check if we're entering/leaving a code block + if line.strip().startswith('```'): + in_code_block = not in_code_block + fixed_lines.append(line) + continue + + if not in_code_block: + # Escape angle brackets that aren't part of HTML tags + # Simple approach: if line contains and doesn't start with <, escape it + if '<' in line and '>' in line: + # Check if it's an HTML tag + if not re.match(r'^\s*<[a-zA-Z]', line): + # Escape angle brackets in angle-bracket pairs + line = re.sub(r'<([^<>]+)>', r'<\1>', line) + + fixed_lines.append(line) + + return '\n'.join(fixed_lines) + +def fix_file(filepath): + """Fix a single file""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + fixed = fix_mdx(content) + + if fixed != content: + with open(filepath, 'w', encoding='utf-8') as f: + f.write(fixed) + return True + return False + except Exception as e: + print(f"Error fixing {filepath}: {e}") + return False + +def main(): + # Fix specific files mentioned in errors + files_to_fix = [ + 'docusaurus-docs/docs/admin/enterprise-features/binary-backups.md', + 'docusaurus-docs/docs/admin/enterprise-features/multitenancy.md', + 'docusaurus-docs/docs/admin/observability/tracing.md', + 'docusaurus-docs/docs/design-concepts/badger-concept.md', + 'docusaurus-docs/docs/design-concepts/minimizing-network-calls.md', + 'docusaurus-docs/docs/design-concepts/relationships-concept.md', + 'docusaurus-docs/docs/dql/dql-mutation.md', + 'docusaurus-docs/docs/dql/dql-schema.md', + ] + + fixed = 0 + for filepath_str in files_to_fix: + filepath = Path(filepath_str) + if filepath.exists(): + if fix_file(filepath): + fixed += 1 + print(f"Fixed: {filepath}") + + print(f"\nFixed {fixed} files") + +if __name__ == '__main__': + main() + diff --git a/fix_relref.py b/fix_relref.py new file mode 100644 index 00000000..8525aca5 --- /dev/null +++ b/fix_relref.py @@ -0,0 +1,156 @@ +#!/usr/bin/env python3 +""" +Replace Hugo {{< relref identifier="something">}} with Docusaurus document references +Also fix double-nested links from previous conversion +""" + +import re +from pathlib import Path + +def find_document_id(identifier, current_file): + """Find the document ID for a given identifier""" + docs_dir = Path('docusaurus-docs/docs') + current_path = Path(current_file) + + # Common identifier mappings - map to full paths + identifier_map = { + 'learning-environment': '/learn/', + 'security': '/dgraph-overview/admin/security/', + 'admin': '/dgraph-overview/admin/', + 'monitoring': '/dgraph-overview/admin/observability/monitoring', + 'production-checklist': '/dgraph-overview/installation/production-checklist', + 'dgraph-architecture': '/dgraph-overview/installation/dgraph-architecture', + 'dql': '/dgraph-overview/dql/', + 'graphql': '/graphql/', + 'ratel': '/ratel/', + 'ports-usage': '/dgraph-overview/admin/security/ports-usage', + 'dgraph-zero': '/dgraph-overview/admin/dgraph-zero', + 'binary-backups': '/dgraph-overview/admin/enterprise-features/binary-backups', + 'dgraph-administration': '/dgraph-overview/admin/dgraph-administration', + 'single-host-setup': '/dgraph-overview/installation/single-host-setup', + 'encryption-at-rest': '/dgraph-overview/admin/enterprise-features/encryption-at-rest', + 'multitenancy': '/dgraph-overview/admin/enterprise-features/multitenancy', + 'data-compression': '/dgraph-overview/admin/data-compression', + 'download': '/dgraph-overview/installation/download', + 'cli/config': '/dgraph-overview/cli/config', + 'cli/superflags': '/dgraph-overview/cli/superflags', + 'cli/live': '/dgraph-overview/cli/live', + 'dql-rdf': '/dgraph-overview/dql/dql-rdf', + 'graphql-dql': '/graphql-dql/', + 'dgraph-architecture': '/dgraph-overview/installation/dgraph-architecture', + } + + # Check mappings first + if identifier in identifier_map: + return identifier_map[identifier] + + # Try to find the file and return relative path + possible_paths = [ + docs_dir / identifier / 'index.md', + docs_dir / f'{identifier}.md', + current_path.parent / f'{identifier}.md', + ] + + # Search in subdirectories + for subdir in docs_dir.rglob('*'): + if subdir.is_dir(): + possible_paths.extend([ + subdir / f'{identifier}.md', + subdir / identifier / 'index.md', + ]) + + # Check if file exists and calculate relative path + for path in possible_paths: + if path.exists() and path.is_file(): + try: + rel_path = path.relative_to(docs_dir) + # Convert to document ID (remove .md, convert index to parent) + doc_id = str(rel_path).replace('.md', '') + if doc_id.endswith('/index'): + doc_id = doc_id[:-6] # Remove /index + if not doc_id: + doc_id = identifier + # Return as full path with /dgraph-overview/ prefix + return f'/dgraph-overview/{doc_id}' + except: + pass + + # Fallback: use identifier as-is (might be a relative path) + return f'/dgraph-overview/{identifier}' + +def convert_relref(content, file_path): + """Convert Hugo relref shortcodes to Docusaurus document references""" + + # First, fix double-nested links: [text]([identifier](identifier)) -> [text](identifier) + # Pattern: [text]([identifier](path)) + def fix_double_nested(match): + text = match.group(1) + identifier = match.group(2) + path = match.group(3) + # Use the path if it looks valid, otherwise use identifier + if path and path != identifier: + return f'[{text}]({path})' + doc_id = find_document_id(identifier, file_path) + return f'[{text}]({doc_id})' + + content = re.sub(r'\[([^\]]+)\]\(\[([^\]]+)\]\(([^)]+)\)\)', fix_double_nested, content) + + # Pattern to match relref in link context: [text]({{< relref identifier="something">}}) + # This pattern matches: [text]({{< relref identifier="id">}}) + def replace_relref_in_link(match): + text = match.group(1) + identifier = match.group(2) + doc_id = find_document_id(identifier, file_path) + return f'[{text}]({doc_id})' + + # Match [text]({{< relref identifier="something">}}) + content = re.sub(r'\[([^\]]+)\]\(\{\{<\s*relref\s+identifier\s*=\s*"([^"]+)"\s*>\}\}\)', replace_relref_in_link, content) + content = re.sub(r'\[([^\]]+)\]\(\{\{<\s*relref\s+identifer\s*=\s*"([^"]+)"\s*>\}\}\)', replace_relref_in_link, content) # typo + content = re.sub(r'\[([^\]]+)\]\(\{\{<\s*relref\s+"([^"]+)"\s*>\}\}\)', replace_relref_in_link, content) + + # Pattern to match standalone relref: {{< relref identifier="something">}} + def replace_standalone_relref(match): + identifier = match.group(1) + doc_id = find_document_id(identifier, file_path) + return f'[{identifier}]({doc_id})' + + # Match standalone {{< relref identifier="something">}} + content = re.sub(r'\{\{<\s*relref\s+identifier\s*=\s*"([^"]+)"\s*>\}\}', replace_standalone_relref, content) + content = re.sub(r'\{\{<\s*relref\s+identifer\s*=\s*"([^"]+)"\s*>\}\}', replace_standalone_relref, content) # typo + content = re.sub(r'\{\{<\s*relref\s+"([^"]+)"\s*>\}\}', replace_standalone_relref, content) + + return content + +def fix_file(filepath): + """Fix a single file""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + original = content + fixed = convert_relref(content, filepath) + + if fixed != original: + with open(filepath, 'w', encoding='utf-8') as f: + f.write(fixed) + return True + return False + except Exception as e: + print(f"Error fixing {filepath}: {e}") + import traceback + traceback.print_exc() + return False + +def main(): + docs_dir = Path('docusaurus-docs/docs') + + fixed = 0 + for md_file in docs_dir.rglob('*.md'): + if fix_file(md_file): + fixed += 1 + print(f"Fixed: {md_file}") + + print(f"\nFixed relref in {fixed} files") + +if __name__ == '__main__': + main() diff --git a/fix_runnable_blocks.py b/fix_runnable_blocks.py new file mode 100644 index 00000000..42e956cf --- /dev/null +++ b/fix_runnable_blocks.py @@ -0,0 +1,160 @@ +#!/usr/bin/env python3 +""" +Replace comments with RunnableCodeBlock component +""" + +import re +from pathlib import Path + +def convert_runnable_blocks(content): + """Convert runnable code block comments to RunnableCodeBlock component""" + + # Pattern to match: + # + # {code} + # + + # Or just: + # + # {code} + # (without end comment) + + # First, handle blocks with end comments + def replace_with_end_comment(match): + code = match.group(1) + # Remove leading/trailing newlines but preserve indentation + code = code.strip() + return f'\n\n```dql\n{code}\n```\n\n' + + # Match ... code ... + content = re.sub( + r'\s*\n(.*?)\n', + replace_with_end_comment, + content, + flags=re.DOTALL + ) + + # Now handle blocks without end comments + # This is trickier - we need to find the code block that follows + # Pattern: followed by a code block (```...```) + def replace_without_end_comment(match): + code = match.group(1) + code = code.strip() + return f'\n\n```dql\n{code}\n```\n\n' + + # Match followed by code block + # This pattern looks for the comment, then captures everything until the next ``` or blank line + ``` + content = re.sub( + r'\s*\n```(?:dql|dgraph|graphql)?\s*\n(.*?)\n```', + replace_without_end_comment, + content, + flags=re.DOTALL + ) + + # Handle case where code is not in a code block (just plain text after comment) + # Match followed by code (not in ```) + def replace_plain_code(match): + code = match.group(1) + # Remove the code block markers if they exist + code = re.sub(r'^```.*?\n', '', code, flags=re.MULTILINE) + code = re.sub(r'\n```$', '', code, flags=re.MULTILINE) + code = code.strip() + return f'\n\n```dql\n{code}\n```\n\n' + + # Match followed by code until or next heading or blank line + content = re.sub( + r'\s*\n((?:[^{]|{(?!{))*(?:\{[^{]|\{[^{]*\}[^}])*[^}]*?)(?=\n\n|\n#|\n\s*\n(.*?)\n', + replace_block_with_end, + content, + flags=re.DOTALL + ) + + # Then handle blocks where code follows directly (no code block markers) + # Find comment, then capture code until next blank line or heading + def replace_block_direct(match): + full_match = match.group(0) + code_start = full_match.find('-->') + 3 + code_section = full_match[code_start:].strip() + + # Remove code block markers if present + if code_section.startswith('```'): + # Extract code from ```dql ... ``` + code_match = re.search(r'```(?:dql|dgraph|graphql)?\s*\n(.*?)\n```', code_section, re.DOTALL) + if code_match: + code = code_match.group(1).strip() + else: + code = code_section.strip() + else: + code = code_section.strip() + + return f'\n\n```dql\n{code}\n```\n\n' + + # Match from comment to next blank line (double newline) or heading + content = re.sub( + r'\s*\n(.*?)(?=\n\n|\n#|\Z)', + replace_block_direct, + content, + flags=re.DOTALL + ) + + if content != original: + # Add import at the top if not present + if 'import RunnableCodeBlock' not in content: + if content.startswith('---'): + # Has frontmatter + frontmatter_end = content.find('---', 3) + if frontmatter_end != -1: + imports = '\nimport RunnableCodeBlock from \'@site/src/components/RunnableCodeBlock\';\n\n' + content = content[:frontmatter_end + 3] + imports + content[frontmatter_end + 3:] + else: + # No frontmatter + imports = 'import RunnableCodeBlock from \'@site/src/components/RunnableCodeBlock\';\n\n' + content = imports + content + + with open(filepath, 'w', encoding='utf-8') as f: + f.write(content) + return True + return False + except Exception as e: + print(f"Error fixing {filepath}: {e}") + import traceback + traceback.print_exc() + return False + +def main(): + docs_dir = Path('docusaurus-docs/docs') + + fixed = 0 + for md_file in docs_dir.rglob('*.md'): + if fix_file(md_file): + fixed += 1 + print(f"Fixed: {md_file}") + + print(f"\nFixed runnable blocks in {fixed} files") + +if __name__ == '__main__': + main() + diff --git a/fix_tabs.py b/fix_tabs.py new file mode 100644 index 00000000..10e00316 --- /dev/null +++ b/fix_tabs.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python3 +""" +Convert Hugo tabs to Docusaurus tabs +""" + +import re +from pathlib import Path + +def convert_tabs(content): + """Convert Hugo tabs to Docusaurus tabs""" + + # Check if file needs tab imports + needs_import = '{{% tabs %}}' in content or '{{< tab ' in content + + # Convert Hugo tabs to Docusaurus tabs + # Pattern: {{% tabs %}} ... {{% /tabs %}} + # Or: {{% tabs %}} {{< tab "Name" >}} ... {{< /tab >}} {{% /tabs %}} + + # Step 1: Replace {{% tabs %}} with + content = re.sub(r'\{\{%\s*tabs\s*%\}\}', '', content) + content = re.sub(r'\{\{%\s*/tabs\s*%\}\}', '', content) + + # Step 2: Replace {{< tab "Name" >}} with + def replace_tab_open(match): + tab_name = match.group(1) + # Convert to lowercase for value, keep original for label + value = tab_name.lower().replace(' ', '-') + return f'' + + content = re.sub(r'\{\{<\s*tab\s+"([^"]+)"\s*>\}\}', replace_tab_open, content) + content = re.sub(r'\{\{%\s*tab\s+"([^"]+)"\s*%\}\}', replace_tab_open, content) + + # Step 3: Replace {{< /tab >}} or {{% /tab %}} with + content = re.sub(r'\{\{<\s*/tab\s*>\}\}', '', content) + content = re.sub(r'\{\{%\s*/tab\s*%\}\}', '', content) + + # Step 4: Fix escaped angle brackets + content = re.sub(r'<', '<', content) + content = re.sub(r'>', '>', content) + + # Step 5: Add imports at the top if needed + if needs_import and 'import Tabs' not in content: + # Check if file has frontmatter + if content.startswith('---'): + # Find end of frontmatter + frontmatter_end = content.find('---', 3) + if frontmatter_end != -1: + # Insert imports after frontmatter + imports = '\nimport Tabs from \'@theme/Tabs\';\nimport TabItem from \'@theme/TabItem\';\n\n' + content = content[:frontmatter_end + 3] + imports + content[frontmatter_end + 3:] + else: + # No frontmatter, add imports at the beginning + imports = 'import Tabs from \'@theme/Tabs\';\nimport TabItem from \'@theme/TabItem\';\n\n' + content = imports + content + + return content + +def fix_file(filepath): + """Fix a single file""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + original = content + fixed = convert_tabs(content) + + if fixed != original: + with open(filepath, 'w', encoding='utf-8') as f: + f.write(fixed) + return True + return False + except Exception as e: + print(f"Error fixing {filepath}: {e}") + import traceback + traceback.print_exc() + return False + +def main(): + docs_dir = Path('docusaurus-docs/docs') + + fixed = 0 + for md_file in docs_dir.rglob('*.md'): + if fix_file(md_file): + fixed += 1 + print(f"Fixed: {md_file}") + + print(f"\nFixed tabs in {fixed} files") + +if __name__ == '__main__': + main() + diff --git a/fix_tabs_formatting.py b/fix_tabs_formatting.py new file mode 100644 index 00000000..a1b16754 --- /dev/null +++ b/fix_tabs_formatting.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 +""" +Fix tab formatting - ensure proper line breaks +""" + +import re +from pathlib import Path + +def fix_tabs_formatting(content): + """Fix tab formatting""" + # Fix separate lines + content = re.sub(r' \n separate lines + content = re.sub(r'\n on same line -> separate lines + content = re.sub(r'', '\n', content) + + return content + +def fix_file(filepath): + """Fix a single file""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + original = content + fixed = fix_tabs_formatting(content) + + if fixed != original: + with open(filepath, 'w', encoding='utf-8') as f: + f.write(fixed) + return True + return False + except Exception as e: + print(f"Error fixing {filepath}: {e}") + return False + +def main(): + docs_dir = Path('docusaurus-docs/docs') + + fixed = 0 + for md_file in docs_dir.rglob('*.md'): + if fix_file(md_file): + fixed += 1 + print(f"Fixed: {md_file}") + + print(f"\nFixed tab formatting in {fixed} files") + +if __name__ == '__main__': + main() + diff --git a/fix_yaml_quotes.py b/fix_yaml_quotes.py new file mode 100644 index 00000000..027b7149 --- /dev/null +++ b/fix_yaml_quotes.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +""" +Fix YAML frontmatter - quote values that contain colons or special characters +""" + +import re +from pathlib import Path + +def fix_frontmatter(content): + """Fix frontmatter - quote values with colons""" + lines = content.split('\n') + fixed_lines = [] + in_frontmatter = False + + for i, line in enumerate(lines): + if line.strip() == '---': + if not in_frontmatter: + in_frontmatter = True + fixed_lines.append(line) + continue + else: + in_frontmatter = False + fixed_lines.append(line) + continue + + if in_frontmatter: + # Match title: value or description: value + match = re.match(r'^(\s*)(title|description):\s*(.+)$', line) + if match: + indent, key, value = match.groups() + value = value.strip() + # If value contains colon and isn't already quoted, quote it + if ':' in value and not (value.startswith('"') or value.startswith("'")): + value = f'"{value}"' + fixed_lines.append(f"{indent}{key}: {value}") + else: + fixed_lines.append(line) + else: + fixed_lines.append(line) + + return '\n'.join(fixed_lines) + +def fix_file(filepath): + """Fix a single file""" + try: + with open(filepath, 'r', encoding='utf-8') as f: + content = f.read() + + fixed = fix_frontmatter(content) + + if fixed != content: + with open(filepath, 'w', encoding='utf-8') as f: + f.write(fixed) + return True + return False + except Exception as e: + print(f"Error fixing {filepath}: {e}") + return False + +def main(): + docs_dir = Path('docusaurus-docs/docs') + + fixed = 0 + for md_file in docs_dir.rglob('*.md'): + if fix_file(md_file): + fixed += 1 + print(f"Fixed: {md_file}") + + print(f"\nFixed YAML quotes in {fixed} files") + +if __name__ == '__main__': + main() + diff --git a/migrate_docs.py b/migrate_docs.py new file mode 100644 index 00000000..9e5bb381 --- /dev/null +++ b/migrate_docs.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python3 +""" +Script to migrate Hugo docs pages (type="docs") to Docusaurus format. +Converts frontmatter and shortcodes. +""" + +import os +import re +import sys +from pathlib import Path + +def convert_frontmatter(content): + """Convert Hugo frontmatter (+++) to Docusaurus frontmatter (---)""" + # Replace +++ with --- + content = re.sub(r'^\+\+\+', '---', content, flags=re.MULTILINE) + content = re.sub(r'^\+\+\+', '---', content, flags=re.MULTILINE) + + # Remove Hugo-specific menu entries + content = re.sub(r'\[menu\.\w+\].*?\n', '', content, flags=re.DOTALL) + + # Remove weight and type fields (not needed in Docusaurus) + content = re.sub(r'^\s*type\s*=\s*"[^"]*"\s*$', '', content, flags=re.MULTILINE) + content = re.sub(r'^\s*weight\s*=\s*\d+\s*$', '', content, flags=re.MULTILINE) + content = re.sub(r'^\s*date\s*=\s*"[^"]*"\s*$', '', content, flags=re.MULTILINE) + content = re.sub(r'^\s*aliases\s*=\s*\[[^\]]*\]\s*$', '', content, flags=re.MULTILINE) + + # Clean up extra blank lines in frontmatter + content = re.sub(r'---\n\n+---', '---\n---', content) + + return content + +def convert_shortcodes(content): + """Convert Hugo shortcodes to Docusaurus equivalents""" + # Convert {{% notice "note" %}} to :::note + content = re.sub(r'\{\{%\s*notice\s+"note"\s*%\}\}', ':::note', content) + content = re.sub(r'\{\{%\s*/\s*notice\s*%\}\}', ':::', content) + + # Convert {{% notice "tip" %}} to :::tip + content = re.sub(r'\{\{%\s*notice\s+"tip"\s*%\}\}', ':::tip', content) + + # Convert {{% notice "warning" %}} to :::warning + content = re.sub(r'\{\{%\s*notice\s+"warning"\s*%\}\}', ':::warning', content) + + # Convert {{% notice "danger" %}} to :::danger + content = re.sub(r'\{\{%\s*notice\s+"danger"\s*%\}\}', ':::danger', content) + + # Convert {{< relref >}} to relative links (simplified - will need manual review) + # Pattern: {{< relref "path" >}} or {{< relref "path.md" >}} + def replace_relref(match): + path = match.group(1).strip('"\'') + # Remove .md extension if present + path = path.replace('.md', '') + # Convert to relative path + return f'[{path}]({path})' + + content = re.sub(r'\{\{<\s*relref\s+"([^"]+)"\s*>\}\}', replace_relref, content) + + return content + +def migrate_file(hugo_path, docusaurus_dir): + """Migrate a single file from Hugo to Docusaurus format""" + try: + with open(hugo_path, 'r', encoding='utf-8') as f: + content = f.read() + except Exception as e: + print(f"Error reading {hugo_path}: {e}") + return False + + # Convert content + content = convert_frontmatter(content) + content = convert_shortcodes(content) + + # Determine output path + rel_path = hugo_path.relative_to(Path('content')) + if rel_path.name == '_index.md': + output_path = docusaurus_dir / rel_path.parent / 'index.md' + else: + output_path = docusaurus_dir / rel_path + + # Create directory if needed + output_path.parent.mkdir(parents=True, exist_ok=True) + + # Write file + try: + with open(output_path, 'w', encoding='utf-8') as f: + f.write(content) + print(f"Migrated: {rel_path}") + return True + except Exception as e: + print(f"Error writing {output_path}: {e}") + return False + +def main(): + content_dir = Path('content') + docusaurus_dir = Path('docusaurus-docs/docs') + + # Find all files with type="docs" + migrated = 0 + skipped = 0 + + for hugo_file in content_dir.rglob('*.md'): + try: + with open(hugo_file, 'r', encoding='utf-8') as f: + content = f.read() + if 'type = "docs"' in content: + if migrate_file(hugo_file, docusaurus_dir): + migrated += 1 + else: + skipped += 1 + except Exception as e: + print(f"Error processing {hugo_file}: {e}") + skipped += 1 + + print(f"\nMigration complete!") + print(f"Migrated: {migrated} files") + print(f"Skipped: {skipped} files") + +if __name__ == '__main__': + main() + From dae7d1b6cc41da498d43a13d002404a303dd5cbd Mon Sep 17 00:00:00 2001 From: raphael-istari Date: Thu, 6 Nov 2025 13:56:03 -0800 Subject: [PATCH 04/12] styling docusaurus --- docusaurus-docs/docusaurus.config.ts | 44 +------- docusaurus-docs/sidebars.ts | 105 +++++++----------- docusaurus-docs/src/css/custom.css | 84 ++++++++++---- docusaurus-docs/static/img/favicon-16x16.png | Bin 0 -> 3274 bytes .../static/img/favicon-194x194.png | Bin 0 -> 10105 bytes docusaurus-docs/static/img/favicon-32x32.png | Bin 0 -> 3960 bytes docusaurus-docs/static/img/favicon-96x96.png | Bin 0 -> 6495 bytes 7 files changed, 109 insertions(+), 124 deletions(-) create mode 100644 docusaurus-docs/static/img/favicon-16x16.png create mode 100644 docusaurus-docs/static/img/favicon-194x194.png create mode 100644 docusaurus-docs/static/img/favicon-32x32.png create mode 100644 docusaurus-docs/static/img/favicon-96x96.png diff --git a/docusaurus-docs/docusaurus.config.ts b/docusaurus-docs/docusaurus.config.ts index 26cdfb3d..7cf4262b 100644 --- a/docusaurus-docs/docusaurus.config.ts +++ b/docusaurus-docs/docusaurus.config.ts @@ -7,7 +7,7 @@ import type * as Preset from '@docusaurus/preset-classic'; const config: Config = { title: 'Dgraph Documentation', tagline: 'The only open, complete graph database used at terabyte-scale to power real-time use cases', - favicon: 'img/favicon.ico', + favicon: 'img/favicon-16x16.png', // Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future future: { @@ -147,46 +147,8 @@ const config: Config = { footer: { style: 'dark', links: [ - { - title: 'Documentation', - items: [ - { - label: 'Overview', - to: '/dgraph-overview/overview', - }, - { - label: 'Ratel UI', - to: '/ratel/', - }, - { - label: 'Tutorials', - to: '/learn/', - }, - { - label: 'GraphQL', - to: '/graphql/', - }, - { - label: 'DQL', - to: '/dql/', - }, - ], - }, - { - title: 'Community', - items: [ - { - label: 'Discourse', - href: 'https://discuss.dgraph.io/', - }, - { - label: 'GitHub', - href: 'https://github.com/dgraph-io/dgraph', - }, - ], - }, - ], - copyright: `Copyright © ${new Date().getFullYear()} Dgraph Labs, Inc. Built with Docusaurus.`, + + ] }, prism: { theme: prismThemes.github, diff --git a/docusaurus-docs/sidebars.ts b/docusaurus-docs/sidebars.ts index 3763421e..d5f96257 100644 --- a/docusaurus-docs/sidebars.ts +++ b/docusaurus-docs/sidebars.ts @@ -4,10 +4,9 @@ const sidebars: SidebarsConfig = { docsSidebar: [ 'overview', 'quick-start', - 'dgraph-glossary', { type: 'category', - label: 'DQL', + label: 'Query Language', items: [ 'dql/index', 'dql/dql-schema', @@ -56,6 +55,42 @@ const sidebars: SidebarsConfig = { 'dql/tips/index', ], }, + { + type: 'category', + label: 'Clients', + items: [ + 'clients/index', + 'clients/go', + 'clients/python', + 'clients/java', + 'clients/csharp', + 'clients/raw-http', + 'clients/unofficial-clients', + { + type: 'category', + label: 'JavaScript', + items: [ + 'clients/javascript/index', + 'clients/javascript/grpc', + 'clients/javascript/http', + ], + }, + ], + }, + { + type: 'category', + label: 'Installation', + items: [ + 'installation/index', + 'installation/download', + 'installation/dgraph-architecture', + 'installation/deployment-patterns', + 'installation/single-host-setup', + 'installation/ha-cluster', + 'installation/lambda-server', + 'installation/production-checklist', + ], + }, { type: 'category', label: 'Administration', @@ -105,70 +140,11 @@ const sidebars: SidebarsConfig = { }, ], }, + + { type: 'category', - label: 'CLI', - items: [ - 'cli/index', - 'cli/alpha', - 'cli/zero', - 'cli/bulk', - 'cli/live', - 'cli/restore', - 'cli/acl', - 'cli/audit', - 'cli/cert', - 'cli/completion', - 'cli/config', - 'cli/conv', - 'cli/debuginfo', - 'cli/decrypt', - 'cli/export_backup', - 'cli/increment', - 'cli/migrate', - 'cli/superflags', - 'cli/upgrade', - ], - }, - { - type: 'category', - label: 'Clients', - items: [ - 'clients/index', - 'clients/go', - 'clients/python', - 'clients/java', - 'clients/csharp', - 'clients/raw-http', - 'clients/unofficial-clients', - { - type: 'category', - label: 'JavaScript', - items: [ - 'clients/javascript/index', - 'clients/javascript/grpc', - 'clients/javascript/http', - ], - }, - ], - }, - { - type: 'category', - label: 'Installation', - items: [ - 'installation/index', - 'installation/download', - 'installation/dgraph-architecture', - 'installation/deployment-patterns', - 'installation/single-host-setup', - 'installation/ha-cluster', - 'installation/lambda-server', - 'installation/production-checklist', - ], - }, - { - type: 'category', - label: 'Migration', + label: 'Data Migration', items: [ 'migration/index', 'migration/bulk-loader', @@ -239,6 +215,7 @@ const sidebars: SidebarsConfig = { }, ], }, + 'dgraph-glossary', 'releases/index', ], }; diff --git a/docusaurus-docs/src/css/custom.css b/docusaurus-docs/src/css/custom.css index 2bc6a4cf..9ec9e5f4 100644 --- a/docusaurus-docs/src/css/custom.css +++ b/docusaurus-docs/src/css/custom.css @@ -1,30 +1,76 @@ /** - * Any CSS included here will be global. The classic template - * bundles Infima by default. Infima is a CSS framework designed to - * work well for content-centric websites. + * Custom CSS for Dgraph Documentation + * Styling based on istari-documentation with Dgraph red/pink colors */ -/* You can override the default Infima variables here. */ +/* Dgraph brand colors from Hugo theme */ :root { - --ifm-color-primary: #2e8555; - --ifm-color-primary-dark: #29784c; - --ifm-color-primary-darker: #277148; - --ifm-color-primary-darkest: #205d3b; - --ifm-color-primary-light: #33925d; - --ifm-color-primary-lighter: #359962; - --ifm-color-primary-lightest: #3cad6e; + /* Primary Dgraph red/pink */ + --ifm-color-primary: #ef265a; + --ifm-color-primary-dark: #d91e4f; + --ifm-color-primary-darker: #cc1c4a; + --ifm-color-primary-darkest: #a8173d; + --ifm-color-primary-light: #f23d6b; + --ifm-color-primary-lighter: #f44a75; + --ifm-color-primary-lightest: #f96d8f; + + /* Dark background */ + --dgraph-dark: #100c19; + --ifm-code-font-size: 95%; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); } -/* For readability concerns, you should choose a lighter palette in dark mode. */ +/* Dark mode - Dgraph colors */ [data-theme='dark'] { - --ifm-color-primary: #25c2a0; - --ifm-color-primary-dark: #21af90; - --ifm-color-primary-darker: #1fa588; - --ifm-color-primary-darkest: #1a8870; - --ifm-color-primary-light: #29d5b0; - --ifm-color-primary-lighter: #32d8b4; - --ifm-color-primary-lightest: #4fddbf; + --ifm-color-primary: #ef265a; + --ifm-color-primary-dark: #d91e4f; + --ifm-color-primary-darker: #cc1c4a; + --ifm-color-primary-darkest: #a8173d; + --ifm-color-primary-light: #f23d6b; + --ifm-color-primary-lighter: #f44a75; + --ifm-color-primary-lightest: #f96d8f; + + --ifm-background-color: var(--dgraph-dark); + --ifm-background-surface-color: #1a1a1a; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); } + +/* Typography - istari-documentation style (smaller fonts) */ +.markdown h1 { + font-size: 2rem; +} + +#footnote-label { + font-size: 1rem; +} + +.footnotes { + font-size: 0.8rem; +} + +/* Sidebar - istari-documentation style */ +.menu__link { + color: var(--ifm-color-primary-darkest); + font-size: 0.8rem; + font-weight: normal; +} + +a.menu__link:not([href]) { + text-transform: uppercase; + font-size: 0.7rem; + color: var(--ifm-color-primary-light); +} + +a[href].menu__link--active { + color: var(--ifm-color-primary); + font-weight: 600; +} + +.menu__link--active:not(.menu__link--sublist) { + background-color: transparent; +} + +.menu__link--active:not(.menu__link--sublist):hover { + background-color: transparent; +} diff --git a/docusaurus-docs/static/img/favicon-16x16.png b/docusaurus-docs/static/img/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..b700900029c5389a9ccbe02abf4e7e522f6eb5a1 GIT binary patch literal 3274 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 IM6N<$f~xlhZU6uP literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/img/favicon-194x194.png b/docusaurus-docs/static/img/favicon-194x194.png new file mode 100644 index 0000000000000000000000000000000000000000..5bc06f92e1e934c7f6106bfb5995c97d76e30746 GIT binary patch literal 10105 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 bsQv!{LAhUYL;tY&00000NkvXXu0mjfQuS*; literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/img/favicon-32x32.png b/docusaurus-docs/static/img/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..870b9bce47f763e59f5a3a623fe3c1ac7c1f326e GIT binary patch literal 3960 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 FV1l+dq<8=T literal 0 HcmV?d00001 From c36a2397f69ad9f49946ac01035990a68bcf0013 Mon Sep 17 00:00:00 2001 From: raphael-istari Date: Thu, 6 Nov 2025 14:21:31 -0800 Subject: [PATCH 05/12] add GraphQL --- .../docs-graphql/admin/admin-api.md | 814 ++++++++++++++++++ docusaurus-docs/docs-graphql/admin/index.md | 184 ++++ .../docs-graphql/custom/custom-dql.md | 113 +++ .../docs-graphql/custom/custom-overview.md | 54 ++ .../docs-graphql/custom/directive.md | 432 ++++++++++ docusaurus-docs/docs-graphql/custom/field.md | 81 ++ docusaurus-docs/docs-graphql/custom/index.md | 4 + .../docs-graphql/custom/mutation.md | 49 ++ docusaurus-docs/docs-graphql/custom/query.md | 68 ++ .../docs-graphql/federation/index.md | 167 ++++ .../endpoint/graphql-get-request.md | 25 + .../endpoint/graphql-request.md | 374 ++++++++ .../endpoint/graphql-response.md | 182 ++++ .../graphql-clients/endpoint/index.md | 48 ++ .../graphql-clients/graphql-ide.md | 21 + .../graphql-clients/graphql-ui.md | 18 + .../docs-graphql/graphql-clients/index.md | 6 + .../graphql-dql/dql-for-graphql.md | 18 + .../graphql-dql/graphql-data-loading.md | 17 + .../graphql-dql/graphql-data-migration.md | 51 ++ .../graphql-dql/graphql-dgraph.md | 42 + .../graphql-dql/graphql-dql-schema.md | 164 ++++ .../docs-graphql/graphql-dql/index.md | 15 + docusaurus-docs/docs-graphql/index.md | 18 +- docusaurus-docs/docs-graphql/lambda/field.md | 202 +++++ docusaurus-docs/docs-graphql/lambda/index.md | 4 + .../docs-graphql/lambda/lambda-overview.md | 300 +++++++ .../docs-graphql/lambda/mutation.md | 99 +++ docusaurus-docs/docs-graphql/lambda/query.md | 88 ++ .../docs-graphql/lambda/webhook.md | 101 +++ docusaurus-docs/docs-graphql/mutations/add.md | 84 ++ .../docs-graphql/mutations/deep.md | 98 +++ .../docs-graphql/mutations/delete.md | 60 ++ .../docs-graphql/mutations/index.md | 4 + .../mutations/mutations-overview.md | 251 ++++++ .../docs-graphql/mutations/update.md | 107 +++ .../docs-graphql/mutations/upsert.md | 106 +++ .../docs-graphql/queries/aggregate.md | 209 +++++ .../docs-graphql/queries/and-or-not.md | 92 ++ .../docs-graphql/queries/cached-results.md | 41 + .../docs-graphql/queries/cascade.md | 136 +++ docusaurus-docs/docs-graphql/queries/index.md | 4 + .../docs-graphql/queries/order-page.md | 30 + .../queries/persistent-queries.md | 68 ++ .../docs-graphql/queries/queries-overview.md | 50 ++ .../docs-graphql/queries/search-filtering.md | 329 +++++++ .../docs-graphql/queries/skip-include.md | 61 ++ .../docs-graphql/queries/vector-similarity.md | 61 ++ .../docs-graphql/quick-start/index.md | 253 ++++++ .../docs-graphql/schema/dgraph-schema.md | 269 ++++++ .../docs-graphql/schema/directives/auth.md | 12 + .../schema/directives/deprecated.md | 22 + .../schema/directives/directive-dgraph.md | 58 ++ .../directives/directive-withsubscription.md | 24 + .../schema/directives/embedding.md | 11 + .../schema/directives/generate.md | 56 ++ .../docs-graphql/schema/directives/ids.md | 115 +++ .../docs-graphql/schema/directives/index.md | 116 +++ .../docs-graphql/schema/directives/search.md | 643 ++++++++++++++ .../docs-graphql/schema/documentation.md | 60 ++ .../docs-graphql/schema/graph-links.md | 110 +++ docusaurus-docs/docs-graphql/schema/index.md | 12 + .../docs-graphql/schema/migration.md | 215 +++++ .../docs-graphql/schema/reserved.md | 53 ++ docusaurus-docs/docs-graphql/schema/types.md | 464 ++++++++++ .../docs-graphql/security/RBAC-rules.md | 121 +++ .../docs-graphql/security/auth-tips.md | 79 ++ docusaurus-docs/docs-graphql/security/cors.md | 24 + .../security/graphtraversal-rules.md | 140 +++ .../docs-graphql/security/index.md | 81 ++ docusaurus-docs/docs-graphql/security/jwt.md | 158 ++++ .../docs-graphql/security/mutations.md | 117 +++ .../docs-graphql/subscriptions/index.md | 185 ++++ docusaurus-docs/sidebars-graphql.ts | 145 +++- docusaurus-docs/sidebars.ts | 25 + docusaurus-docs/src/css/custom.css | 10 +- .../static/images/graphql/Auth-Action.gif | Bin 0 -> 1002077 bytes .../graphql/CustomDirectiveDocumentation.png | Bin 0 -> 18678 bytes .../static/images/graphql/Generating-JWT.png | Bin 0 -> 44895 bytes .../static/images/graphql/RBAC.jpeg | Bin 0 -> 221903 bytes .../images/graphql/Subscription-Timeout.gif | Bin 0 -> 1255122 bytes .../static/images/graphql/authors1.png | Bin 0 -> 39494 bytes .../images/graphql/subscription_example.gif | Bin 0 -> 4955576 bytes .../images/graphql/subscription_flow.png | Bin 0 -> 35787 bytes .../graphql/tutorial/todo/certificate.png | Bin 0 -> 87023 bytes .../images/graphql/tutorial/todo/cloud-1.png | Bin 0 -> 32474 bytes .../images/graphql/tutorial/todo/cloud-2.png | Bin 0 -> 50911 bytes .../images/graphql/tutorial/todo/cloud-3.png | Bin 0 -> 36164 bytes .../graphql/tutorial/todo/dashboard.png | Bin 0 -> 77838 bytes .../graphql/tutorial/todo/firebase-cli.png | Bin 0 -> 130434 bytes .../graphql/tutorial/todo/firebase-config.png | Bin 0 -> 87977 bytes .../tutorial/todo/firebase-create-project.png | Bin 0 -> 122298 bytes .../tutorial/todo/firebase-create-webapp.png | Bin 0 -> 83578 bytes .../tutorial/todo/firebase-dashboard.png | Bin 0 -> 153066 bytes .../tutorial/todo/firebase-domains.png | Bin 0 -> 66179 bytes .../graphql/tutorial/todo/firebase-todo.png | Bin 0 -> 25361 bytes .../graphql/tutorial/todo/firebase-webapp.png | Bin 0 -> 22564 bytes .../images/graphql/tutorial/todo/jwt.png | Bin 0 -> 162222 bytes .../images/graphql/tutorial/todo/rule.png | Bin 0 -> 96629 bytes .../graphql/tutorial/todo/slash-graphql-4.png | Bin 0 -> 19524 bytes .../graphql/tutorial/todo/slash-graphql-5.png | Bin 0 -> 33781 bytes .../graphql/tutorial/todo/todo-graph-2.png | Bin 0 -> 17685 bytes .../graphql/tutorial/todo/todo-graph.png | Bin 0 -> 10884 bytes .../images/graphql/tutorial/todo/token.png | Bin 0 -> 71859 bytes fix_graphql.py | 188 ++++ migrate_graphql.py | 124 +++ 106 files changed, 9427 insertions(+), 13 deletions(-) create mode 100644 docusaurus-docs/docs-graphql/admin/admin-api.md create mode 100644 docusaurus-docs/docs-graphql/admin/index.md create mode 100644 docusaurus-docs/docs-graphql/custom/custom-dql.md create mode 100644 docusaurus-docs/docs-graphql/custom/custom-overview.md create mode 100644 docusaurus-docs/docs-graphql/custom/directive.md create mode 100644 docusaurus-docs/docs-graphql/custom/field.md create mode 100644 docusaurus-docs/docs-graphql/custom/index.md create mode 100644 docusaurus-docs/docs-graphql/custom/mutation.md create mode 100644 docusaurus-docs/docs-graphql/custom/query.md create mode 100644 docusaurus-docs/docs-graphql/federation/index.md create mode 100644 docusaurus-docs/docs-graphql/graphql-clients/endpoint/graphql-get-request.md create mode 100644 docusaurus-docs/docs-graphql/graphql-clients/endpoint/graphql-request.md create mode 100644 docusaurus-docs/docs-graphql/graphql-clients/endpoint/graphql-response.md create mode 100644 docusaurus-docs/docs-graphql/graphql-clients/endpoint/index.md create mode 100644 docusaurus-docs/docs-graphql/graphql-clients/graphql-ide.md create mode 100644 docusaurus-docs/docs-graphql/graphql-clients/graphql-ui.md create mode 100644 docusaurus-docs/docs-graphql/graphql-clients/index.md create mode 100644 docusaurus-docs/docs-graphql/graphql-dql/dql-for-graphql.md create mode 100644 docusaurus-docs/docs-graphql/graphql-dql/graphql-data-loading.md create mode 100644 docusaurus-docs/docs-graphql/graphql-dql/graphql-data-migration.md create mode 100644 docusaurus-docs/docs-graphql/graphql-dql/graphql-dgraph.md create mode 100644 docusaurus-docs/docs-graphql/graphql-dql/graphql-dql-schema.md create mode 100644 docusaurus-docs/docs-graphql/graphql-dql/index.md create mode 100644 docusaurus-docs/docs-graphql/lambda/field.md create mode 100644 docusaurus-docs/docs-graphql/lambda/index.md create mode 100644 docusaurus-docs/docs-graphql/lambda/lambda-overview.md create mode 100644 docusaurus-docs/docs-graphql/lambda/mutation.md create mode 100644 docusaurus-docs/docs-graphql/lambda/query.md create mode 100644 docusaurus-docs/docs-graphql/lambda/webhook.md create mode 100644 docusaurus-docs/docs-graphql/mutations/add.md create mode 100644 docusaurus-docs/docs-graphql/mutations/deep.md create mode 100644 docusaurus-docs/docs-graphql/mutations/delete.md create mode 100644 docusaurus-docs/docs-graphql/mutations/index.md create mode 100644 docusaurus-docs/docs-graphql/mutations/mutations-overview.md create mode 100644 docusaurus-docs/docs-graphql/mutations/update.md create mode 100644 docusaurus-docs/docs-graphql/mutations/upsert.md create mode 100644 docusaurus-docs/docs-graphql/queries/aggregate.md create mode 100644 docusaurus-docs/docs-graphql/queries/and-or-not.md create mode 100644 docusaurus-docs/docs-graphql/queries/cached-results.md create mode 100644 docusaurus-docs/docs-graphql/queries/cascade.md create mode 100644 docusaurus-docs/docs-graphql/queries/index.md create mode 100644 docusaurus-docs/docs-graphql/queries/order-page.md create mode 100644 docusaurus-docs/docs-graphql/queries/persistent-queries.md create mode 100644 docusaurus-docs/docs-graphql/queries/queries-overview.md create mode 100644 docusaurus-docs/docs-graphql/queries/search-filtering.md create mode 100644 docusaurus-docs/docs-graphql/queries/skip-include.md create mode 100644 docusaurus-docs/docs-graphql/queries/vector-similarity.md create mode 100644 docusaurus-docs/docs-graphql/quick-start/index.md create mode 100644 docusaurus-docs/docs-graphql/schema/dgraph-schema.md create mode 100644 docusaurus-docs/docs-graphql/schema/directives/auth.md create mode 100644 docusaurus-docs/docs-graphql/schema/directives/deprecated.md create mode 100644 docusaurus-docs/docs-graphql/schema/directives/directive-dgraph.md create mode 100644 docusaurus-docs/docs-graphql/schema/directives/directive-withsubscription.md create mode 100644 docusaurus-docs/docs-graphql/schema/directives/embedding.md create mode 100644 docusaurus-docs/docs-graphql/schema/directives/generate.md create mode 100644 docusaurus-docs/docs-graphql/schema/directives/ids.md create mode 100644 docusaurus-docs/docs-graphql/schema/directives/index.md create mode 100644 docusaurus-docs/docs-graphql/schema/directives/search.md create mode 100644 docusaurus-docs/docs-graphql/schema/documentation.md create mode 100644 docusaurus-docs/docs-graphql/schema/graph-links.md create mode 100644 docusaurus-docs/docs-graphql/schema/index.md create mode 100644 docusaurus-docs/docs-graphql/schema/migration.md create mode 100644 docusaurus-docs/docs-graphql/schema/reserved.md create mode 100644 docusaurus-docs/docs-graphql/schema/types.md create mode 100644 docusaurus-docs/docs-graphql/security/RBAC-rules.md create mode 100644 docusaurus-docs/docs-graphql/security/auth-tips.md create mode 100644 docusaurus-docs/docs-graphql/security/cors.md create mode 100644 docusaurus-docs/docs-graphql/security/graphtraversal-rules.md create mode 100644 docusaurus-docs/docs-graphql/security/index.md create mode 100644 docusaurus-docs/docs-graphql/security/jwt.md create mode 100644 docusaurus-docs/docs-graphql/security/mutations.md create mode 100644 docusaurus-docs/docs-graphql/subscriptions/index.md create mode 100644 docusaurus-docs/static/images/graphql/Auth-Action.gif create mode 100644 docusaurus-docs/static/images/graphql/CustomDirectiveDocumentation.png create mode 100644 docusaurus-docs/static/images/graphql/Generating-JWT.png create mode 100644 docusaurus-docs/static/images/graphql/RBAC.jpeg create mode 100644 docusaurus-docs/static/images/graphql/Subscription-Timeout.gif create mode 100644 docusaurus-docs/static/images/graphql/authors1.png create mode 100644 docusaurus-docs/static/images/graphql/subscription_example.gif create mode 100644 docusaurus-docs/static/images/graphql/subscription_flow.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/certificate.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/cloud-1.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/cloud-2.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/cloud-3.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/dashboard.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/firebase-cli.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/firebase-config.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/firebase-create-project.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/firebase-create-webapp.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/firebase-dashboard.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/firebase-domains.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/firebase-todo.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/firebase-webapp.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/jwt.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/rule.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/slash-graphql-4.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/slash-graphql-5.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/todo-graph-2.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/todo-graph.png create mode 100644 docusaurus-docs/static/images/graphql/tutorial/todo/token.png create mode 100644 fix_graphql.py create mode 100644 migrate_graphql.py diff --git a/docusaurus-docs/docs-graphql/admin/admin-api.md b/docusaurus-docs/docs-graphql/admin/admin-api.md new file mode 100644 index 00000000..f3bfde35 --- /dev/null +++ b/docusaurus-docs/docs-graphql/admin/admin-api.md @@ -0,0 +1,814 @@ +--- +title: "Administrative API Schema" +description: "This documentation presents the Admin API and explains how to run a Dgraph database with GraphQL." + +--- + + +Here are the important types, queries, and mutations from the `admin` schema. + +```graphql + """ + The Int64 scalar type represents a signed 64‐bit numeric non‐fractional value. + Int64 can represent values in range [-(2^63),(2^63 - 1)]. + """ + scalar Int64 + + """ + The UInt64 scalar type represents an unsigned 64‐bit numeric non‐fractional value. + UInt64 can represent values in range [0,(2^64 - 1)]. + """ + scalar UInt64 + + """ + The DateTime scalar type represents date and time as a string in RFC3339 format. + For example: "1985-04-12T23:20:50.52Z" represents 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. + """ + scalar DateTime + + """ + Data about the GraphQL schema being served by Dgraph. + """ + type GQLSchema @dgraph(type: "dgraph.graphql") { + id: ID! + + """ + Input schema (GraphQL types) that was used in the latest schema update. + """ + schema: String! @dgraph(pred: "dgraph.graphql.schema") + + """ + The GraphQL schema that was generated from the 'schema' field. + This is the schema that is being served by Dgraph at /graphql. + """ + generatedSchema: String! + } + + type Cors @dgraph(type: "dgraph.cors"){ + acceptedOrigins: [String] + } + + """ + A NodeState is the state of an individual node in the Dgraph cluster. + """ + type NodeState { + + """ + Node type : either 'alpha' or 'zero'. + """ + instance: String + + """ + Address of the node. + """ + address: String + + """ + Node health status : either 'healthy' or 'unhealthy'. + """ + status: String + + """ + The group this node belongs to in the Dgraph cluster. + See : https://dgraph.io/docs/deploy/cluster-setup/. + """ + group: String + + """ + Version of the Dgraph binary. + """ + version: String + + """ + Time in nanoseconds since the node started. + """ + uptime: Int64 + + """ + Time in Unix epoch time that the node was last contacted by another Zero or Alpha node. + """ + lastEcho: Int64 + + """ + List of ongoing operations in the background. + """ + ongoing: [String] + + """ + List of predicates for which indexes are built in the background. + """ + indexing: [String] + + """ + List of Enterprise Features that are enabled. + """ + ee_features: [String] + } + + type MembershipState { + counter: UInt64 + groups: [ClusterGroup] + zeros: [Member] + maxUID: UInt64 + maxNsID: UInt64 + maxTxnTs: UInt64 + maxRaftId: UInt64 + removed: [Member] + cid: String + license: License + """ + Contains list of namespaces. Note that this is not stored in proto's MembershipState and + computed at the time of query. + """ + namespaces: [UInt64] + } + + type ClusterGroup { + id: UInt64 + members: [Member] + tablets: [Tablet] + snapshotTs: UInt64 + checksum: UInt64 + } + + type Member { + id: UInt64 + groupId: UInt64 + addr: String + leader: Boolean + amDead: Boolean + lastUpdate: UInt64 + clusterInfoOnly: Boolean + forceGroupId: Boolean + } + + type Tablet { + groupId: UInt64 + predicate: String + force: Boolean + space: Int + remove: Boolean + readOnly: Boolean + moveTs: UInt64 + } + + type License { + user: String + maxNodes: UInt64 + expiryTs: Int64 + enabled: Boolean + } + + directive @dgraph(type: String, pred: String) on OBJECT | INTERFACE | FIELD_DEFINITION + directive @id on FIELD_DEFINITION + directive @secret(field: String!, pred: String) on OBJECT | INTERFACE + + type UpdateGQLSchemaPayload { + gqlSchema: GQLSchema + } + + input UpdateGQLSchemaInput { + set: GQLSchemaPatch! + } + + input GQLSchemaPatch { + schema: String! + } + + input ExportInput { + """ + Data format for the export, e.g. "rdf" or "json" (default: "rdf") + """ + format: String + """ + Namespace for the export in multi-tenant cluster. Users from guardians of galaxy can export + all namespaces by passing a negative value or specific namespaceId to export that namespace. + """ + namespace: Int + + """ + Destination for the export: e.g. Minio or S3 bucket or /absolute/path + """ + destination: String + + """ + Access key credential for the destination. + """ + accessKey: String + + """ + Secret key credential for the destination. + """ + secretKey: String + + """ + AWS session token, if required. + """ + sessionToken: String + + """ + Set to true to allow backing up to S3 or Minio bucket that requires no credentials. + """ + anonymous: Boolean + } + + input TaskInput { + id: String! + } + type Response { + code: String + message: String + } + + type ExportPayload { + response: Response + exportedFiles: [String] + } + + type DrainingPayload { + response: Response + } + + type ShutdownPayload { + response: Response + } + + type TaskPayload { + kind: TaskKind + status: TaskStatus + lastUpdated: DateTime + } + enum TaskStatus { + Queued + Running + Failed + Success + Unknown + } + enum TaskKind { + Backup + Export + Unknown + } + input ConfigInput { + """ + Estimated memory the caches can take. Actual usage by the process would be + more than specified here. The caches will be updated according to the + cache_percentage flag. + """ + cacheMb: Float + + """ + True value of logRequest enables logging of all the requests coming to alphas. + False value of logRequest disables above. + """ + logRequest: Boolean + } + + type ConfigPayload { + response: Response + } + + type Config { + cacheMb: Float + } + input RemoveNodeInput { + """ + ID of the node to be removed. + """ + nodeId: UInt64! + """ + ID of the group from which the node is to be removed. + """ + groupId: UInt64! + } + type RemoveNodePayload { + response: Response + } + input MoveTabletInput { + """ + Namespace in which the predicate exists. + """ + namespace: UInt64 + """ + Name of the predicate to move. + """ + tablet: String! + """ + ID of the destination group where the predicate is to be moved. + """ + groupId: UInt64! + } + type MoveTabletPayload { + response: Response + } + enum AssignKind { + UID + TIMESTAMP + NAMESPACE_ID + } + input AssignInput { + """ + Choose what to assign: UID, TIMESTAMP or NAMESPACE_ID. + """ + what: AssignKind! + """ + How many to assign. + """ + num: UInt64! + } + type AssignedIds { + """ + The first UID, TIMESTAMP or NAMESPACE_ID assigned. + """ + startId: UInt64 + """ + The last UID, TIMESTAMP or NAMESPACE_ID assigned. + """ + endId: UInt64 + """ + TIMESTAMP for read-only transactions. + """ + readOnly: UInt64 + } + type AssignPayload { + response: AssignedIds + } + + input BackupInput { + """ + Destination for the backup: e.g. Minio or S3 bucket. + """ + destination: String! + """ + Access key credential for the destination. + """ + accessKey: String + """ + Secret key credential for the destination. + """ + secretKey: String + """ + AWS session token, if required. + """ + sessionToken: String + """ + Set to true to allow backing up to S3 or Minio bucket that requires no credentials. + """ + anonymous: Boolean + """ + Force a full backup instead of an incremental backup. + """ + forceFull: Boolean + } + type BackupPayload { + response: Response + taskId: String + } + input RestoreInput { + """ + Destination for the backup: e.g. Minio or S3 bucket. + """ + location: String! + """ + Backup ID of the backup series to restore. This ID is included in the manifest.json file. + If missing, it defaults to the latest series. + """ + backupId: String + """ + Number of the backup within the backup series to be restored. Backups with a greater value + will be ignored. If the value is zero or missing, the entire series will be restored. + """ + backupNum: Int + """ + Path to the key file needed to decrypt the backup. This file should be accessible + by all alphas in the group. The backup will be written using the encryption key + with which the cluster was started, which might be different than this key. + """ + encryptionKeyFile: String + """ + Vault server address where the key is stored. This server must be accessible + by all alphas in the group. Default "http://localhost:8200". + """ + vaultAddr: String + """ + Path to the Vault RoleID file. + """ + vaultRoleIDFile: String + """ + Path to the Vault SecretID file. + """ + vaultSecretIDFile: String + """ + Vault kv store path where the key lives. Default "secret/data/dgraph". + """ + vaultPath: String + """ + Vault kv store field whose value is the key. Default "enc_key". + """ + vaultField: String + """ + Vault kv store field's format. Must be "base64" or "raw". Default "base64". + """ + vaultFormat: String + """ + Access key credential for the destination. + """ + accessKey: String + """ + Secret key credential for the destination. + """ + secretKey: String + """ + AWS session token, if required. + """ + sessionToken: String + """ + Set to true to allow backing up to S3 or Minio bucket that requires no credentials. + """ + anonymous: Boolean + } + type RestorePayload { + """ + A short string indicating whether the restore operation was successfully scheduled. + """ + code: String + """ + Includes the error message if the operation failed. + """ + message: String + } + input ListBackupsInput { + """ + Destination for the backup: e.g. Minio or S3 bucket. + """ + location: String! + """ + Access key credential for the destination. + """ + accessKey: String + """ + Secret key credential for the destination. + """ + secretKey: String + """ + AWS session token, if required. + """ + sessionToken: String + """ + Whether the destination doesn't require credentials (e.g. S3 public bucket). + """ + anonymous: Boolean + } + type BackupGroup { + """ + The ID of the cluster group. + """ + groupId: UInt64 + """ + List of predicates assigned to the group. + """ + predicates: [String] + } + type Manifest { + """ + Unique ID for the backup series. + """ + backupId: String + """ + Number of this backup within the backup series. The full backup always has a value of one. + """ + backupNum: UInt64 + """ + Whether this backup was encrypted. + """ + encrypted: Boolean + """ + List of groups and the predicates they store in this backup. + """ + groups: [BackupGroup] + """ + Path to the manifest file. + """ + path: String + """ + The timestamp at which this backup was taken. The next incremental backup will + start from this timestamp. + """ + since: UInt64 + """ + The type of backup, either full or incremental. + """ + type: String + } + type LoginResponse { + """ + JWT token that should be used in future requests after this login. + """ + accessJWT: String + """ + Refresh token that can be used to re-login after accessJWT expires. + """ + refreshJWT: String + } + type LoginPayload { + response: LoginResponse + } + type User @dgraph(type: "dgraph.type.User") @secret(field: "password", pred: "dgraph.password") { + """ + Username for the user. Dgraph ensures that usernames are unique. + """ + name: String! @id @dgraph(pred: "dgraph.xid") + groups: [Group] @dgraph(pred: "dgraph.user.group") + } + type Group @dgraph(type: "dgraph.type.Group") { + """ + Name of the group. Dgraph ensures uniqueness of group names. + """ + name: String! @id @dgraph(pred: "dgraph.xid") + users: [User] @dgraph(pred: "~dgraph.user.group") + rules: [Rule] @dgraph(pred: "dgraph.acl.rule") + } + type Rule @dgraph(type: "dgraph.type.Rule") { + """ + Predicate to which the rule applies. + """ + predicate: String! @dgraph(pred: "dgraph.rule.predicate") + """ + Permissions that apply for the rule. Represented following the UNIX file permission + convention. That is, 4 (binary 100) represents READ, 2 (binary 010) represents WRITE, + and 1 (binary 001) represents MODIFY (the permission to change a predicate’s schema). + The options are: + * 1 (binary 001) : MODIFY + * 2 (010) : WRITE + * 3 (011) : WRITE+MODIFY + * 4 (100) : READ + * 5 (101) : READ+MODIFY + * 6 (110) : READ+WRITE + * 7 (111) : READ+WRITE+MODIFY + Permission 0, which is equal to no permission for a predicate, blocks all read, + write and modify operations. + """ + permission: Int! @dgraph(pred: "dgraph.rule.permission") + } + input StringHashFilter { + eq: String + } + enum UserOrderable { + name + } + enum GroupOrderable { + name + } + input AddUserInput { + name: String! + password: String! + groups: [GroupRef] + } + input AddGroupInput { + name: String! + rules: [RuleRef] + } + input UserRef { + name: String! + } + input GroupRef { + name: String! + } + input RuleRef { + """ + Predicate to which the rule applies. + """ + predicate: String! + """ + Permissions that apply for the rule. Represented following the UNIX file permission + convention. That is, 4 (binary 100) represents READ, 2 (binary 010) represents WRITE, + and 1 (binary 001) represents MODIFY (the permission to change a predicate’s schema). + The options are: + * 1 (binary 001) : MODIFY + * 2 (010) : WRITE + * 3 (011) : WRITE+MODIFY + * 4 (100) : READ + * 5 (101) : READ+MODIFY + * 6 (110) : READ+WRITE + * 7 (111) : READ+WRITE+MODIFY + Permission 0, which is equal to no permission for a predicate, blocks all read, + write and modify operations. + """ + permission: Int! + } + input UserFilter { + name: StringHashFilter + and: UserFilter + or: UserFilter + not: UserFilter + } + input UserOrder { + asc: UserOrderable + desc: UserOrderable + then: UserOrder + } + input GroupOrder { + asc: GroupOrderable + desc: GroupOrderable + then: GroupOrder + } + input UserPatch { + password: String + groups: [GroupRef] + } + input UpdateUserInput { + filter: UserFilter! + set: UserPatch + remove: UserPatch + } + input GroupFilter { + name: StringHashFilter + and: UserFilter + or: UserFilter + not: UserFilter + } + input SetGroupPatch { + rules: [RuleRef!]! + } + input RemoveGroupPatch { + rules: [String!]! + } + input UpdateGroupInput { + filter: GroupFilter! + set: SetGroupPatch + remove: RemoveGroupPatch + } + type AddUserPayload { + user: [User] + } + type AddGroupPayload { + group: [Group] + } + type DeleteUserPayload { + msg: String + numUids: Int + } + type DeleteGroupPayload { + msg: String + numUids: Int + } + input AddNamespaceInput { + password: String + } + input DeleteNamespaceInput { + namespaceId: Int! + } + type NamespacePayload { + namespaceId: UInt64 + message: String + } + input ResetPasswordInput { + userId: String! + password: String! + namespace: Int! + } + type ResetPasswordPayload { + userId: String + message: String + namespace: UInt64 + } + input EnterpriseLicenseInput { + """ + The contents of license file as a String. + """ + license: String! + } + type EnterpriseLicensePayload { + response: Response + } + + type Query { + getGQLSchema: GQLSchema + health: [NodeState] + state: MembershipState + config: Config + task(input: TaskInput!): TaskPayload + + getUser(name: String!): User + getGroup(name: String!): Group + """ + Get the currently logged in user. + """ + getCurrentUser: User + queryUser(filter: UserFilter, order: UserOrder, first: Int, offset: Int): [User] + queryGroup(filter: GroupFilter, order: GroupOrder, first: Int, offset: Int): [Group] + """ + Get the information about the backups at a given location. + """ + listBackups(input: ListBackupsInput!) : [Manifest] + } + type Mutation { + + """ + Update the Dgraph cluster to serve the input schema. This may change the GraphQL + schema, the types and predicates in the Dgraph schema, and cause indexes to be recomputed. + """ + updateGQLSchema(input: UpdateGQLSchemaInput!) : UpdateGQLSchemaPayload + + """ + Starts an export of all data in the cluster. Export format should be 'rdf' (the default + if no format is given), or 'json'. + See : https://dgraph.io/docs/deploy/dgraph-administration/#export-database + """ + export(input: ExportInput!): ExportPayload + + """ + Set (or unset) the cluster draining mode. In draining mode no further requests are served. + """ + draining(enable: Boolean): DrainingPayload + + """ + Shutdown this node. + """ + shutdown: ShutdownPayload + + """ + Alter the node's config. + """ + config(input: ConfigInput!): ConfigPayload + """ + Remove a node from the cluster. + """ + removeNode(input: RemoveNodeInput!): RemoveNodePayload + """ + Move a predicate from one group to another. + """ + moveTablet(input: MoveTabletInput!): MoveTabletPayload + """ + Lease UIDs, Timestamps or Namespace IDs in advance. + """ + assign(input: AssignInput!): AssignPayload + + """ + Start a binary backup. See : https://dgraph.io/docs/enterprise-features/binary-backups/#create-a-backup + """ + backup(input: BackupInput!) : BackupPayload + """ + Start restoring a binary backup. See : https://dgraph.io/docs/enterprise-features/binary-backups/#online-restore + """ + restore(input: RestoreInput!) : RestorePayload + """ + Login to Dgraph. Successful login results in a JWT that can be used in future requests. + If login is not successful an error is returned. + """ + login(userId: String, password: String, namespace: Int, refreshToken: String): LoginPayload + """ + Add a user. When linking to groups: if the group doesn't exist it is created; if the group + exists, the new user is linked to the existing group. It's possible to both create new + groups and link to existing groups in the one mutation. + Dgraph ensures that usernames are unique, hence attempting to add an existing user results + in an error. + """ + addUser(input: [AddUserInput!]!): AddUserPayload + """ + Add a new group and (optionally) set the rules for the group. + """ + addGroup(input: [AddGroupInput!]!): AddGroupPayload + """ + Update users, their passwords and groups. As with AddUser, when linking to groups: if the + group doesn't exist it is created; if the group exists, the new user is linked to the existing + group. If the filter doesn't match any users, the mutation has no effect. + """ + updateUser(input: UpdateUserInput!): AddUserPayload + """ + Add or remove rules for groups. If the filter doesn't match any groups, + the mutation has no effect. + """ + updateGroup(input: UpdateGroupInput!): AddGroupPayload + deleteGroup(filter: GroupFilter!): DeleteGroupPayload + deleteUser(filter: UserFilter!): DeleteUserPayload + """ + Add a new namespace. + """ + addNamespace(input: AddNamespaceInput): NamespacePayload + """ + Delete a namespace. + """ + deleteNamespace(input: DeleteNamespaceInput!): NamespacePayload + """ + Reset password can only be used by the Guardians of the galaxy to reset password of + any user in any namespace. + """ + resetPassword(input: ResetPasswordInput!): ResetPasswordPayload + """ + Apply enterprise license. + """ + enterpriseLicense(input: EnterpriseLicenseInput!): EnterpriseLicensePayload + } +``` + +You'll notice that the `/admin` schema is very much the same as the schemas generated by Dgraph GraphQL. + +* The `health` query lets you know if everything is connected and if there's a schema currently being served at `/graphql`. +* The `state` query returns the current state of the cluster and group membership information. For more information about `state` see [here](/graphql/[deploy/admin/dgraph-zero#more-about-the-state-endpoint](deploy/admin/dgraph-zero#more-about-the-state-endpoint)). +* The `config` query returns the configuration options of the cluster set at the time of starting it. +* The `getGQLSchema` query gets the current GraphQL schema served at `/graphql`, or returns null if there's no such schema. +* The `updateGQLSchema` mutation allows you to change the schema currently served at `/graphql`. + + diff --git a/docusaurus-docs/docs-graphql/admin/index.md b/docusaurus-docs/docs-graphql/admin/index.md new file mode 100644 index 00000000..d62f2cc0 --- /dev/null +++ b/docusaurus-docs/docs-graphql/admin/index.md @@ -0,0 +1,184 @@ +--- +title: "Administrative API" +description: "This documentation presents the Admin API and explains how to run a Dgraph database with GraphQL." + +--- + + + +## GraphQL schema introspection + +GraphQL schema introspection is enabled by default, but you can disable it by +setting the `--graphql` superflag's `introspection` option to false (`--graphql introspection=false`) when +starting the Dgraph Alpha nodes in your cluster. + +## Dgraph's schema + +Dgraph's GraphQL runs in Dgraph and presents a GraphQL schema where the queries and mutations are executed in the Dgraph cluster. So the GraphQL schema is backed by Dgraph's schema. + +:::warning +this means that if you have a Dgraph instance and change its GraphQL schema, the schema of the underlying Dgraph will also be changed! +::: + +## Endpoints + +When you start Dgraph, two GraphQL endpoints are served. + +### /graphql + +At `/graphql` you'll find the GraphQL API for the types you've added. That's what your app would access and is the GraphQL entry point to Dgraph. If you need to know more about this, see the [quick start](https://dgraph.io/docs/graphql/quick-start/) and [schema docs](https://dgraph.io/docs/graphql/schema/). + +### /admin + +At `/admin` you'll find an admin API for administering your GraphQL instance. The admin API is a GraphQL API that serves POST and GET as well as compressed data, much like the `/graphql` endpoint. + + +* The `health` query lets you know if everything is connected and if there's a schema currently being served at `/graphql`. +* The `state` query returns the current state of the cluster and group membership information. For more information about `state` see [here](/graphql/[dgraph-zero#more-about-the-state-endpoint](dgraph-zero#more-about-the-state-endpoint)). +* The `config` query returns the configuration options of the cluster set at the time of starting it. +* The `getGQLSchema` query gets the current GraphQL schema served at `/graphql`, or returns null if there's no such schema. +* The `updateGQLSchema` mutation allows you to change the schema currently served at `/graphql`. + +## Enterprise features + +Enterprise Features like ACL, Backups and Restore are also available using the GraphQL API at `/admin` endpoint. + +* [ACL](/graphql/[access-control-lists#accessing-secured-dgraph](access-control-lists#accessing-secured-dgraph)) +* [Backups](/graphql/[binary-backups#create-a-backup](binary-backups#create-a-backup)) +* [Restore](/graphql/[binary-backups#online-restore](binary-backups#online-restore)) + +## First start + +On first starting with a blank database: + +* There's no schema served at `/graphql`. +* Querying the `/admin` endpoint for `getGQLSchema` returns `"getGQLSchema": null`. +* Querying the `/admin` endpoint for `health` lets you know that no schema has been added. + +## Validating a schema + +You can validate a GraphQL schema before adding it to your database by sending +your schema definition in an HTTP POST request to the to the +`/admin/schema/validate` endpoint, as shown in the following example: + +Request header: + +```ssh +path: /admin/schema/validate +method: POST +``` + +Request body: + +```graphql +type Person { + name: String +} +``` + +This endpoint returns a JSON response that indicates if the schema is valid or +not, and provides an error if isn't valid. In this case, the schema is valid, +so the JSON response includes the following message: `Schema is valid`. + +## Modifying a schema + +There are two ways you can modify a GraphQL schema: +- Using `/admin/schema` +- Using the `updateGQLSchema` mutation on `/admin` + +:::tip +While modifying the GraphQL schema, if you get errors like `errIndexingInProgress`, `another operation is already running` or `server is not ready`, please wait a moment and then retry the schema update. +::: + +### Using `/admin/schema` + +The `/admin/schema` endpoint provides a simplified method to add and update schemas. + +To create a schema you only need to call the `/admin/schema` endpoint with the required schema definition. For example: + +```graphql +type Person { + name: String +} +``` + +If you have the schema definition stored in a `schema.graphql` file, you can use `curl` like this: +``` +curl -X POST localhost:8080/admin/schema --data-binary '@schema.graphql' +``` + +On successful execution, the `/admin/schema` endpoint will give you a JSON response with a success code. + +### Using `updateGQLSchema` to add or modify a schema + +Another option to add or modify a GraphQL schema is the `updateGQLSchema` mutation. + +For example, to create a schema using `updateGQLSchema`, run this mutation on the `/admin` endpoint: + +```graphql +mutation { + updateGQLSchema( + input: { set: { schema: "type Person { name: String }"}}) + { + gqlSchema { + schema + generatedSchema + } + } +} +``` + +## Initial schema + +Regardless of the method used to upload the GraphQL schema, on a black database, adding this schema + +```graphql +type Person { + name: String +} +``` + +would cause the following: + +* The `/graphql` endpoint would refresh and serve the GraphQL schema generated from type `type Person { name: String }`. +* The schema of the underlying Dgraph instance would be altered to allow for the new `Person` type and `name` predicate. +* The `/admin` endpoint for `health` would return that a schema is being served. +* The mutation would return `"schema": "type Person { name: String }"` and the generated GraphQL schema for `generatedSchema` (this is the schema served at `/graphql`). +* Querying the `/admin` endpoint for `getGQLSchema` would return the new schema. + +## Migrating a schema + +Given an instance serving the GraphQL schema from the previous section, updating the schema to the following + +```graphql +type Person { + name: String @search(by: [regexp]) + dob: DateTime +} +``` + +would change the GraphQL definition of `Person` and result in the following: + +* The `/graphql` endpoint would refresh and serve the GraphQL schema generated from the new type. +* The schema of the underlying Dgraph instance would be altered to allow for `dob` (predicate `Person.dob: datetime .` is added, and `Person.name` becomes `Person.name: string @index(regexp).`) and indexes are rebuilt to allow the regexp search. +* The `health` is unchanged. +* Querying the `/admin` endpoint for `getGQLSchema` would return the updated schema. + +## Removing indexes from a schema + +Adding a schema through GraphQL doesn't remove existing data (it only removes indexes). + +For example, starting from the schema in the previous section and modifying it with the initial schema + +```graphql +type Person { + name: String +} +``` + +would have the following effects: + +* The `/graphql` endpoint would refresh to serve the schema built from this type. +* Thus, field `dob` would no longer be accessible, and there would be no search available on `name`. +* The search index on `name` in Dgraph would be removed. +* The predicate `dob` in Dgraph would be left untouched (the predicate remains and no data is deleted). diff --git a/docusaurus-docs/docs-graphql/custom/custom-dql.md b/docusaurus-docs/docs-graphql/custom/custom-dql.md new file mode 100644 index 00000000..d3ece23f --- /dev/null +++ b/docusaurus-docs/docs-graphql/custom/custom-dql.md @@ -0,0 +1,113 @@ +--- +title: "Custom DQL" +description: "Dgraph Query Language (DQL) includes support for custom logic. Specify the DQL query you want to execute and the Dgraph GraphQL API will execute it." + +--- + + +Dgraph Query Language ([DQL](/dql/)) lets you build custom resolvers logic that goes beyond what is possible with the current GraphQL CRUD API. + +To define a DQL custom query, use the notation: +```graphql + @custom(dql: """ + ... + """) +``` + +:::tip +Since v21.03, you can also [subscribe to custom DQL](/graphql/subscriptions/#subscriptions-to-custom-dql) queries. +::: + +For example, lets say you had following schema: +```graphql +type Tweets { + id: ID! + text: String! @search(by: [fulltext]) + author: User + timestamp: DateTime! @search +} +type User { + screen_name: String! @id + followers: Int @search + tweets: [Tweets] @hasInverse(field: author) +} +``` + +and you wanted to query tweets containing some particular text sorted by the number of followers their author has. Then, +this is not possible with the automatically generated CRUD API. Similarly, let's say you have a table sort of UI +component in your application which displays only a user's name and the number of tweets done by that user. Doing this +with the auto-generated CRUD API would require you to fetch unnecessary data at client side, and then employ client side +logic to find the count. Instead, all this could simply be achieved by specifying a DQL query for such custom use-cases. + +So, you would need to modify your schema like this: +```graphql +type Tweets { + id: ID! + text: String! @search(by: [fulltext]) + author: User + timestamp: DateTime! @search +} +type User { + screen_name: String! @id + followers: Int @search + tweets: [Tweets] @hasInverse(field: author) +} +type UserTweetCount @remote { + screen_name: String + tweetCount: Int +} + +type Query { + queryTweetsSortedByAuthorFollowers(search: String!): [Tweets] @custom(dql: """ + query q($search: string) { + var(func: type(Tweets)) @filter(anyoftext(Tweets.text, $search)) { + Tweets.author { + followers as User.followers + } + authorFollowerCount as sum(val(followers)) + } + queryTweetsSortedByAuthorFollowers(func: uid(authorFollowerCount), orderdesc: val(authorFollowerCount)) { + id: uid + text: Tweets.text + author: Tweets.author { + screen_name: User.screen_name + followers: User.followers + } + timestamp: Tweets.timestamp + } + } + """) + + queryUserTweetCounts: [UserTweetCount] @custom(dql: """ + query { + queryUserTweetCounts(func: type(User)) { + screen_name: User.screen_name + tweetCount: count(User.tweets) + } + } + """) +} + +``` + +Now, if you run following query, it would fetch you the tweets containing "GraphQL" in their text, sorted by the number +of followers their author has: +```graphql +query { + queryTweetsSortedByAuthorFollowers(search: "GraphQL") { + text + } +} +``` + +There are following points to note while specifying the DQL query for such custom resolvers: + +* The name of the DQL query that you want to map to the GraphQL response, should be same as the name of the GraphQL query. +* You must use proper aliases inside DQL queries to map them to the GraphQL response. +* If you are using variables in DQL queries, their names should be same as the name of the arguments for the GraphQL query. +* For variables, only scalar GraphQL arguments like `Boolean`, `Int`, `Float`, etc are allowed. Lists and Object types are not allowed to be used as variables with DQL queries. +* You would be able to query only those many levels with GraphQL which you have mapped with the DQL query. For instance, in the first custom query above, we haven't mapped an author's tweets to GraphQL alias, so, we won't be able to fetch author's tweets using that query. +* If the custom GraphQL query returns an interface, and you want to use `__typename` in GraphQL query, then you should add `dgraph.type` as a field in DQL query without any alias. This is not required for types, only for interfaces. +* to subscribe to a custom DQL query, use the `@withSubscription` directive. See the [Subscriptions article](/graphql/subscriptions/) for more information. + +--- diff --git a/docusaurus-docs/docs-graphql/custom/custom-overview.md b/docusaurus-docs/docs-graphql/custom/custom-overview.md new file mode 100644 index 00000000..4c3a17c3 --- /dev/null +++ b/docusaurus-docs/docs-graphql/custom/custom-overview.md @@ -0,0 +1,54 @@ +--- +title: "Custom Resolvers Overview" +description: "Dgraph creates a GraphQL API from nothing more than GraphQL types. To customize the behavior of your schema, you can implement custom resolvers." + +--- + +Dgraph creates a GraphQL API from nothing more than GraphQL types. That's great, and gets you moving fast from an idea to a running app. However, at some point, as your app develops, you might want to customize the behavior of your schema. + +In Dgraph, you do that with code (in any language you like) that implements custom resolvers. + +Dgraph doesn't execute your custom logic itself. It makes external HTTP requests. That means, you can deploy your custom logic into the same Kubernetes cluster as your Dgraph instance, deploy and call, for example, AWS Lambda functions, or even make calls to existing HTTP and GraphQL endpoints. + +## The `@custom` directive + +There are three places you can use the `@custom` directive and thus tell Dgraph where to apply custom logic. + +1) You can add custom queries to the Query type + +```graphql +type Query { + myCustomQuery(...): QueryResultType @custom(...) +} +``` + +2) You can add custom mutations to the Mutation type + +```graphql +type Mutation { + myCustomMutation(...): MutationResult @custom(...) +} +``` + +3) You can add custom fields to your types + +```graphql +type MyType { + ... + customField: FieldType @custom(...) + ... +} +``` + +## Learn more + +Find out more about the `@custom` directive [here](/graphql/custom/directive), or check out: + +* [custom query examples](/graphql/custom/query) +* [custom mutation examples](/graphql/custom/mutation), or +* [custom field examples](/graphql/custom/field) + + + + +--- diff --git a/docusaurus-docs/docs-graphql/custom/directive.md b/docusaurus-docs/docs-graphql/custom/directive.md new file mode 100644 index 00000000..9c2aed06 --- /dev/null +++ b/docusaurus-docs/docs-graphql/custom/directive.md @@ -0,0 +1,432 @@ +--- +title: "The @custom Directive" +description: "The @custom directive is used to define custom queries, mutations, and fields. The result types can be local or remote." + +--- + +The `@custom` directive is used to define custom queries, mutations and fields. + +In all cases, the result type (of the query, mutation or field) can be either: + +* a type that's stored in Dgraph (that's any type you've defined in your schema), or +* a type that's not stored in Dgraph and is marked with the `@remote` directive. + +Because the result types can be local or remote, you can call other HTTP endpoints, call remote GraphQL, or even call back to your Dgraph instance to add extra logic on top of Dgraph's graph search or mutations. + +Here's the GraphQL definition of the directives: + +```graphql +directive @custom(http: CustomHTTP) on FIELD_DEFINITION +directive @remote on OBJECT | INTERFACE + +input CustomHTTP { + url: String! + method: HTTPMethod! + body: String + graphql: String + mode: Mode + forwardHeaders: [String!] + secretHeaders: [String!] + introspectionHeaders: [String!] + skipIntrospection: Boolean +} + +enum HTTPMethod { GET POST PUT PATCH DELETE } +enum Mode { SINGLE BATCH } +``` + +Each definition of custom logic must include: + +* the `url` where the custom logic is called. This can include a path and parameters that depend on query/mutation arguments or other fields. +* the HTTP `method` to use in the call. For example, when calling a REST endpoint with `GET`, `POST`, etc. + +Optionally, the custom logic definition can also include: + +* a `body` definition that can be used to construct a HTTP body from from arguments or fields. +* a list of `forwardHeaders` to take from the incoming request and add to the outgoing HTTP call. +Used, for example, if the incoming request contains an auth token that must be passed to the custom logic. +* a list of `secretHeaders` to take from the `Dgraph.Secret` defined in the schema file and add to the outgoing HTTP call. +Used, for example, for a server side API key and other static value that must be passed to the custom logic. +* the `graphql` query/mutation to call if the custom logic is a GraphQL server and whether to introspect or not (`skipIntrospection`) the remote GraphQL endpoint. +* `mode` which is used for resolving fields by calling an external GraphQL query/mutation. It can either be `BATCH` or `SINGLE`. +* a list of `introspectionHeaders` to take from the `Dgraph.Secret` [object](#dgraphsecret) defined in the schema file. They're added to the +introspection requests sent to the endpoint. + + +The result type of custom queries and mutations can be any object type in your schema, including `@remote` types. For custom fields the type can be object types or scalar types. + +The `method` can be any of the HTTP methods: `GET`, `POST`, `PUT`, `PATCH`, or `DELETE`, and `forwardHeaders` is a list of headers that should be passed from the incoming request to the outgoing HTTP custom request. Let's look at each of the other `http` arguments in detail. + +## Dgraph.Secret + +Sometimes you might want to forward some static headers to your custom API which can't be exposed +to the client. This could be an API key from a payment processor or an auth token for your organization +on GitHub. These secrets can be specified as comments in the schema file and then can be used in +`secretHeaders` and `introspectionHeaders` while defining the custom directive for a field/query. + + +```graphql + type Query { + getTopUsers(id: ID!): [User] @custom(http: { + url: "http://api.github.com/topUsers", + method: "POST", + introspectionHeaders: ["Github-Api-Token"], + secretHeaders: ["Authorization:Github-Api-Token"], + graphql: "..." + }) +} + +# Dgraph.Secret Github-Api-Token "long-token" +``` + +In the above request, `Github-Api-Token` would be sent as a header with value `long-token` for +the introspection request. For the actual `/graphql` request, the `Authorization` header would be sent with +the value `long-token`. + +:::note +`Authorization:Github-Api-Token` syntax tells us to use the value for +`Github-Api-Token` from `Dgraph.Secret` and forward it to the custom API with the header key as `Authorization`. +::: + +## The URL and method + +The URL can be as simple as a fixed URL string, or include details drawn from the arguments or fields. + +A simple string might look like: + +```graphql +type Query { + myCustomQuery: MyResult @custom(http: { + url: "https://my.api.com/theQuery", + method: GET + }) +} +``` + +While, in more complex cases, the arguments of the query/mutation can be used as a pattern for the URL: + +```graphql +type Query { + myGetPerson(id: ID!): Person @custom(http: { + url: "https://my.api.com/person/$id", + method: GET + }) + + getPosts(authorID: ID!, numToFetch: Int!): [Post] @custom(http: { + url: "https://my.api.com/person/$authorID/posts?limit=$numToFetch", + method: GET + }) +} +``` + +In this case, a query like + +```graphql +query { + getPosts(authorID: "auth123", numToFetch: 10) { + title + } +} +``` + +gets transformed to an outgoing HTTP GET request to the URL `https://my.api.com/person/auth123/posts?limit=10`. + +When using custom logic on fields, the URL can draw from other fields in the type. For example: + +```graphql +type User { + username: String! @id + ... + posts: [Post] @custom(http: { + url: "https://my.api.com/person/$username/posts", + method: GET + }) +} +``` + +Note that: + +* Fields or arguments used in the path of a URL, such as `username` or `authorID` in the examples above, must be marked as non-nullable (have `!` in their type); whereas, those used in parameters, such as `numToFetch`, can be nullable. +* Currently, only scalar fields or arguments are allowed to be used in URLs or bodies; though, see body below, this doesn't restrict the objects you can construct and pass to custom logic functions. +* Currently, the body can only contain alphanumeric characters in the key and other characters like `_` are not yet supported. +* Currently, constant values are not also not allowed in the body template. This would soon be supported. + +## The body + +Many HTTP requests, such as add and update operations on REST APIs, require a JSON formatted body to supply the data. In a similar way to how `url` allows specifying a url pattern to use in resolving the custom request, Dgraph allows a `body` pattern that is used to build HTTP request bodies. + +For example, this body can be structured JSON that relates a mutation's arguments to the JSON structure required by the remote endpoint. + +```graphql +type Mutation { + newMovie(title: String!, desc: String, dir: ID, imdb: ID): Movie @custom(http: { + url: "http://myapi.com/movies", + method: "POST", + body: "{ title: $title, imdbID: $imdb, storyLine: $desc, director: { id: $dir }}", + }) +``` + +A request with `newMovie(title: "...", desc: "...", dir: "dir123", imdb: "tt0120316")` is transformed into a `POST` request to `http://myapi.com/movies` with a JSON body of: + +```json +{ + "title": "...", + "imdbID": "tt0120316", + "storyLine": "...", + "director": { + "id": "dir123" + } +} +``` + +`url` and `body` templates can be used together in a single custom definition. + +For both `url` and `body` templates, any non-null arguments or fields must be present to evaluate the custom logic. And the following rules are applied when building the request from the template for nullable arguments or fields. + +* If the value of a nullable argument is present, it's used in the template. +* If a nullable argument is present, but null, then in a body `null` is inserted, while in a url nothing is added. For example, if the `desc` argument above is null then `{ ..., storyLine: null, ...}` is constructed for the body. Whereas, in a URL pattern like `https://a.b.c/endpoint?arg=$gqlArg`, if `gqlArg` is present, but null, the generated URL is `https://a.b.c/endpoint?arg=`. +* If a nullable argument is not present, nothing is added to the URL/body. That would mean the constructed body would not contain `storyLine` if the `desc` argument is missing, and in `https://a.b.c/endpoint?arg=$gqlArg` the result would be `https://a.b.c/endpoint` if `gqlArg` were not present in the request arguments. + +## Calling GraphQL custom resolvers + +Custom queries, mutations and fields can be implemented by custom GraphQL resolvers. In this case, use the `graphql` argument to specify which query/mutation on the remote server to call. The syntax includes if the call is a query or mutation, the arguments, and what query/mutation to use on the remote endpoint. + +For example, you can pass arguments to queries onward as arguments to remote GraphQL endpoints: + +```graphql +type Query { + getPosts(authorID: ID!, numToFetch: Int!): [Post] @custom(http: { + url: "https://my.api.com/graphql", + method: POST, + graphql: "query($authorID: ID!, $numToFetch: Int!) { posts(auth: $authorID, first: $numToFetch) }" + }) +} +``` + +You can also define your own inputs and pass those to the remote GraphQL endpoint. + +```graphql +input NewMovieInput { ... } + +type Mutation { + newMovie(input: NewMovieInput!): Movie @custom(http: { + url: "http://movies.com/graphql", + method: "POST", + graphql: "mutation($input: NewMovieInput!) { addMovie(data: $input) }", + }) +``` + +When a schema is uploaded, Dgraph will try to introspect the remote GraphQL endpoints on any custom logic that uses the `graphql` argument. From the results of introspection, it tries to match up arguments, input and object types to ensure that the calls to and expected responses from the remote GraphQL make sense. + +If that introspection isn't possible, set `skipIntrospection: true` in the custom definition and Dgraph won't perform GraphQL schema introspection for this custom definition. + +## Remote types + +Any type annotated with the `@remote` directive is not stored in Dgraph. This allows your Dgraph GraphQL instance to serve an API that includes both data stored locally and data stored or generated elsewhere. You can also use custom fields, for example, to join data from disparate datasets. + +Remote types can only be returned by custom resolvers and Dgraph won't generate any search or CRUD operations for remote types. + +The schema definition used to define your Dgraph GraphQL API must include definitions of all the types used. If a custom logic call returns a type not stored in Dgraph, then that type must be added to the Dgraph schema with the `@remote` directive. + +For example, you api might use custom logic to integrate with GitHub, using either `https://api.github.com` or the GitHub GraphQL api `https://api.github.com/graphql` and calling the `user` query. Either way, your GraphQL schema will need to include the type you expect back from that remote call. That could be linking a `User` as stored in your Dgraph instance with the `Repository` data from GitHub. With `@remote` types, that's as simple as adding the type and custom call to your schema. + +```graphql +# GitHub's repository type +type Repository @remote { ... } + +# Dgraph user type +type User { + # local user name = GitHub id + username: String! @id + + # ... + # other data stored in Dgraph + # ... + + # join local data with remote + repositories: [Repository] @custom(http: { + url: "https://api.github.com/users/$username/repos", + method: GET + }) +} +``` + +Just defining the connection is all it takes and then you can ask a single GraphQL query that performs a local query and joins with (potentially many) remote data sources. + +### RemoteResponse directive + +In combination with the `@remote` directive, in a GraphQL schema you can also use the `@remoteResponse` directive. +You can define the `@remoteResponse` directive on the fields of a `@remote` type in order to map the JSON key response of a custom query to a GraphQL field. + +For example, in the given GraphQL schema there's a defined custom DQL query, whose JSON response contains the results of the `groupby` clause in the `@groupby` key. By using the `@remoteResponse` directive you'll map the `groupby` field in `GroupUserMapQ` type to the `@groupby` key in the JSON response: + +```graphql +type User { + screen_name: String! @id + followers: Int @search + tweets: [Tweets] @hasInverse(field: user) +} +type UserTweetCount @remote { + screen_name: String + tweetCount: Int +} +type UserMap @remote { + followers: Int + count: Int +} +type GroupUserMapQ @remote { + groupby: [UserMap] @remoteResponse(name: "@groupby") +} +``` + +it's possible to define the following `@custom` DQL query: + +```graphql +queryUserKeyMap: [GroupUserMapQ] @custom(dql: """ +{ + queryUserKeyMap(func: type(User)) @groupby(followers: User.followers) { + count(uid) + } +} +""") +``` + +## How Dgraph processes custom results + +Given types like + +```graphql +type Post @remote { + id: ID! + title: String! + datePublished: DateTime + author: Author +} + +type Author { ... } +``` + +and a custom query + +```graphql +type Query { + getCustomPost(id: ID!): Post @custom(http: { + url: "https://my.api.com/post/$id", + method: GET + }) + + getPosts(authorID: ID!, numToFetch: Int!): [Post] @custom(http: { + url: "https://my.api.com/person/$authorID/posts?limit=$numToFetch", + method: GET + }) +} +``` + +Dgraph turns the `getCustomPost` query into a HTTP request to `https://my.api.com/post/$id` and expects a single JSON object with fields `id`, `title`, `datePublished` and `author` as result. Any additional fields are ignored, while if non-nullable fields (like `id` and `title`) are missing, GraphQL error propagation will be triggered. + +For `getPosts`, Dgraph expects the HTTP call to `https://my.api.com/person/$authorID/posts?limit=$numToFetch` to return a JSON array of JSON objects, with each object matching the `Post` type as described above. + +If the custom resolvers are GraphQL calls, like: + +```graphql +type Query { + getCustomPost(id: ID!): Post @custom(http: { + url: "https://my.api.com/graphql", + method: POST, + graphql: "query(id: ID) { post(postID: $id) }" + }) + + getPosts(authorID: ID!, numToFetch: Int!): [Post] @custom(http: { + url: "https://my.api.com/graphql", + method: POST, + graphql: "query(id: ID) { postByAuthor(authorID: $id, first: $numToFetch) }" + }) +} +``` + +then Dgraph expects a GraphQL call to `post` to return a valid GraphQL result like `{ "data": { "post": {...} } }` and will use the JSON object that is the value of `post` as the data resolved by the request. + +Similarly, Dgraph expects `postByAuthor` to return data like `{ "data": { "postByAuthor": [ {...}, ... ] } }` and will use the array value of `postByAuthor` to build its array of posts result. + +## How errors from custom endpoints are handled + +When a query returns an error while resolving from a custom HTTP endpoint, the error is added to the `errors` array and sent back to the user in the JSON response. + +When a field returns an error while resolving a custom HTTP endpoint, the field's value becomes `null` and the error is added to the `errors` JSON array. The rest of the fields are still resolved as required by the request. + +For example, a query from a custom HTTP endpoint will return an error in the following format: + +```json +{ + "errors": [ + { + "message": "Rest API returns Error for myFavoriteMovies query", + "locations": [ + { + "line": 5, + "column": 4 + } + ], + "path": [ + "Movies", + "name" + ] + } + ] +} +``` + +## How custom fields are resolved + +When evaluating a request that includes custom fields, Dgraph might run multiple resolution stages to resolve all the fields. Dgraph must also ensure it requests enough data to forfull the custom fields. For example, given the `User` type defined as: + +```graphql +type User { + username: String! @id + ... + posts: [Post] @custom(http: { + url: "https://my.api.com/person/$username/posts", + method: GET + }) +} +``` + +a query such as: + +```graphql +query { + queryUser { + username + posts + } +} +``` + +is executed by first querying in Dgraph for `username` and then using the result to resolve the custom field `posts` (which relies on `username`). For a request like: + +```graphql +query { + queryUser { + posts + } +} +``` + +Dgraph works out that it must first get `username` so it can run the custom field `posts`, even though `username` isn't part of the original query. So Dgraph retrieves enough data to satisfy the custom request, even if that involves data that isn't asked for in the query. + +There are currently a few limitations on custom fields: + +* each custom call must include either an `ID` or `@id` field +* arguments are not allowed (soon custom field arguments will be allowed and will be used in the `@custom` directive in the same manner as for custom queries and mutations), and +* a custom field can't depend on another custom field (longer term, we intend to lift this restriction). + +## Restrictions / Roadmap + +Our custom logic is still in beta and we are improving it quickly. Here's a few points that we plan to work on soon: + +* adding arguments to custom fields +* relaxing the restrictions on custom fields using id values +* iterative evaluation of `@custom` and `@remote` - in the current version you can't have `@custom` inside an `@remote` type once we add this, you'll be able to extend remote types with custom fields, and +* allowing fine tuning of the generated API, for example removing of customizing the generated CRUD mutations. + +--- diff --git a/docusaurus-docs/docs-graphql/custom/field.md b/docusaurus-docs/docs-graphql/custom/field.md new file mode 100644 index 00000000..be1c2bed --- /dev/null +++ b/docusaurus-docs/docs-graphql/custom/field.md @@ -0,0 +1,81 @@ +--- +title: "Custom Fields" +description: "Custom fields allow you to extend your types with custom logic as well as make joins between your local data and remote data." + +--- + +Custom fields allow you to extend your types with custom logic as well as make joins between your local data and remote data. + +Let's say we are building an app for managing projects. Users will login with their GitHub id and we want to connect some data about their work stored in Dgraph with say their GitHub profile, issues, etc. + +Our first version of our users might start out with just their GitHub username and some data about what projects they are working on. + +```graphql +type User { + username: String! @id + projects: [Project] + tickets: [Ticket] +} +``` + +We can then add their GitHub repositories by just extending the definitions with the types and custom field needed to make the remote call. + +```graphql +# GitHub's repository type +type Repository @remote { ... } + +# Dgraph user type +type User { + # local user name = GitHub id + username: String! @id + + # join local data with remote + repositories: [Repository] @custom(http: { + url: "https://api.github.com/users/$username/repos", + method: GET + }) +} +``` + +We could similarly join with say the GitHub user details, or open pull requests, to further fill out the join between GitHub and our local data. Instead of the REST API, let's use the GitHub GraphQL endpoint + + +```graphql +# GitHub's User type +type GitHubUser @remote { ... } + +# Dgraph user type +type User { + # local user name = GitHub id + username: String! @id + + # join local data with remote + gitDetails: GitHubUser @custom(http: { + url: "https://api.github.com/graphql", + method: POST, + graphql: "query(username: String!) { user(login: $username) }", + skipIntrospection: true + }) +} +``` + +Perhaps our app has some measure of their velocity that's calculated by a custom function that looks at both their GitHub commits and some other places where work is added. Soon we'll have a schema where we can render a user's home page, the projects they work on, their open tickets, their GitHub details, etc. in a single request that queries across multiple sources and can mix Dgraph filtering with external calls. + +```graphql +query { + getUser(id: "aUser") { + username + projects(order: { asc: lastUpdate }, first: 10) { + projectName + } + tickets { + connectedGitIssue { ... } + } + velocityMeasure + gitDetails { ... } + repositories { ... } + } +} +``` + +--- diff --git a/docusaurus-docs/docs-graphql/custom/index.md b/docusaurus-docs/docs-graphql/custom/index.md new file mode 100644 index 00000000..92d87ef7 --- /dev/null +++ b/docusaurus-docs/docs-graphql/custom/index.md @@ -0,0 +1,4 @@ +--- +title: "Custom Resolvers" + +--- \ No newline at end of file diff --git a/docusaurus-docs/docs-graphql/custom/mutation.md b/docusaurus-docs/docs-graphql/custom/mutation.md new file mode 100644 index 00000000..98ad1ed8 --- /dev/null +++ b/docusaurus-docs/docs-graphql/custom/mutation.md @@ -0,0 +1,49 @@ +--- +title: "Custom Mutations" +description: "With custom mutations, you can use custom logic to define values for one or more fields in a mutation." + +--- + +With custom mutations, you can use custom logic to define values for one or more +fields in a mutation. + +Let's say we have an application about authors and posts. Logged in authors can add posts, but we want to do some input validation and add extra value when a post is added. The key types might be as follows. + +```graphql +type Author { ... } + +type Post { + id: ID! + title: String + text: String + datePublished: DateTime + author: Author + ... +} +``` + +Dgraph generates an `addPost` mutation from those types, but we want to do something extra. We don't want the `author` field to come in with the mutation, that should get filled in from the JWT of the logged in user. Also, the `datePublished` shouldn't be in the input; it should be set as the current time at point of mutation. Maybe we also have some community guidelines about what might constitute an offensive `title` or `text` in a post. Maybe users can only post if they have enough community credit. + +We'll need custom code to do all that, so we can write a custom function that takes in only the title and text of the new post. Internally, it can check that the title and text satisfy the guidelines and that this user has enough credit to make a post. If those checks pass, it then builds a full post object by adding the current time as the `datePublished` and adding the `author` from the JWT information it gets from the forward header. It can then call the `addPost` mutation constructed by Dgraph to add the post into Dgraph and returns the resulting post as its GraphQL output. + +So as well as the types above, we need a custom mutation: + +```graphql +type Mutation { + newPost(title: String!, text: String): Post @custom(http:{ + url: "https://my.api.com/addPost" + method: "POST", + body: "{ postText: $text, postTitle: $title }" + forwardHeaders: ["AuthHdr"] + }) +} +``` + +## Learn more + +Find out more about how to turn off generated mutations and protecting mutations with authorization rules at: + +* [Remote Types - Turning off Generated Mutations with `@remote` Directive](/graphql/[directive/#remote-types](directive/#remote-types)) +* [Securing Mutations with the `@auth` Directive](/graphql/security/mutations) + +--- diff --git a/docusaurus-docs/docs-graphql/custom/query.md b/docusaurus-docs/docs-graphql/custom/query.md new file mode 100644 index 00000000..c52a58e1 --- /dev/null +++ b/docusaurus-docs/docs-graphql/custom/query.md @@ -0,0 +1,68 @@ +--- +title: "Custom Queries" +description: "A custom query takes any number of scalar arguments and constructs the path, parameters, and body of the request that's sent to the remote endpoint." + +--- + +Let's say we want to integrate our app with an existing external REST API. There's a few things we need to know: + +* The URL of the API, the path and any parameters required +* The shape of the resulting JSON data +* The method (GET, POST, etc.), and +* What authorization we need to pass to the external endpoint + +The custom query can take any number of scalar arguments and use those to construct the path, parameters and body (we'll see an example of that in the custom mutation section) of the request that gets sent to the remote endpoint. + +In an app, you'd deploy an endpoint that does some custom work and returns data that's used in your UI, or you'd wrap some logic or call around an existing endpoint. So that we can walk through a whole example, let's use the Twitter API. + +To integrate a call that returns the data of Twitter user with our app, all we need to do is add the expected result type `TwitterUser` and set up a custom query: + +```graphql +type TwitterUser @remote { + id: ID! + name: String + screen_name: String + location: String + description: String + followers_count: Int + ... +} + +type Query{ + getCustomTwitterUser(name: String!): TwitterUser @custom(http:{ + url: "https://api.twitter.com/1.1/users/show.json?screen_name=$name" + method: "GET", + forwardHeaders: ["Authorization"] + }) +} +``` + +Dgraph will then be able to accept a GraphQL query like + +```graphql +query { + getCustomTwitterUser(name: "dgraphlabs") { + location + description + followers_count + } +} +``` + +construct a HTTP GET request to `https://api.twitter.com/1.1/users/show.json?screen_name=dgraphlabs`, attach header `Authorization` from the incoming GraphQL request to the outgoing HTTP, and make the call and return a GraphQL result. + +The result JSON of the actual HTTP call will contain the whole object from the REST endpoint (you can see how much is in the Twitter user object [here](https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/user-object)). But, the GraphQL query only asked for some of that, so Dgraph filters out any returned values that weren't asked for in the GraphQL query and builds a valid GraphQL response to the query and returns GraphQL. + +```json +{ + "data": { + "getCustomTwitterUser": { "location": ..., "description": ..., "followers_count": ... } + } +} +``` + +Your version of the remote type doesn't have to be equal to the remote type. For example, if you don't want to allow users to query the full Twitter user, you include in the type definition only the fields that can be queried. + +All the usual options for custom queries are allowed; for example, you can have multiple queries in a single GraphQL request and a mix of custom and Dgraph generated queries, you can get the result compressed by setting `Accept-Encoding` to `gzip`, etc. + +--- diff --git a/docusaurus-docs/docs-graphql/federation/index.md b/docusaurus-docs/docs-graphql/federation/index.md new file mode 100644 index 00000000..edf61bae --- /dev/null +++ b/docusaurus-docs/docs-graphql/federation/index.md @@ -0,0 +1,167 @@ +--- +title: "Apollo Federation" +description: "Dgraph now supports Apollo federation so that you can create a gateway GraphQL service that includes the Dgraph GraphQL API and other GraphQL services." + +--- + +Dgraph supports [Apollo federation](https://www.apollographql.com/docs/federation/) starting in release version 21.03. This lets you create a gateway GraphQL service that includes the Dgraph GraphQL API and other GraphQL services. + +## Support for Apollo federation directives + +The current implementation supports the following five directives: `@key`, `@extends`, `@external`, `@provides`, and `@requires`. + +### `@key` directive +This directive takes one field argument inside it: the `@key` field. There are few limitations on how to use `@key` directives: + +- Users can define the `@key` directive only once for a type +- Support for multiple key fields is not currently available. +- Since the `@key` field acts as a foreign key to resolve entities from the service where it is extended, the field provided as an argument inside the `@key` directive should be of `ID` type or have the `@id` directive on it. + +For example - + +```graphql +type User @key(fields: "id") { + id: ID! + name: String +} +``` + +### `@extends` directive +This directive provides support for extended definitions. For example, if the above-defined `User` type is defined in some other service, you can extend it in Dgraph's GraphQL service by using the `@extends` directive, as follows: + +```graphql +type User @key(fields: "id") @extends{ + id: String! @id @external + products: [Product] +} +``` +You can also achieve this with the `extend` keyword; so you have a choice between two types of syntax to extend a type into your Dgraph GraphQL service: `extend type User ...` or `type User @extends ...`. + +### `@external` directive +You use this directive when the given field is not stored in this service. It can only be used on extended type definitions. For example, it is used in the example shown above on the `id` field of the `User` type. + +### `@provides` directive +You use this directive on a field that tells the gateway to return a specific fieldset from the base type while fetching the field. + +For example - + +```graphql +type Review @key(fields: "id") { + product: Product @provides(fields: "name price") +} + +extend type Product @key(fields: "upc") { + upc: String @external + name: String @external + price: Int @external +} +``` + +While fetching `Review.product` from the `review` service, and if the `name` or `price` is also queried, the gateway will fetch these from the `review` service itself. So, the `review` service also resolves these fields, even though both fields are `@external`. + +### `@requires` directive +You use this directive on a field to annotate the fieldset of the base type. You can use it to develop a query plan where the required fields may not be needed by the client, but the service may need additional information from other services. + +For example - + +```graphql +extend type User @key(fields: "id") { + id: ID! @external + email: String @external + reviews: [Review] @requires(fields: "email") +} +``` + +When the gateway fetches `user.reviews` from the `review` service, the gateway will get `user.email` from the `User` service and provide it as an argument to the `_entities` query. + +Using `@requires` alone on a field doesn't make much sense. In cases where you need to use `@requires`, you should also add some custom logic on that field. You can add such logic using the `@lambda` or `@custom(http: {...})` directives. + +Here's an example - + +1. Schema: +```graphql +extend type User @key(fields: "id") { + id: ID! @external + email: String @external + reviews: [Review] @requires(fields: "email") @lambda +} +``` +2. Lambda Script: +```js +// returns a list of reviews for a user +async function userReviews({parent, graphql}) { + let reviews = []; + // find the reviews for a user using the email and return them. + // Even though the email has been declared `@external`, it will be available as `parent.email` as it is mentioned in `@requires`. + return reviews +} +self.addGraphQLResolvers({ + "User.reviews": userReviews +}) +``` + +## Generated queries and mutations + +In this section, you will see what all queries and mutations will be available to individual service and to the Apollo gateway. + +Let's take the below schema as an example - + +```graphql +type Mission @key(fields: "id") { + id: ID! + crew: [Astronaut] + designation: String! + startDate: String + endDate: String +} + +type Astronaut @key(fields: "id") @extends { + id: ID! @external + missions: [Mission] +} +``` + +The queries and mutations which are exposed to the gateway are - + +```graphql +type Query { + getMission(id: ID!): Mission + queryMission(filter: MissionFilter, order: MissionOrder, first: Int, offset: Int): [Mission] + aggregateMission(filter: MissionFilter): MissionAggregateResult +} + +type Mutation { + addMission(input: [AddMissionInput!]!): AddMissionPayload + updateMission(input: UpdateMissionInput!): UpdateMissionPayload + deleteMission(filter: MissionFilter!): DeleteMissionPayload + addAstronaut(input: [AddAstronautInput!]!): AddAstronautPayload + updateAstronaut(input: UpdateAstronautInput!): UpdateAstronautPayload + deleteAstronaut(filter: AstronautFilter!): DeleteAstronautPayload +} +``` + +The queries for `Astronaut` are not exposed to the gateway because they are resolved through the `_entities` resolver. However, these queries are available on the Dgraph GraphQL API endpoint. + +## Mutation for `extended` types +If you want to add an object of `Astronaut` type which is extended in this service. +The mutation `addAstronaut` takes `AddAstronautInput`, which is generated as follows: + +```graphql +input AddAstronautInput { + id: ID! + missions: [MissionRef] +} +``` + +The `id` field is of `ID` type, which is usually generated internally by Dgraph. But, In this case, it's provided as an input. The user should provide the same `id` value that is present in the GraphQL service where the type `Astronaut` is defined. + +For example, let's assume that the type `Astronaut` is defined in some other service, `AstronautService`, as follows: + +```graphql +type Astronaut @key(fields: "id") { + id: ID! + name: String! +} +``` + +When adding an object of type `Astronaut`, you should first add it to the `AstronautService` service. Then, you can call the `addAstronaut` mutation with the value of `id` provided as an argument that must be equal to the value in `AstronautService` service. diff --git a/docusaurus-docs/docs-graphql/graphql-clients/endpoint/graphql-get-request.md b/docusaurus-docs/docs-graphql/graphql-clients/endpoint/graphql-get-request.md new file mode 100644 index 00000000..a84a8a8f --- /dev/null +++ b/docusaurus-docs/docs-graphql/graphql-clients/endpoint/graphql-get-request.md @@ -0,0 +1,25 @@ +--- +title: "GET Request" +description: "Get the structure for GraphQL requests and responses, how to enable compression for them, and configuration options for extensions." + +--- + +
    + +GraphQL request may also be sent using an ``HTTP GET`` operation. + +\GET requests must be sent in the following format. The query, variables, and operation are sent as URL-encoded query parameters in the URL. + +``` +http://localhost:8080/graphql?query={...}&variables={...}&operationName=... +``` + +- `query` is mandatory +- `variables` is only required if the query contains GraphQL variables. +- `operationName` is only required if there are multiple operations in the query; in which case, operations must also be named. + +
    + + + + diff --git a/docusaurus-docs/docs-graphql/graphql-clients/endpoint/graphql-request.md b/docusaurus-docs/docs-graphql/graphql-clients/endpoint/graphql-request.md new file mode 100644 index 00000000..0e51331e --- /dev/null +++ b/docusaurus-docs/docs-graphql/graphql-clients/endpoint/graphql-request.md @@ -0,0 +1,374 @@ +--- +title: "POST Request" +description: "Get the structure for GraphQL requests and responses, how to enable compression for them, and configuration options for extensions." + +--- + + +## POST ``/graphql`` + +### Headers + + +| Header | Optionality | Value | +|:------|:------|:------| +| Content-Type | mandatory | `application/graphql` or `application/json` | +| Content-Encoding | optional | `gzip` to send compressed data | +| Accept-Encoding | optional | `gzip` to enabled data compression on response| +| X-Dgraph-AccessToken | if ``ACL`` is enabled | pass the access token you got in the login response to access predicates protected by an ACL| +| X-Auth-Token | if ``anonymous access`` is disabled |Admin Key or Client key| +| header as set in ``Dgraph.Authorization`` | if GraphQL ``Dgraph.Authorization`` is set | valid JWT used by @auth directives | + + + + +:::note +Refer to GraphQL [security](/graphql/[graphql/security](graphql/security)) settings for explanations about ``anonymous access`` and ``Dgraph.Authorization``. +::: + + +### Payload format +POST requests sent with the Content-Type header `application/graphql` must have a POST body content as a GraphQL query string. For example, the following is a valid POST body for a query: + +```graphql +query { + getTask(id: "0x3") { + id + title + completed + user { + username + name + } + } +} +``` + +POST requests sent with the Content-Type header `application/json` must have a POST body in the following JSON format: + +```json +{ + "query": "...", + "operationName": "...", + "variables": { "var": "val", ... } +} +``` + +GraphQL requests can contain one or more operations. Operations include `query`, `mutation`, or `subscription`. If a request only has one operation, then it can be unnamed like the following: + +## Single Operation + +The most basic request contains a single anonymous (unnamed) operation. Each operation can have one or more queries within in. For example, the following query has `query` operation running the queries "getTask" and "getUser": + +```graphql +query { + getTask(id: "0x3") { + id + title + completed + } + getUser(username: "dgraphlabs") { + username + } +} +``` + +Response: + +```json +{ + "data": { + "getTask": { + "id": "0x3", + "title": "GraphQL docs example", + "completed": true + }, + "getUser": { + "username": "dgraphlabs" + } + } +} +``` + +You can optionally name the operation as well, though it's not required if the request only has one operation as it's clear what needs to be executed. + +### Query Shorthand + +If a request only has a single query operation, then you can use the short-hand form of omitting the "query" keyword: + +```graphql +{ + getTask(id: "0x3") { + id + title + completed + } + getUser(username: "dgraphlabs") { + username + } +} +``` + +This simplifies queries when a query doesn't require an operation name or variables. + +## Multiple Operations + +If a request has two or more operations, then each operation must have a name. A request can only execute one operation, so you must also include the operation name to execute in the request. Every operation name in a request must be unique. + +For example, in the following request has the operation names "getTaskAndUser" and "completedTasks". + +```graphql +query getTaskAndUser { + getTask(id: "0x3") { + id + title + completed + } + queryUser(filter: {username: {eq: "dgraphlabs"}}) { + username + name + } +} + +query completedTasks { + queryTask(filter: {completed: true}) { + title + completed + } +} +``` + +When executing the following request (as an HTTP POST request in JSON format), specifying the "getTaskAndUser" operation executes the first query: + +```json +{ + "query": "query getTaskAndUser { getTask(id: \"0x3\") { id title completed } queryUser(filter: {username: {eq: \"dgraphlabs\"}}) { username name }\n}\n\nquery completedTasks { queryTask(filter: {completed: true}) { title completed }}", + "operationName": "getTaskAndUser" +} +``` + +```json +{ + "data": { + "getTask": { + "id": "0x3", + "title": "GraphQL docs example", + "completed": true + }, + "queryUser": [ + { + "username": "dgraphlabs", + "name": "Dgraph Labs" + } + ] + } +} +``` + +And specifying the "completedTasks" operation executes the second query: + +```json +{ + "query": "query getTaskAndUser { getTask(id: \"0x3\") { id title completed } queryUser(filter: {username: {eq: \"dgraphlabs\"}}) { username name }\n}\n\nquery completedTasks { queryTask(filter: {completed: true}) { title completed }}", + "operationName": "completedTasks" +} +``` + +```json +{ + "data": { + "queryTask": [ + { + "title": "GraphQL docs example", + "completed": true + }, + { + "title": "Show second operation", + "completed": true + } + ] + } +} +``` + +### multiple queries execution + +When an operation contains multiple queries, they are run concurrently and independently in a Dgraph readonly transaction per query. + +When an operation contains multiple mutations, they are run serially, in the order listed in the request, and in a transaction per mutation. If a mutation fails, the following mutations are not executed, and previous mutations are not rolled back. + + +### Variables + +Variables simplify GraphQL queries and mutations by letting you pass data separately. A GraphQL request can be split into two sections: one for the query or mutation, and another for variables. + +Variables can be declared after the `query` or `mutation` and are passed like arguments to a function and begin with `$`. + +#### Query Example + +```graphql +query post($filter: PostFilter) { + queryPost(filter: $filter) { + title + text + author { + name + } + } +} +``` + +**Variables** + +```graphql +{ + "filter": { + "title": { + "eq": "First Post" + } + } +} +``` + + +#### Mutation Example + +```graphql +mutation addAuthor($author: AddAuthorInput!) { + addAuthor(input: [$author]) { + author { + name + posts { + title + text + } + } + } +} +``` + +**Variables** + +```graphql +{ + "author": { + "name": "A.N. Author", + "dob": "2000-01-01", + "posts": [{ + "title": "First Post", + "text": "Hello world!" + }] + } +} +``` + + +### Fragments +A GraphQL fragment is associated with a type and is a reusable subset of the fields from this type. +Here, we declare a `postData` fragment that can be used with any `Post` object: + +```graphql +fragment postData on Post { + id + title + text + author { + username + displayName + } +} +query allPosts { + queryPost(order: { desc: title }) { + ...postData + } +} +mutation addPost($post: AddPostInput!) { + addPost(input: [$post]) { + post { + ...postData + } + } +} +``` + + + +### Using fragments with interfaces + +It is possible to define fragments on interfaces. +Here's an example of a query that includes in-line fragments: + +**Schema** + +```graphql +interface Employee { + ename: String! +} +interface Character { + id: ID! + name: String! @search(by: [exact]) +} +type Human implements Character & Employee { + totalCredits: Float +} +type Droid implements Character { + primaryFunction: String +} +``` + +**Query** + +```graphql +query allCharacters { + queryCharacter { + name + __typename + ... on Human { + totalCredits + } + ... on Droid { + primaryFunction + } + } +} +``` + +The `allCharacters` query returns a list of `Character` objects. Since `Human` and `Droid` implements the `Character` interface, the fields in the result would be returned according to the type of object. + +**Result** + +```graphql +{ + "data": { + "queryCharacter": [ + { + "name": "Human1", + "__typename": "Human", + "totalCredits": 200.23 + }, + { + "name": "Human2", + "__typename": "Human", + "totalCredits": 2.23 + }, + { + "name": "Droid1", + "__typename": "Droid", + "primaryFunction": "Code" + }, + { + "name": "Droid2", + "__typename": "Droid", + "primaryFunction": "Automate" + } + ] + } +} +``` + + + + + + + diff --git a/docusaurus-docs/docs-graphql/graphql-clients/endpoint/graphql-response.md b/docusaurus-docs/docs-graphql/graphql-clients/endpoint/graphql-response.md new file mode 100644 index 00000000..67356a23 --- /dev/null +++ b/docusaurus-docs/docs-graphql/graphql-clients/endpoint/graphql-response.md @@ -0,0 +1,182 @@ +--- +title: "HTTP Response" +description: "Get the structure for GraphQL requests and responses, how to enable compression for them, and configuration options for extensions." + +--- + +
    + + +### Responses +All responses, including errors, always return HTTP 200 OK status codes. + +The response is a JSON map including the fields `"data"`, `"errors"`, or `"extensions"` following the GraphQL specification. They follow the following formats. + +Successful queries are in the following format: + +```json +{ + "data": { ... }, + "extensions": { ... } +} +``` + +Queries that have errors are in the following format. + +```json +{ + "errors": [ ... ], +} +``` + + +#### "data" field + +The "data" field contains the result of your GraphQL request. The response has exactly the same shape as the result. For example, notice that for the following query, the response includes the data in the exact shape as the query. + +Query: + +```graphql +query { + getTask(id: "0x3") { + id + title + completed + user { + username + name + } + } +} +``` + +Response: + +```json +{ + "data": { + "getTask": { + "id": "0x3", + "title": "GraphQL docs example", + "completed": true, + "user": { + "username": "dgraphlabs", + "name": "Dgraph Labs" + } + } + } +} +``` + +#### "errors" field + +The "errors" field is a JSON list where each entry has a `"message"` field that describes the error and optionally has a `"locations"` array to list the specific line and column number of the request that points to the error described. For example, here's a possible error for the following query, where `getTask` needs to have an `id` specified as input: + +Query: +```graphql +query { + getTask() { + id + } +} +``` + +Response: +```json +{ + "errors": [ + { + "message": "Field \"getTask\" argument \"id\" of type \"ID!\" is required but not provided.", + "locations": [ + { + "line": 2, + "column": 3 + } + ] + } + ] +} +``` +#### Error propagation +Before returning query and mutation results, Dgraph uses the types in the schema to apply GraphQL [value completion](https://graphql.github.io/graphql-spec/June2018/#sec-Value-Completion) and [error handling](https://graphql.github.io/graphql-spec/June2018/#sec-Errors-and-Non-Nullability). That is, `null` values for non-nullable fields, e.g. `String!`, cause error propagation to parent fields. + +In short, the GraphQL value completion and error propagation mean the following. + +* Fields marked as nullable (i.e. without `!`) can return `null` in the json response. +* For fields marked as non-nullable (i.e. with `!`) Dgraph never returns null for that field. +* If an instance of type has a non-nullable field that has evaluated to null, the whole instance results in null. +* Reducing an object to null might cause further error propagation. For example, querying for a post that has an author with a null name results in null: the null name (`name: String!`) causes the author to result in null, and a null author causes the post (`author: Author!`) to result in null. +* Error propagation for lists with nullable elements, e.g. `friends [Author]`, can result in nulls inside the result list. +* Error propagation for lists with non-nullable elements results in null for `friends [Author!]` and would cause further error propagation for `friends [Author!]!`. + +Note that, a query that results in no values for a list will always return the empty list `[]`, not `null`, regardless of the nullability. For example, given a schema for an author with `posts: [Post!]!`, if an author has not posted anything and we queried for that author, the result for the posts field would be `posts: []`. + +A list can, however, result in null due to GraphQL error propagation. For example, if the definition is `posts: [Post!]`, and we queried for an author who has a list of posts. If one of those posts happened to have a null title (title is non-nullable `title: String!`), then that post would evaluate to null, the `posts` list can't contain nulls and so the list reduces to null. + +#### "extensions" field + +The "extensions" field contains extra metadata for the request with metrics and trace information for the request. + +- `"touched_uids"`: The number of nodes that were touched to satisfy the request. This is a good metric to gauge the complexity of the query. +- `"tracing"`: Displays performance tracing data in [Apollo Tracing][apollo-tracing] format. This includes the duration of the whole query and the duration of each operation. + +[apollo-tracing]: https://github.com/apollographql/apollo-tracing + +Here's an example of a query response with the extensions field: + +```json +{ + "data": { + "getTask": { + "id": "0x3", + "title": "GraphQL docs example", + "completed": true, + "user": { + "username": "dgraphlabs", + "name": "Dgraph Labs" + } + } + }, + "extensions": { + "touched_uids": 9, + "tracing": { + "version": 1, + "startTime": "2020-07-29T05:54:27.784837196Z", + "endTime": "2020-07-29T05:54:27.787239465Z", + "duration": 2402299, + "execution": { + "resolvers": [ + { + "path": [ + "getTask" + ], + "parentType": "Query", + "fieldName": "getTask", + "returnType": "Task", + "startOffset": 122073, + "duration": 2255955, + "dgraph": [ + { + "label": "query", + "startOffset": 171684, + "duration": 2154290 + } + ] + } + ] + } + } + } +} +``` + +**Turn off extensions** + +To turn off extensions set the +`--graphql` superflag's `extensions` option to false (`--graphql extensions=false`) +when running Dgraph Alpha. +
    + + + + diff --git a/docusaurus-docs/docs-graphql/graphql-clients/endpoint/index.md b/docusaurus-docs/docs-graphql/graphql-clients/endpoint/index.md new file mode 100644 index 00000000..609ed712 --- /dev/null +++ b/docusaurus-docs/docs-graphql/graphql-clients/endpoint/index.md @@ -0,0 +1,48 @@ +--- +title: "/graphql endpoint" +description: "Get the structure for GraphQL requests and responses, how to enable compression for them, and configuration options for extensions." + +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + +When you deploy a GraphQL schema, Dgraph serves the corresponding [spec-compliant GraphQL](https://graphql.github.io/graphql-spec/June2018/) API at the HTTP endpoint `/graphql`. GraphQL requests can be sent via HTTP POST or HTTP GET requests. + + +### Getting your GraphQL Endpoint + + + +- access the [Overview](https://cloud.dgraph.io/_/dashboard) panel of Dgraph Cloud dashboard. +- the ``GraphQL Endpoint`` is displayed at the bottom. +- click on the link button to copy it. + + + +``/graphql`` is served by the Alpha nodes of the Dgraph cluster on the HTTP-external-public port. Refer to [ports usage](/dgraph-overview/admin/security/ports-usage). + +For a local install the graphql endpoint would be + +``` +http://localhost:8080/graphql +``` +The URL depends on your configuration and specifically +- the port offest defined by ``--port_offset`` option of the dgraph alpha command. +- the configuration of TLS for https. +- the usage of a load balancer. + + + + +### In this section + + + + + + + + diff --git a/docusaurus-docs/docs-graphql/graphql-clients/graphql-ide.md b/docusaurus-docs/docs-graphql/graphql-clients/graphql-ide.md new file mode 100644 index 00000000..6338a463 --- /dev/null +++ b/docusaurus-docs/docs-graphql/graphql-clients/graphql-ide.md @@ -0,0 +1,21 @@ +--- +title: "GraphQL IDEs" +description: "Dgraph" + +--- + + +As Dgraph serves a [spec-compliant GraphQL](https://graphql.github.io/graphql-spec/June2018/) API, you can use your favorite GraphQL IDE. + +- Postman +- Insomnia +- GraphiQL +- VSCode with GraphQL extensions + +### General IDE setup +- Copy Dgraph GraphQL endpoint. +- Set the security header as required. +- use IDE instrospection capability. + +You are ready to write GraphQL queries and mutation and to run them against Dgraph cluster. + diff --git a/docusaurus-docs/docs-graphql/graphql-clients/graphql-ui.md b/docusaurus-docs/docs-graphql/graphql-clients/graphql-ui.md new file mode 100644 index 00000000..d239e8c3 --- /dev/null +++ b/docusaurus-docs/docs-graphql/graphql-clients/graphql-ui.md @@ -0,0 +1,18 @@ +--- +title: "Client libraries" +description: "Dgraph" + +--- + + +When building an application in React, Vue, Svelte or any of you favorite framework, using a GraphQL client library is a must. + +As Dgraph serves a [spec-compliant GraphQL](https://graphql.github.io/graphql-spec/June2018/) API from your schema, supports instropection and GraphQL subscriptions, the integration with GraphQL UI client libraries is seamless. + +Here is a not limited list of popular GraphQL UI clients that you can use with Dgraph to build applications: +- [graphql-request](https://github.com/jasonkuhrt/graphql-request) +- [URQL](https://github.com/urql-graphql/urql) +- [Apollo client](https://github.com/apollographql/apollo-client) + + + diff --git a/docusaurus-docs/docs-graphql/graphql-clients/index.md b/docusaurus-docs/docs-graphql/graphql-clients/index.md new file mode 100644 index 00000000..a48b5db6 --- /dev/null +++ b/docusaurus-docs/docs-graphql/graphql-clients/index.md @@ -0,0 +1,6 @@ +--- +title: "GraphQL Client" + +--- + +### In this section \ No newline at end of file diff --git a/docusaurus-docs/docs-graphql/graphql-dql/dql-for-graphql.md b/docusaurus-docs/docs-graphql/graphql-dql/dql-for-graphql.md new file mode 100644 index 00000000..fd0fee64 --- /dev/null +++ b/docusaurus-docs/docs-graphql/graphql-dql/dql-for-graphql.md @@ -0,0 +1,18 @@ +--- +title: "Use DQL in GraphQL" + +--- + + + +Dgraph Query Language ([DQL](/dql/)) can be used to extend GraphQL API capabilities when writing: + +- [custom DQL resolvers](/graphql/[custom-dql](custom-dql)) +- [subscriptions on DQL queries](/graphql/[directive-withsubscription](directive-withsubscription)) + + + +When writing custom DQL query resolvers, you must understand the [GraphQL - DQL schema mapping](/graphql/[graphql-dql-schema](graphql-dql-schema)) to use proper aliases inside DQL queries to map them to the GraphQL response. + + + diff --git a/docusaurus-docs/docs-graphql/graphql-dql/graphql-data-loading.md b/docusaurus-docs/docs-graphql/graphql-dql/graphql-data-loading.md new file mode 100644 index 00000000..e21c3c64 --- /dev/null +++ b/docusaurus-docs/docs-graphql/graphql-dql/graphql-data-loading.md @@ -0,0 +1,17 @@ +--- +title: "Data loading" + +--- + + + +After you have deployed your first GraphQL Schema, you get a GraphQL API served on ``/graphql`` endpoint and an empty backend. You can populate the graph database using the mutations operations on the GraphQL API. + +A more efficient way to populate the database is to use the Dgraph's [import tools](/graphql/[import-data](import-data)). + +The first step is to understand the [schema mapping](/graphql/[graphql-dql-schema](graphql-dql-schema)) and to prepare your RDF files or JSON files to follow the internal Dgraph predicates names. +You also have to make sure that you properly generate data for the `dgraph.type` predicate so that each node is asscociated with it's type. + +If you are using the [initial import](/graphql/[bulk-loader](bulk-loader)) tool, you can provide the GraphQL schema along with the data to import when executing the bulk load. + +If you are using the [live import](/graphql/[live-loader](live-loader)) tool, you must first deploy your GraphQL Schema and then proceed with the import. Deploying the schema first, will generate the predicates indexes and reduce the loading time. \ No newline at end of file diff --git a/docusaurus-docs/docs-graphql/graphql-dql/graphql-data-migration.md b/docusaurus-docs/docs-graphql/graphql-dql/graphql-data-migration.md new file mode 100644 index 00000000..1afc2b1a --- /dev/null +++ b/docusaurus-docs/docs-graphql/graphql-dql/graphql-data-migration.md @@ -0,0 +1,51 @@ +--- +title: "GraphQL data migration" + +--- + + + +When deploying a new version of your GraphQL Schema, Dgraph will update the underlying DQL Schema but will not alter the data. + +As explained in [GraphQL and DQL Schemas](/graphql/[graphql-dql-schema](graphql-dql-schema)) overview, Dgraph has no constraints at the database level and any node with predicates is valid. + +You may face with several data GraphQL API and data discrepancies. + +### unused fields +For example, let's assume that you have deployed the following schema: +```graphql +type TestDataMigration { + id: ID! + someInfo: String! + someOtherInfo: String +} +``` + +Then you create a `TestDataMigration` with `someOtherInfo` value. + +Then you update the Schema and remove the field. +```graphql +type TestDataMigration { + id: ID! + someInfo: String! +} +``` + +The data you have previously created is still in the graph database ! + +Moreover if you delete the `TestDataMigration` object using its `id`, the GraphQL API delete operation will be successful. + +If you followed the [GraphQL - DQL Schema mapping](/graphql/[graphql-dql-schema](graphql-dql-schema)), you understand that Dgraph has used the list the known list of predicates (id, someInfo) and removed them. In fact, Dgraph also removed the `dgraph.type` predicate and so this `TestDataMigration` node is not visible anymore to the GraphQL API. + +The point is that a node with this `uid` exists and has a predicate `someOtherInfo`. This is because this data has been created initially and nothing in the process of deploying a new version and then using a delete operation by ID instructed Dgraph to delete this predicate. + +You end up with a node without type (i.e without a `dgraph.type` predicate) and with an old predicate value which is 'invisible' to your GraphQL API! + +When doing a GraphQL schema deployement, you must take care of the data cleaning and data migration. +The good news is that DQL offers you the tools to identify (search) potential issues and to correct the data (mutations). + +In the previous case, you can alter the database and completely delete the predicate or you can write an 'upsert' DQL query that will search the nodes of interest and delete the unused predicate for those nodes. + +### new non-nullable field +Another obvious example appears if you deploy a new version containing a new non-nullable field for an existing type. The existing 'nodes' of the same type in the graph do not have this predicate. A Gra[hQL query reaching those nodes will return a list of errors. You can easily write an 'upsert' DQL mutation to find all node of this type not having the new predicate and update them with a default value. + diff --git a/docusaurus-docs/docs-graphql/graphql-dql/graphql-dgraph.md b/docusaurus-docs/docs-graphql/graphql-dql/graphql-dgraph.md new file mode 100644 index 00000000..16fe1bb7 --- /dev/null +++ b/docusaurus-docs/docs-graphql/graphql-dql/graphql-dgraph.md @@ -0,0 +1,42 @@ +--- +title: "GraphQL on Existing Dgraph" + +--- + +### How to use GraphQL on an existing Dgraph instance + +In the case where you have an existing Dgraph instance which has been created using a DQL Schema (and populated with Dgraph import tools) and you want to expose some or all of the data using a GraphQL API, you can use the [@dgraph directive](/graphql/schema/directives/directive-dgraph/) to customize how Dgraph maps GraphQL type names and fields names to DQL types and predicates. + + + +### Language support in GraphQL + +In your GraphQL schema, you need to define a field for each language that you want to use. +In addition, you also need to apply the `@dgraph(pred: "...")` directive on that field, with the `pred` argument set to point to the correct DQL predicate with a language tag for the language that you want to use it for. +Dgraph will automatically add a `@lang` directive in the DQL schema for the corresponding predicate. + +:::tip +By default, the DQL predicate for a GraphQL field is generated as `Typename.FieldName`. +::: + +For example: + +```graphql +type Person { + name: String # Person.name is the auto-generated DQL predicate for this GraphQL field, unless overridden using @dgraph(pred: "...") + nameHi: String @dgraph(pred:"Person.name@hi") # this field exposes the value for the language tag `@hi` for the DQL predicate `Person.name` to GraphQL + nameEn: String @dgraph(pred:"Person.name@en") + nameHi_En: String @dgraph(pred:"Person.name@hi:en") # this field uses multiple language tags: `@hi` and `@en` + nameHi_En_untag: String @dgraph(pred:"Person.name@hi:en:.") # as this uses `.`, it will give untagged values if there is no value for `@hi` or `@en` + } +``` + +If a GraphQL field uses more than one language tag, then it won't be part of any mutation input. Like, in the above example the fields `nameHi_En` and `nameHi_En_untag` can't be given as an input to any mutation. Only the fields which use one or no language can be given in a mutation input, like `name`, `nameHi`, and `nameEn`. + +All the fields can be queried, irrespective of whether they use one language or more. + +:::note +GraphQL won’t be able to query `Person.name@*` type of language tags because of the structural requirements of GraphQL. +::: + + diff --git a/docusaurus-docs/docs-graphql/graphql-dql/graphql-dql-schema.md b/docusaurus-docs/docs-graphql/graphql-dql/graphql-dql-schema.md new file mode 100644 index 00000000..f1a8ab4a --- /dev/null +++ b/docusaurus-docs/docs-graphql/graphql-dql/graphql-dql-schema.md @@ -0,0 +1,164 @@ +--- +title: "GraphQL and DQL schemas" + +--- + +The first step in mastering DQL in the context of GraphQL API is probably to understand the fundamental difference between GraphQL schema and DQL schema. + +### In GraphQL, the schema is a central notion. +GraphQL is a strongly typed language. Contrary to REST which is organized in terms of endpoints, GraphQL APIs are organized in terms of types and fields. The type system is used to define the schema, which is a contract between client and server. +GraphQL uses types to ensure Apps only ask for what’s possible and provide clear and helpful errors. + +In the [GraphQL Quick start](/graphql/[/graphql/quick-start](/graphql/quick-start)), we have used a schema to generate a GraphQL API: + ```graphql +type Product { + productID: ID! + name: String @search(by: [term]) + reviews: [Review] @hasInverse(field: about) +} + +type Customer { + username: String! @id @search(by: [hash, regexp]) + reviews: [Review] @hasInverse(field: by) +} + +type Review { + id: ID! + about: Product! + by: Customer! + comment: String @search(by: [fulltext]) + rating: Int @search +} +``` + +The API and the engine logic are generated from the schema defining the types of objects we are dealing with, the fields, and the relationships in the form of fields referencing other types. + + +### In DQL, the schema described the predicates + +Dgraph maintains a list of all predicates names with their type and indexes in the [Dgraph types schema](/graphql/[dql-schema](dql-schema)). + + +### Schema mapping + +When deploying a GraphQL Schema, Dgraph will generates DQL predicates and types for the graph backend. +In order to distinguish a field ``name`` from a type ``Person`` from the field ``name`` of different type (they may have different indexes), Dgraph is using a dotted notation for the DQL schema. + +For example, deploying the following GraphQL Schema +```graphql +type Person { + id: ID + name: String! + friends: [Person] +} +``` + +will lead the the declaration of 3 predicates in the DQL Schema: + +- ``Person.id default`` +- ``Person.name string`` +- ``Person.friends [uid]`` + +and one DQL type +``` +type Person { + Person.name + Person.friends +} +``` + +Once again, the DQL type is just a declaration of the list of predicates that one can expect to be present in a node of having ``dgraph.type`` equal ``Person``. + +The default mapping can be customized by using the [@dgraph directive](/graphql/schema/directives/directive-dgraph/). + + +#### GraphQL ID type and Dgraph `uid` +Person.id is not part of the Person DQL type: internally Dgraph is using ``uid`` predicate as unique identifier for every node in the graph. Dgraph returns the value of ``uid`` when a GraphQL field of type ID is requested. + +#### @search directive and predicate indexes + +`@search` directive tells Dgraph what search to build into your GraphQL API. +```graphql +type Person { + name: String @search(by: [hash]) + ... +``` +Is simply translated into a prediate index specification in the Dgraph schema: +``` +Person.name: string @index(hash) . +``` + +#### Constraints +DQL does not have 'non nullable' constraint ``!`` nor 'unique' constraint. Constraints on the graph are handled by correctly using ``upsert`` operation in DQL. + +#### DQL queries +You can use DQL to query the data generated by the GraphQL API operations. +For example the GraphQL Query +```graphql +query { + queryPerson { + id + name + friends { + id + name + } + } +} +``` +can be executed in DQL +```graphql +{ + queryPerson(func: type(Person)) { + id: uid + name: Person.name + friends: Person.friends { + id: uid + name: Person.name + } + } +} +``` + +Note that in this query, we are using ``aliases`` such as ``name: Person.name`` to name the predicates in the JSON response,as they are declared in the GraphQL schema. + +#### GraphQL Interface +DQL does not have the concept of interfaces. + +Considering the following GraphQL schema : +```graphql +interface Location { + id: ID! + geoloc: Point +} + +type Property implements Location { + price: Float +} +``` +The predicates and types generated for a ``Property`` are: + + +```graphql +Location.geoloc: geo . +Location.name: string . +Property.price: float . +type Property { + Location.name + Location.geoloc + Property.price +} +``` + +### Consequences +The fact that the GraphQL API backend is a graph in Dgraph, implies that you can use Dgraph DQL on the data that is also served by the GraphQL API operations. + +In particular, you can +- use Dgraph DQL mutations but also Dgraph's [import tools](/graphql/[import-data](import-data)) to populate the graph after you have deployed a GraphQL Schema. See [GraphQL data loading](/graphql/[graphql-data-loading](graphql-data-loading)) +- use DQL to query the graph in the context of authorization rules and custom resolvers. +- add knowledge to your graph such as meta-data, score, annotations, ..., but also relationships or relationships attributes (facets) that could be the result of similarity computation, threat detection a.s.o. The added data could be hidden from your GraphQL API clients but be available to logic written with DQL clients. +- break things using DQL: DQL is powerful and is bypassing constraints expressed in the GraphQL schema. You can for example delete a node predicate that is mandatory in the GraphQL API! Hopefully there are ways to secure who can read/write/delete predicates. ( see the [ACL](/enterprise-features/access-control-lists/)) section. +- fix things using DQL: this is especially useful when doing GraphQL Schema updates which require some [data migrations](/graphql/[graphql-data-migration](graphql-data-migration)). + + + diff --git a/docusaurus-docs/docs-graphql/graphql-dql/index.md b/docusaurus-docs/docs-graphql/graphql-dql/index.md new file mode 100644 index 00000000..eb4086fb --- /dev/null +++ b/docusaurus-docs/docs-graphql/graphql-dql/index.md @@ -0,0 +1,15 @@ +--- +title: "GraphQL - DQL interoperability" +description: "Dgraph Query Language (DQL) is Dgraph's proprietary language to add, modify, delete and fetch data." + +--- + +As aGraphQL developer, you can deploy a GraphQL Schema in Dgraph and immediately get a GraphQL API served on ``/graphql`` endpoint and a backend; you don't need to concern yourself with the powerful graph database running in the background. + +However, by leveraging the graph database and using Dgraph Query Language (DQL), the Dgraph’s proprietary language, you can address advanced use cases and overcome some limitations of the GraphQL specification. + +This section covers how to use DQL in the conjunction with GraphQL API, what are the best parctices and the points of attention. + +### In this section + + diff --git a/docusaurus-docs/docs-graphql/index.md b/docusaurus-docs/docs-graphql/index.md index 81ab56e3..ac839d04 100644 --- a/docusaurus-docs/docs-graphql/index.md +++ b/docusaurus-docs/docs-graphql/index.md @@ -1,17 +1,17 @@ --- -title: GraphQL API -description: Generate a GraphQL API and a graph backend from a single GraphQL schema. +title: "GraphQL API" +description: "Generate a GraphQL API and a graph backend from a single GraphQL schema." + --- -Dgraph lets you generate a GraphQL API and a graph backend from a single GraphQL schema, no resolvers or custom queries are needed. Dgraph automatically generates the GraphQL operations for queries and mutations +Dgraph lets you generate a GraphQL API and a graph backend from a single [GraphQL schema](/graphql/schema/dgraph-schema), no resolvers or custom queries are needed. Dgraph automatically generates the GraphQL operations for [queries](/graphql/queries/) and [mutations](/graphql/mutations/) -GraphQL developers can get started in minutes, and need not concern themselves with the powerful graph database running in the background. +GraphQL developers can [get started](/graphql/quick-start/) in minutes, and need not concern themselves with the powerful graph database running in the background. -Dgraph extends the [GraphQL specifications](https://spec.graphql.org/) with directives and allows you to customize the behavior of GraphQL operations using custom resolvers or to write you own resolver logic with Lambda resolvers. +Dgraph extends the [GraphQL specifications](https://spec.graphql.org/) with [directives](/graphql/schema/directives/) and allows you to customize the behavior of GraphQL operations using [custom resolvers](/graphql/custom/) or to write you own resolver logic with [Lambda resolvers](/graphql/lambda/lambda-overview). Dgraph also supports -- GraphQL subscriptions with the `@withSubscription` directive: a client application can execute a subscription query and receive real-time updates when the subscription query result is updated. -- Apollo federation: you can create a gateway GraphQL service that includes the Dgraph GraphQL API and other GraphQL services. - -Refer to the following pages for more details: +- [GraphQL subscriptions](/graphql/subscriptions/) with the `@withSubscription` directive: a client application can execute a subscription query and receive real-time updates when the subscription query result is updated. +- [Apollo federation](/graphql/federation/) : you can create a gateway GraphQL service that includes the Dgraph GraphQL API and other GraphQL services. +Refer to the following pages for more details: \ No newline at end of file diff --git a/docusaurus-docs/docs-graphql/lambda/field.md b/docusaurus-docs/docs-graphql/lambda/field.md new file mode 100644 index 00000000..575683fe --- /dev/null +++ b/docusaurus-docs/docs-graphql/lambda/field.md @@ -0,0 +1,202 @@ +--- +title: "Lambda Fields" +description: "Start with lambda resolvers by defining it in your GraphQL schema. Then define your JavaScript mutation function and add it as a resolver in your JS source code." + +--- + +### Schema + +To set up a lambda function, first you need to define it on your GraphQL schema by using the `@lambda` directive. + +For example, to define a lambda function for the `rank` and `bio` fields in `Author`: + +```graphql +type Author { + id: ID! + name: String! @search(by: [hash, trigram]) + dob: DateTime @search + reputation: Float @search + bio: String @lambda + rank: Int @lambda + isMe: Boolean @lambda +} +``` + +You can also define `@lambda` fields on interfaces, as follows: + +```graphql +interface Character { + id: ID! + name: String! @search(by: [exact]) + bio: String @lambda +} + +type Human implements Character { + totalCredits: Float +} + +type Droid implements Character { + primaryFunction: String +} +``` + +### Resolvers + +After the schema is ready, you can define your JavaScript mutation function and add it as a resolver in your JS source code. +To add the resolver you can use either the `addGraphQLResolvers` or `addMultiParentGraphQLResolvers` methods. + +:::note +A Lambda Field resolver can use a combination of `parents`, `parent`, `dql`, or `graphql` inside the function. +::: + +:::tip +This example uses `parent` for the resolver function. You can find additional resolver examples using `dql` in the [Lambda queries article](/graphql/[query](query)), and using `graphql` in the [Lambda mutations article](/graphql/[mutation](mutation)). +::: + +For example, to define JavaScript lambda functions for... +- `Author`, +- `Character`, +- `Human`, and +- `Droid` + +...and add them as resolvers, do the following: + +```javascript +const authorBio = ({parent: {name, dob}}) => `My name is ${name} and I was born on ${dob}.` +const characterBio = ({parent: {name}}) => `My name is ${name}.` +const humanBio = ({parent: {name, totalCredits}}) => `My name is ${name}. I have ${totalCredits} credits.` +const droidBio = ({parent: {name, primaryFunction}}) => `My name is ${name}. My primary function is ${primaryFunction}.` + +self.addGraphQLResolvers({ + "Author.bio": authorBio, + "Character.bio": characterBio, + "Human.bio": humanBio, + "Droid.bio": droidBio +}) +``` + +For example, you can add a resolver for `rank` using a `graphql` call, as follows: + +```javascript +async function rank({parents}) { + const idRepList = parents.map(function (parent) { + return {id: parent.id, rep: parent.reputation} + }); + const idRepMap = {}; + idRepList.sort((a, b) => a.rep > b.rep ? -1 : 1) + .forEach((a, i) => idRepMap[a.id] = i + 1) + return parents.map(p => idRepMap[p.id]) +} + +self.addMultiParentGraphQLResolvers({ + "Author.rank": rank +}) +``` + +The following example demonstrates using the client-provided JWT to return `true` if the custom claim +for `USER` from the JWT matches the `id` of the `Author`. + +```javascript +async function isMe({ parent, authHeader }) { + if (!authHeader) return false; + if (!authHeader.value) return false; + const headerValue = authHeader.value; + if (headerValue === "") return false; + const base64Url = headerValue.split(".")[1]; + const base = base64Url.replace(/-/g, "+").replace(/_/g, "/"); + const allClaims = JSON.parse(atob(base64)); + if (!allClaims["https://my.app.io/jwt/claims"]) return false; + const customClaims = allClaims["https://my.app.io/jwt/claims"]; + return customClaims.USER === parent.id; +} + +self.addGraphQLResolvers({ + "Author.isMe": isMe, +}); +``` + +### Example + +For example, if you execute the following GraphQL query: + +```graphql +query { + queryAuthor { + name + bio + rank + isMe + } +} +``` + +...you should see a response such as the following: + +```json +{ + "queryAuthor": [ + { + "name":"Ann Author", + "bio":"My name is Ann Author and I was born on 2000-01-01T00:00:00Z.", + "rank":3, + "isMe": false + } + ] +} +``` + +In the same way, if you execute the following GraphQL query on the `Character` interface: + +```graphql +query { + queryCharacter { + name + bio + } +} +``` + +...you should see a response such as the following: + +```json +{ + "queryCharacter": [ + { + "name":"Han", + "bio":"My name is Han." + }, + { + "name":"R2-D2", + "bio":"My name is R2-D2." + } + ] +} +``` + +:::note +The `Human` and `Droid` types will inherit the `bio` lambda field from the `Character` interface. +::: + +For example, if you execute a `queryHuman` query with a selection set containing `bio`, then the lambda function registered for `Human.bio` is executed, as follows: + +```graphql +query { + queryHuman { + name + bio + } +} +``` + +This query generates the following response: + +```json +{ + "queryHuman": [ + { + "name": "Han", + "bio": "My name is Han. I have 10 credits." + } + ] +} +``` diff --git a/docusaurus-docs/docs-graphql/lambda/index.md b/docusaurus-docs/docs-graphql/lambda/index.md new file mode 100644 index 00000000..480879ff --- /dev/null +++ b/docusaurus-docs/docs-graphql/lambda/index.md @@ -0,0 +1,4 @@ +--- +title: "Lambda Resolvers" + +--- diff --git a/docusaurus-docs/docs-graphql/lambda/lambda-overview.md b/docusaurus-docs/docs-graphql/lambda/lambda-overview.md new file mode 100644 index 00000000..f0098ef4 --- /dev/null +++ b/docusaurus-docs/docs-graphql/lambda/lambda-overview.md @@ -0,0 +1,300 @@ +--- +title: "Dgraph Lambda Overview" +description: "Lambda provides a way to write custom logic in JavaScript, integrate it with your GraphQL schema, and execute it using the GraphQL API in a few easy steps." + +--- + +Lambda provides a way to write your custom logic in JavaScript, integrate it with your GraphQL schema, and execute it using the GraphQL API in a few easy steps: + +1. Set up a Dgraph cluster with a working lambda server (not required for [Dgraph Cloud](https://dgraph.io/cloud) users) +2. Declare lambda queries, mutations, and fields in your GraphQL schema as needed +3. Define lambda resolvers for them in a JavaScript file + +This also simplifies the job of developers, as they can build a complex backend that is rich with business logic, without setting up multiple different services. Also, you can build your backend in JavaScript, which means you can build both your frontend and backend using the same language. + +Dgraph doesn't execute your custom logic itself. It makes external HTTP requests to a user-defined lambda server. [Dgraph Cloud](https://dgraph.io/cloud) will do all of this for you. + +:::tip +If you want to deploy your own lambda server, you can find the implementation of Dgraph Lambda in our [open-source repository](https://github.com/dgraph-io/dgraph-lambda). Please refer to the documentation on [setting up a lambda server](/graphql/lambda/server) for more details. +::: + +:::note +If you're using [Dgraph Cloud](https://dgraph.io/cloud), the final compiled script file must be under 500Kb +::: + +## Declaring lambda in a GraphQL schema + +There are three places where you can use the `@lambda` directive and thus tell Dgraph where to apply custom JavaScript logic. + +- You can add lambda fields to your types and interfaces, as follows: + +```graphql +type MyType { + ... + customField: String @lambda +} +``` + +- You can add lambda queries to the Query type, as follows: + +```graphql +type Query { + myCustomQuery(...): QueryResultType @lambda +} +``` + +- You can add lambda mutations to the Mutation type, as follows: + +```graphql +type Mutation { + myCustomMutation(...): MutationResult @lambda +} +``` + +## Defining lambda resolvers in JavaScript + +A lambda resolver is a user-defined JavaScript function that performs custom actions over the GraphQL types, interfaces, queries, and mutations. There are two methods to register JavaScript resolvers: + +- `self.addGraphQLResolvers` +- `self.addMultiParentGraphQLResolvers` + +:::tip +Functions `self.addGraphQLResolvers` and `self.addMultiParentGraphQLResolvers` can be called multiple times in your resolver code. +::: + +### addGraphQLResolvers + +The `self.addGraphQLResolvers` method takes an object as an argument, which maps a resolver name to the resolver function that implements it. The resolver functions registered using `self.addGraphQLResolvers` receive `{ parent, args, graphql, dql }` as argument: + +- `parent`, the parent object for which to resolve the current lambda field registered using `addGraphQLResolver`. +The `parent` receives all immediate fields of that object, whether or not they were actually queried. +Available only for types and interfaces (`null` for queries and mutations) +- `args`, the set of arguments for lambda queries and mutations +- `graphql`, a function to execute auto-generated GraphQL API calls from the lambda server. The user's auth header is passed back to the `graphql` function, so this can be used securely +- `dql`, provides an API to execute DQL from the lambda server +- `authHeader`, provides the JWT key and value of the auth header passed from + the client + +The `addGraphQLResolvers` can be represented with the following TypeScript types: + +```TypeScript +type GraphQLResponse { + data?: Record + errors?: { message: string }[] +} + +type AuthHeader { + key: string + value: string +} + +type GraphQLEventWithParent = { + parent: Record | null + args: Record + graphql: (query: string, vars?: Record, authHeader?: AuthHeader) => Promise + dql: { + query: (dql: string, vars?: Record) => Promise + mutate: (dql: string) => Promise + } + authHeader: AuthHeader +} + +function addGraphQLResolvers(resolvers: { + [key: string]: (e: GraphQLEventWithParent) => any; +}): void +``` + +:::tip +`self.addGraphQLResolvers` is the default choice for registering resolvers when the result of the lambda for each parent is independent of other parents. +::: + +Each resolver function should return data in the exact format as the return type of GraphQL field, query, or mutation for which it is being registered. + +In the following example, the resolver function `myTypeResolver` registered for the `customField` field in `MyType` returns a string because the return type of that field in the GraphQL schema is `String`: + +```javascript +const myTypeResolver = ({parent: {customField}}) => `My value is ${customField}.` + +self.addGraphQLResolvers({ + "MyType.customField": myTypeResolver +}) +``` + +Another resolver example using a `graphql` call: + +```javascript +async function todoTitles({ graphql }) { + const results = await graphql('{ queryTodo { title } }') + return results.data.queryTodo.map(t => t.title) +} + +self.addGraphQLResolvers({ + "Query.todoTitles": todoTitles +}) +``` + +### addMultiParentGraphQLResolvers + +The `self.addMultiParentGraphQLResolvers` is useful in scenarios where you want to perform computations involving all the parents returned from Dgraph for a lambda field. This is useful in two scenarios: + +- When you want to perform a computation between parents +- When you want to execute a complex query, and want to optimize it by firing a single query for all the parents + +This method takes an object as an argument, which maps a resolver name to the resolver function that implements it. The resolver functions registered using this method receive `{ parents, args, graphql, dql }` as argument: + +- `parents`, a list of parent objects for which to resolve the current lambda field registered using `addMultiParentGraphQLResolvers`. Available only for types and interfaces (`null` for queries and mutations) +- `args`, the set of arguments for lambda queries and mutations (`null` for types and interfaces) +- `graphql`, a function to execute auto-generated GraphQL API calls from the lambda server +- `dql`, provides an API to execute DQL from the lambda server +- `authHeader`, provides the JWT key and value of the auth header passed from + the client + +The `addMultiParentGraphQLResolvers` can be represented with the following TypeScript types: + +```TypeScript +type GraphQLResponse { + data?: Record + errors?: { message: string }[] +} + +type AuthHeader { + key: string + value: string +} + +type GraphQLEventWithParents = { + parents: (Record)[] | null + args: Record + graphql: (query: string, vars?: Record, authHeader?: AuthHeader) => Promise + dql: { + query: (dql: string, vars?: Record) => Promise + mutate: (dql: string) => Promise + } + authHeader: AuthHeader +} + +function addMultiParentGraphQLResolvers(resolvers: { + [key: string]: (e: GraphQLEventWithParents) => any; +}): void +``` + +:::note +This method should not be used for lambda queries or lambda mutations. +::: + +Each resolver function should return data as a list of the return type of GraphQL field for which it is being registered. + +In the following example, the resolver function `rank()` registered for the `rank` field in `Author`, returns a list of integers because the return type of that field in the GraphQL schema is `Int`: + +```graphql +type Author { + id: ID! + name: String! @search(by: [hash, trigram]) + reputation: Float @search + rank: Int @lambda +} +``` + +```javascript +import { sortBy } from 'lodash'; + +/* +This function computes the rank of each author based on the reputation of the author relative to other authors. +*/ +async function rank({parents}) { + const idRepMap = {}; + sortBy(parents, 'reputation').forEach((parent, i) => idRepMap[parent.id] = parents.length - i) + return parents.map(p => idRepMap[p.id]) +} + +self.addMultiParentGraphQLResolvers({ + "Author.rank": rank +}) +``` + +:::note +Scripts containing import packages (such as the example above) require compilation using Webpack. +::: + +The following example resolver uses a `dql` call: + +```javascript +async function reallyComplexDql({parents, dql}) { + const ids = parents.map(p => p.id); + const someComplexResults = await dql.query(`really-complex-query-here with ${ids}`); + return parents.map(parent => someComplexResults[parent.id]) +} + +self.addMultiParentGraphQLResolvers({ + "MyType.reallyComplexProperty": reallyComplexDql +}) +``` + +The following resolver example uses a `graphql` call and manually overrides the `authHeader` provided by the client: + +```javascript +async function secretGraphQL({ parents, graphql }) { + const ids = parents.map((p) => p.id); + const secretResults = await graphql( + `query myQueryName ($ids: [ID!]) { + queryMyType(filter: { id: $ids }) { + id + controlledEdge { + myField + } + } + }`, + { ids }, + { + key: 'X-My-App-Auth' + value: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwczovL215LmFwcC5pby9qd3QvY2xhaW1zIjp7IlVTRVIiOiJmb28ifSwiZXhwIjoxODAwMDAwMDAwLCJzdWIiOiJ0ZXN0IiwibmFtZSI6IkpvaG4gRG9lIDIiLCJpYXQiOjE1MTYyMzkwMjJ9.wI3857KzwjtZAtOjng6MnzKVhFSqS1vt1SjxUMZF4jc' + } + ); + return parents.map((parent) => { + const secretRes = secretResults.data.find(res => res.id === parent.id) + parent.secretProperty = null + if (secretRes) { + if (secretRes.controlledEdge) { + parent.secretProperty = secretRes.controlledEdge.myField + } + } + return parent + }); +} +self.addMultiParentGraphQLResolvers({ + "MyType.secretProperty": secretGraphQL, +}); +``` + +## Example + +For example, if you execute the following lambda query: + +```graphql +query { + queryMyType { + customField + } +} +``` + +...you should see a response such as the following: + +```json +{ + "queryMyType": [ + { + "customField":"My value is Lambda Example" + } + ] +} +``` + +## Learn more + +To learn more about the `@lambda` directive, see: + +* [Lambda fields](/graphql/lambda/field) +* [Lambda queries](/graphql/lambda/query) +* [Lambda mutations](/graphql/lambda/mutation) +* [Lambda server setup](/graphql/lambda/server) diff --git a/docusaurus-docs/docs-graphql/lambda/mutation.md b/docusaurus-docs/docs-graphql/lambda/mutation.md new file mode 100644 index 00000000..20d62e52 --- /dev/null +++ b/docusaurus-docs/docs-graphql/lambda/mutation.md @@ -0,0 +1,99 @@ +--- +title: "Lambda Mutations" +description: "Ready to use lambdas for mutations? This documentation takes you through the schemas, resolvers, and examples." + +--- + +### Schema + +To set up a lambda mutation, first you need to define it on your GraphQL schema by using the `@lambda` directive. + +:::note +`add`, `update`, and `delete` are reserved prefixes and they can't be used to define Lambda mutations. +::: + +For example, to define a lambda mutation for `Author` that creates a new author with a default `reputation` of `3.0` given just the `name`: + +```graphql +type Author { + id: ID! + name: String! @search(by: [hash, trigram]) + dob: DateTime + reputation: Float +} + +type Mutation { + newAuthor(name: String!): ID! @lambda +} +``` + +### Resolver + +Once the schema is ready, you can define your JavaScript mutation function and add it as resolver in your JS source code. +To add the resolver you can use either the `addGraphQLResolvers` or `addMultiParentGraphQLResolvers` methods. + +:::note +A Lambda Mutation resolver can use a combination of `parents`, `args`, `dql`, or `graphql` inside the function. +::: + +:::tip +This example uses `graphql` for the resolver function. You can find additional resolver examples using `dql` in the [Lambda queries article](/graphql/[query](query)), and using `parent` in the [Lambda fields article](/graphql/[field](field)). +::: + +For example, to define the JavaScript `newAuthor()` lambda function and add it as resolver: + +```javascript +async function newAuthor({args, graphql}) { + // lets give every new author a reputation of 3 by default + const results = await graphql(`mutation ($name: String!) { + addAuthor(input: [{name: $name, reputation: 3.0 }]) { + author { + id + reputation + } + } + }`, {"name": args.name}) + return results.data.addAuthor.author[0].id +} + +self.addGraphQLResolvers({ + "Mutation.newAuthor": newAuthor +}) +``` + +Alternatively, you can use `dql.mutate` to achieve the same results: + +```javascript +async function newAuthor({args, dql, graphql}) { + // lets give every new author a reputation of 3 by default + const res = await dql.mutate(`{ + set { + _:newAuth "${args.name}" . + _:newAuth "3.0" . + _:newAuth "Author" . + } + }`); + return res.data.uids.newAuth +} +``` + +### Example + +Finally, if you execute this lambda mutation a new author `Ken Addams` with `reputation=3.0` should be added to the database: + +```graphql +mutation { + newAuthor(name: "Ken Addams") +} +``` + +Afterwards, if you query the GraphQL database for `Ken Addams`, you would see: + +```json +{ + "getAuthor": { + "name":"Ken Addams", + "reputation":3.0 + } +} +``` diff --git a/docusaurus-docs/docs-graphql/lambda/query.md b/docusaurus-docs/docs-graphql/lambda/query.md new file mode 100644 index 00000000..9c93908e --- /dev/null +++ b/docusaurus-docs/docs-graphql/lambda/query.md @@ -0,0 +1,88 @@ +--- +title: "Lambda Queries" +description: "Get started with the @lambda directive for queries. This documentation takes you through the schemas, resolvers, and examples." + +--- + +### Schema + +To set up a lambda query, first you need to define it on your GraphQL schema by using the `@lambda` directive. + +:::note +`get`, `query`, and `aggregate` are reserved prefixes and they can't be used to define Lambda queries. +::: + +For example, to define a lambda query for `Author` that finds out authors given an author's `name`: + +```graphql +type Author { + id: ID! + name: String! @search(by: [hash, trigram]) + dob: DateTime + reputation: Float +} + +type Query { + authorsByName(name: String!): [Author] @lambda +} +``` + +### Resolver + +Once the schema is ready, you can define your JavaScript query function and add it as resolver in your JS source code. +To add the resolver you can use either the `addGraphQLResolvers` or `addMultiParentGraphQLResolvers` methods. + +:::note +A Lambda Query resolver can use a combination of `parents`, `args`, `dql`, or `graphql` inside the function. +::: + +:::tip +This example uses `dql` for the resolver function. You can find additional resolver examples using `parent` in the [Lambda fields article](/graphql/[query](query)), and using `graphql` in the [Lambda mutations article](/graphql/[mutation](mutation)). +::: + +For example, to define the JavaScript `authorsByName()` lambda function and add it as resolver: + +```javascript +async function authorsByName({args, dql}) { + const results = await dql.query(`query queryAuthor($name: string) { + queryAuthor(func: type(Author)) @filter(eq(Author.name, $name)) { + name: Author.name + dob: Author.dob + reputation: Author.reputation + } + }`, {"$name": args.name}) + return results.data.queryAuthor +} + +self.addGraphQLResolvers({ + "Query.authorsByName": authorsByName, +}) +``` + +### Example + +Finally, if you execute this lambda query + +```graphql +query { + authorsByName(name: "Ann Author") { + name + dob + reputation + } +} +``` + +You should see a response such as + +```json +{ + "authorsByName": [ + { + "name":"Ann Author", + "dob":"2000-01-01T00:00:00Z", + "reputation":6.6 + } + ] +} +``` diff --git a/docusaurus-docs/docs-graphql/lambda/webhook.md b/docusaurus-docs/docs-graphql/lambda/webhook.md new file mode 100644 index 00000000..78cd09f4 --- /dev/null +++ b/docusaurus-docs/docs-graphql/lambda/webhook.md @@ -0,0 +1,101 @@ +--- +title: "Lambda Webhooks" +description: "Ready to use lambdas for webhooks? This documentation takes you through the schemas, resolvers, and examples." + +--- + +### Schema + +To set up a lambda webhook, you need to define it in your GraphQL schema by using the `@lambdaOnMutate` directive along with the mutation events (`add`/`update`/`delete`) you want to listen on. + +:::note +Lambda webhooks only listen for events from the root mutation. You can create a schema that is capable of creating deeply nested objects, but only the parent level webhooks will be evoked for the mutation. +::: + +For example, to define a lambda webhook for all mutation events (`add`/`update`/`delete`) on any `Author` object: + +```graphql +type Author @lambdaOnMutate(add: true, update: true, delete: true) { + id: ID! + name: String! @search(by: [hash, trigram]) + dob: DateTime + reputation: Float +} +``` + +### Resolver + +Once the schema is ready, you can define your JavaScript functions and add those as resolvers in your JS source code. +To add the resolvers you should use the `addWebHookResolvers`method. + +:::note +A Lambda Webhook resolver can use a combination of `event`, `dql`, `graphql` or `authHeader` inside the function. +::: + +#### Event object + +You also have access to the `event` object within the resolver. Depending on the value of `operation` field, only one of the fields (`add`/`update`/`delete`) will be part of the `event` object. The definition of `event` is as follows: + +``` +"event": { + "__typename": "", + "operation": "", + "commitTs": + "add": { + "rootUIDs": [], + "input": [] + }, + "update": { + "rootUIDs": [], + "setPatch": , + "removePatch": + }, + "delete": { + "rootUIDs": [] + } +``` + +#### Resolver examples + +For example, to define JavaScript lambda functions for each mutation event for which `@lambdaOnMutate` is enabled and add those as resolvers: + +```javascript +async function addAuthorWebhook({event, dql, graphql, authHeader}) { + // execute what you want on addition of an author + // maybe send a welcome mail to the author + +} + +async function updateAuthorWebhook({event, dql, graphql, authHeader}) { + // execute what you want on update of an author + // maybe send a mail to the author informing that few details have been updated + +} + +async function deleteAuthorWebhook({event, dql, graphql, authHeader}) { + // execute what you want on deletion of an author + // maybe mail the author saying they have been removed from the platform + +} + +self.addWebHookResolvers({ + "Author.add": addAuthorWebhook, + "Author.update": updateAuthorWebhook, + "Author.delete": deleteAuthorWebhook, +}) +``` + +### Example + +Finally, if you execute an `addAuthor` mutation, the `add` operation mapped to the `addAuthorWebhook` resolver will be triggered: + +```graphql +mutation { + addAuthor(input:[{name: "Ken Addams"}]) { + author { + id + name + } + } +} +``` diff --git a/docusaurus-docs/docs-graphql/mutations/add.md b/docusaurus-docs/docs-graphql/mutations/add.md new file mode 100644 index 00000000..061bff60 --- /dev/null +++ b/docusaurus-docs/docs-graphql/mutations/add.md @@ -0,0 +1,84 @@ +--- +title: "Add Mutations" +description: "Add mutations allows you to add new objects of a particular type. Dgraph automatically generates input and return types in the schema for the add mutation" + +--- + +Add mutations allow you to add new objects of a particular type. + +We use the following schema to demonstrate some examples. + +**Schema**: +```graphql +type Author { + id: ID! + name: String! @search(by: [hash]) + dob: DateTime + posts: [Post] +} + +type Post { + postID: ID! + title: String! @search(by: [term, fulltext]) + text: String @search(by: [fulltext, term]) + datePublished: DateTime +} +``` + +Dgraph automatically generates input and return types in the schema for the `add` mutation, +as shown below: +```graphql +addPost(input: [AddPostInput!]!): AddPostPayload + +input AddPostInput { + title: String! + text: String + datePublished: DateTime +} + +type AddPostPayload { + post(filter: PostFilter, order: PostOrder, first: Int, offset: Int): [Post] + numUids: Int +} +``` + +**Example**: Add mutation on single type with embedded value +```graphql +mutation { + addAuthor(input: [{ name: "A.N. Author", posts: []}]) { + author { + id + name + } + } +} +``` + +**Example**: Add mutation on single type using variables +```graphql +mutation addAuthor($author: [AddAuthorInput!]!) { + addAuthor(input: $author) { + author { + id + name + } + } +} +``` +Variables: +```json +{ "author": + { "name": "A.N. Author", + "dob": "2000-01-01", + "posts": [] + } +} +``` + +:::note +You can convert an `add` mutation to an `upsert` mutation by setting the value of the input variable `upsert` to `true`. For more information, see [Upsert Mutations](/graphql/mutations/upsert). +::: + +## Examples + +You can refer to the following [link](https://github.com/dgraph-io/dgraph/blob/main/graphql/resolve/add_mutation_test.yaml) for more examples. diff --git a/docusaurus-docs/docs-graphql/mutations/deep.md b/docusaurus-docs/docs-graphql/mutations/deep.md new file mode 100644 index 00000000..a1106634 --- /dev/null +++ b/docusaurus-docs/docs-graphql/mutations/deep.md @@ -0,0 +1,98 @@ +--- +title: "Deep Mutations" +description: "You can perform deep mutations at multiple levels. Deep mutations do not alter linked objects, but they can add deeply-nested new objects or link to existing objects." + +--- + +You can perform deep mutations at multiple levels. Deep mutations do not alter linked objects, but they can add deeply-nested new objects or link to existing objects. To update an existing nested object, use the update mutation for its type. + +We use the following schema to demonstrate some examples. + +## **Schema**: +```graphql +type Author { + id: ID! + name: String! @search(by: [hash]) + dob: DateTime + posts: [Post] +} + +type Post { + postID: ID! + title: String! @search(by: [term, fulltext]) + text: String @search(by: [fulltext, term]) + datePublished: DateTime +} +``` + +### **Example**: Adding deeply nested post with new author mutation using variables +```graphql +mutation addAuthorWithPost($author: addAuthorInput!) { + addAuthor(input: [$author]) { + author { + id + name + posts { + title + text + } + } + } +} +``` + +Variables: + +```json +{ "author": + { "name": "A.N. Author", + "dob": "2000-01-01", + "posts": [ + { + "title": "New post", + "text": "A really new post" + } + ] + } +} +``` + +### **Example**: Update mutation on deeply nested post and link to an existing author using variables + +The following example assumes that the post with the postID of `0x456` already exists, and is not currently nested under the author having the id of `0x123`. + +:::note +This syntax does not remove any other existing posts, it just adds the existing post to any that may already be nested. +::: + +```graphql +mutation updateAuthorWithExistingPost($patch: UpdateAuthorInput!) { + updateAuthor(input: $patch) { + author { + id + posts { + title + text + } + } + } +} +``` +Variables: +```json +{ "patch": + { "filter": { + "id": ["0x123"] + }, + "set": { + "posts": [ + { + "postID": "0x456" + } + ] + } + } +} +``` + +The example query above can't modify the existing post's title or text. To modify the post's title or text, use the `updatePost` mutation either alongside the mutation above, or as a separate transaction. diff --git a/docusaurus-docs/docs-graphql/mutations/delete.md b/docusaurus-docs/docs-graphql/mutations/delete.md new file mode 100644 index 00000000..de9ddb85 --- /dev/null +++ b/docusaurus-docs/docs-graphql/mutations/delete.md @@ -0,0 +1,60 @@ +--- +title: "Delete Mutations" + +--- + +Delete Mutations allow you to delete objects of a particular type. + +We use the following schema to demonstrate some examples. + +**Schema**: +```graphql +type Author { + id: ID! + name: String! @search(by: [hash]) + dob: DateTime + posts: [Post] +} + +type Post { + postID: ID! + title: String! @search(by: [term, fulltext]) + text: String @search(by: [fulltext, term]) + datePublished: DateTime +} +``` + +Dgraph automatically generates input and return types in the schema for the `delete` mutation. +Delete mutations take `filter` as an input to select specific objects and returns the state of the objects before deletion. +```graphql +deleteAuthor(filter: AuthorFilter!): DeleteAuthorPayload + +type DeleteAuthorPayload { + author(filter: AuthorFilter, order: AuthorOrder, first: Int, offset: Int): [Author] + msg: String + numUids: Int +} +``` + +**Example**: Delete mutation using variables +```graphql +mutation deleteAuthor($filter: AuthorFilter!) { + deleteAuthor(filter: $filter) { + msg + author { + name + dob + } + } +} +``` +Variables: +```json +{ "filter": + { "name": { "eq": "A.N. Author" } } +} +``` + +## Examples + +You can refer to the following [link](https://github.com/dgraph-io/dgraph/blob/main/graphql/resolve/delete_mutation_test.yaml) for more examples. diff --git a/docusaurus-docs/docs-graphql/mutations/index.md b/docusaurus-docs/docs-graphql/mutations/index.md new file mode 100644 index 00000000..ffbad157 --- /dev/null +++ b/docusaurus-docs/docs-graphql/mutations/index.md @@ -0,0 +1,4 @@ +--- +title: "Mutations" + +--- diff --git a/docusaurus-docs/docs-graphql/mutations/mutations-overview.md b/docusaurus-docs/docs-graphql/mutations/mutations-overview.md new file mode 100644 index 00000000..e355d8fb --- /dev/null +++ b/docusaurus-docs/docs-graphql/mutations/mutations-overview.md @@ -0,0 +1,251 @@ +--- +title: "Mutations Overview" +description: "Mutations can be used to insert, update, or delete data. Dgraph automatically generates GraphQL mutation for each type that you define in your schema." + +--- + +Mutations allow you to modify server-side data, and it also returns an object based on the operation performed. It can be used to insert, update, or delete data. Dgraph automatically generates GraphQL mutations for each type that you define in your schema. The mutation field returns an object type that allows you to query for nested fields. This can be useful for fetching an object's new state after an add/update, or to get the old state of an object before a delete. + +**Example** + +```graphql +type Author { + id: ID! + name: String! @search(by: [hash]) + dob: DateTime + posts: [Post] +} + +type Post { + postID: ID! + title: String! @search(by: [term, fulltext]) + text: String @search(by: [fulltext, term]) + datePublished: DateTime +} +``` + +The following mutations would be generated from the above schema. + +```graphql +type Mutation { + addAuthor(input: [AddAuthorInput!]!): AddAuthorPayload + updateAuthor(input: UpdateAuthorInput!): UpdateAuthorPayload + deleteAuthor(filter: AuthorFilter!): DeleteAuthorPayload + addPost(input: [AddPostInput!]!): AddPostPayload + updatePost(input: UpdatePostInput!): UpdatePostPayload + deletePost(filter: PostFilter!): DeletePostPayload +} + +type AddAuthorPayload { + author(filter: AuthorFilter, order: AuthorOrder, first: Int, offset: Int): [Author] + numUids: Int +} + +type AddPostPayload { + post(filter: PostFilter, order: PostOrder, first: Int, offset: Int): [Post] + numUids: Int +} + +type DeleteAuthorPayload { + author(filter: AuthorFilter, order: AuthorOrder, first: Int, offset: Int): [Author] + msg: String + numUids: Int +} + +type DeletePostPayload { + post(filter: PostFilter, order: PostOrder, first: Int, offset: Int): [Post] + msg: String + numUids: Int +} + +type UpdateAuthorPayload { + author(filter: AuthorFilter, order: AuthorOrder, first: Int, offset: Int): [Author] + numUids: Int +} + +type UpdatePostPayload { + post(filter: PostFilter, order: PostOrder, first: Int, offset: Int): [Post] + numUids: Int +} +``` + +## Input objects +Mutations require input data, such as the data, to create a new object or an object's ID to delete. Dgraph auto-generates the input object type for every type in the schema. + +```graphql +input AddAuthorInput { + name: String! + dob: DateTime + posts: [PostRef] +} + +mutation { + addAuthor( + input: { + name: "A.N. Author", + lastName: "2000-01-01", + } + ) + { + ... + } +} +``` + +## Return fields +Each mutation provides a set of fields that can be returned in the response. Dgraph auto-generates the return payload object type for every type in the schema. + +```graphql +type AddAuthorPayload { + author(filter: AuthorFilter, order: AuthorOrder, first: Int, offset: Int): [Author] + numUids: Int +} +``` + +## Multiple fields in mutations +A mutation can contain multiple fields, just like a query. While query fields are executed in parallel, mutation fields run in series, one after the other. This means that if we send two `updateAuthor` mutations in one request, the first is guaranteed to finish before the second begins. This ensures that we don't end up with a race condition with ourselves. If one of the mutations is aborted due error like transaction conflict, we continue performing the next mutations. + +**Example**: Mutation on multiple types +```graphql +mutation ($post: AddPostInput!, $author: AddAuthorInput!) { + addAuthor(input: [$author]) { + author { + name + } + } + addPost(input: [$post]) { + post { + postID + title + text + } + } +} +``` + +Variables: + +```json +{ + "author": { + "name": "A.N. Author", + "dob": "2000-01-01", + "posts": [] + }, + "post": { + "title": "Exciting post", + "text": "A really good post", + "author": { + "name": "A.N. Author" + } + } +} +``` + +## Union mutations + +Mutations can be used to add a node to a `union` field in a type. + +For the following schema, + +```graphql +enum Category { + Fish + Amphibian + Reptile + Bird + Mammal + InVertebrate +} + +interface Animal { + id: ID! + category: Category @search +} + +type Dog implements Animal { + breed: String @search +} + +type Parrot implements Animal { + repeatsWords: [String] +} + +type Human { + name: String! + pets: [Animal!]! +} + +union HomeMember = Dog | Parrot | Human + +type Home { + id: ID! + address: String + members: [HomeMember] +} +``` + +This is the mutation for adding `members` to the `Home` type: + +```graphql +mutation { + addHome(input: [ + { + "address": "United Street", + "members": [ + { "dogRef": { "category": Mammal, "breed": "German Shepherd"} }, + { "parrotRef": { "category": Bird, "repeatsWords": ["squawk"]} }, + { "humanRef": { "name": "Han Solo"} } + ] + } + ]) { + home { + address + members { + ... on Dog { + breed + } + ... on Parrot { + repeatsWords + } + ... on Human { + name + } + } + } + } +} +``` + +## Vector Embedding mutations + +For types with vector embeddings Dgraph automatically generates the add mutation. For this example of add mutation we use the following schema. + +```graphql +type User { + userID: ID! + name: String! + name_v: [Float!] @embedding @search(by: ["hnsw(metric: euclidean, exponent: 4)"]) +} + +mutation { +addUser(input: [ +{ name: "iCreate with a Mini iPad", name_v: [0.12, 0.53, 0.9, 0.11, 0.32] }, +{ name: "Resistive Touchscreen", name_v: [0.72, 0.89, 0.54, 0.15, 0.26] }, +{ name: "Fitness Band", name_v: [0.56, 0.91, 0.93, 0.71, 0.24] }, +{ name: "Smart Ring", name_v: [0.38, 0.62, 0.99, 0.44, 0.25] }]) + { + project { + id + name + name_v + } + } +} +``` + +Note: The embeddings are generated outside of Dgraph using any suitable machine learning model. + +## Examples + +You can refer to the following [link](https://github.com/dgraph-io/dgraph/tree/main/graphql/schema/testdata/schemagen) for more examples. diff --git a/docusaurus-docs/docs-graphql/mutations/update.md b/docusaurus-docs/docs-graphql/mutations/update.md new file mode 100644 index 00000000..7023a658 --- /dev/null +++ b/docusaurus-docs/docs-graphql/mutations/update.md @@ -0,0 +1,107 @@ +--- +title: "Update Mutations" +description: "Update mutations let you to update existing objects of a particular type. With update mutations, you can filter nodes and set and remove any field belonging to a type." + +--- + +Update mutations let you update existing objects of a particular type. With update mutations, you can filter nodes and set or remove any field belonging to a type. + +We use the following schema to demonstrate some examples. + +**Schema**: +```graphql +type Author { + id: ID! + name: String! @search(by: [hash]) + dob: DateTime + posts: [Post] +} + +type Post { + postID: ID! + title: String! @search(by: [term, fulltext]) + text: String @search(by: [fulltext, term]) + datePublished: DateTime +} +``` + +Dgraph automatically generates input and return types in the schema for the `update` mutation. Update mutations take `filter` as an input to select specific objects. You can specify `set` and `remove` operations on fields belonging to the filtered objects. It returns the state of the objects after updating. + +:::note +Executing an empty `remove {}` or an empty `set{}` doesn't have any effect on the update mutation. +::: + +```graphql +updatePost(input: UpdatePostInput!): UpdatePostPayload + +input UpdatePostInput { + filter: PostFilter! + set: PostPatch + remove: PostPatch +} + +type UpdatePostPayload { + post(filter: PostFilter, order: PostOrder, first: Int, offset: Int): [Post] + numUids: Int +} +``` + +### Set + +For example, an update `set` mutation using variables: + +```graphql +mutation updatePost($patch: UpdatePostInput!) { + updatePost(input: $patch) { + post { + postID + title + text + } + } +} +``` +Variables: +```json +{ "patch": + { "filter": { + "postID": ["0x123", "0x124"] + }, + "set": { + "text": "updated text" + } + } +} +``` + +### Remove + +For example an update `remove` mutation using variables: + +```graphql +mutation updatePost($patch: UpdatePostInput!) { + updatePost(input: $patch) { + post { + postID + title + text + } + } +} +``` +Variables: +```json +{ "patch": + { "filter": { + "postID": ["0x123", "0x124"] + }, + "remove": { + "text": "delete this text" + } + } +} +``` + +### Examples + +You can refer to the following [link](https://github.com/dgraph-io/dgraph/blob/main/graphql/resolve/update_mutation_test.yaml) for more examples. diff --git a/docusaurus-docs/docs-graphql/mutations/upsert.md b/docusaurus-docs/docs-graphql/mutations/upsert.md new file mode 100644 index 00000000..41183f50 --- /dev/null +++ b/docusaurus-docs/docs-graphql/mutations/upsert.md @@ -0,0 +1,106 @@ +--- +title: "Upsert Mutations" +description: "Upsert mutations allow you to perform `add` or `update` operations based on whether a particular ID exists in the database" + +--- + +Upsert mutations allow you to perform `add` or `update` operations based on whether a particular `ID` exists in the database. The IDs must be external IDs, defined using the `@id` directive in the schema. + +For example, to demonstrate how upserts work in GraphQL, take the following schema: + +**Schema** +```graphql +type Author { + id: String! @id + name: String! @search(by: [hash]) + posts: [Post] @hasInverse(field: author) +} + +type Post { + postID: String! @id + title: String! @search(by: [term, fulltext]) + text: String @search(by: [fulltext, term]) + author: Author! +} +``` + +Dgraph automatically generates input and return types in the schema for the `add` mutation, as shown below: + +```graphql +addPost(input: [AddPostInput!]!, upsert: Boolean): AddPostPayload + +input AddPostInput { + postID: String! + title: String! + text: String + author: AuthorRef! +} +``` + +Suppose you want to update the `text` field of a post with the ID `mm2`. But you also want to create a new post with that ID in case it doesn't already exist. To do this, you use the `addPost` mutation, but with an additional input variable `upsert`. + +This is a `Boolean` variable. Setting it to `true` will result in an upsert operation. + +It will perform an `update` mutation and carry out the changes you specify in your request if the particular ID exists. Otherwise, it will fall back to a default `add` operation and create a new `Post` with that ID and the details you provide. + +Setting `upsert` to `false` is the same as using a plain `add` operation—it'll either fail or succeed, depending on whether the ID exists or not. + +**Example**: Add mutation with `upsert` true: + +```graphql +mutation($post: [AddPostInput!]!) { + addPost(input: $post, upsert: true) { + post { + postID + title + text + author { + id + } + } + } +} +``` + +With variables: + +```json +{ + "post": + { + "postID": "mm2", + "title": "Second Post", + "text": "This is my second post, and updated with some new information.", + "author": { + "id": "micky" + } + } +} +``` + +If a post with the ID `mm2` exists, it will update the post with the new details. Otherwise, it'll create a new `Post` with that ID and the values you provided. In either case, you'll get the following response back: + +```graphql +"data": { + "addPost": { + "post": [ + { + "postID": "mm2", + "title": "Second Post", + "text": "This is my second post, and updated with some new information.", + "author": { + "id": "micky" + } + } + ] + } + } +``` + +:::note +* The default value of `upsert` will be `false`, for backward compatibility. +* The current behavior of `Add` and `Update` mutations is such that they do not update deep level nodes. So Add mutations with `upsert` set to `true` will only update values at the root level. +::: + +## Examples +You can refer to the following [link](https://github.com/dgraph-io/dgraph/blob/main/graphql/resolve/add_mutation_test.yaml) for more examples. diff --git a/docusaurus-docs/docs-graphql/queries/aggregate.md b/docusaurus-docs/docs-graphql/queries/aggregate.md new file mode 100644 index 00000000..35f42223 --- /dev/null +++ b/docusaurus-docs/docs-graphql/queries/aggregate.md @@ -0,0 +1,209 @@ +--- +title: "Aggregate Queries" +description: "Dgraph automatically generates aggregate queries for GraphQL schemas. These are compatible with the @auth directive." + +--- + +Dgraph automatically generates aggregate queries for GraphQL schemas. +Aggregate queries fetch aggregate data, including the following: + +* *Count queries* that let you count fields +satisfying certain criteria specified using a filter. +* *Advanced aggregate queries* that let you calculate the maximum, minimum, sum +and average of specified fields. + +Aggregate queries are compatible with the `@auth` directive and follow the same +authorization rules as the `query` keyword. You can also use filters with +aggregate queries, as shown in some of the examples provided below. + +## Count queries at root + +For every `type` defined in a GraphQL schema, Dgraph generates an aggregate query +`aggregate`. This query includes a `count` field, as well as +[advanced aggregate query fields](#advanced-aggregate-queries-at-root). + +### Examples + +Example: Fetch the total number of `posts`. + +```graphql + query { + aggregatePost { + count + } + } +``` + +Example: Fetch the number of `posts` whose titles contain `GraphQL`. + +```graphql + query { + aggregatePost(filter: { + title: { + anyofterms: "GraphQL" + } + }) { + count + } + } +``` + + +## Count queries for child nodes + +Dgraph also defines `Aggregate` fields for every field which +is of type `List[Type/Interface]` inside `query` queries, allowing +you to do a `count` on fields, or to use the [advanced aggregate queries](#advanced-aggregate-queries-for-child-nodes). + +### Examples + +Example: Fetch the number of `posts` for all authors along with their `name`. + +```graphql + query { + queryAuthor { + name + postsAggregate { + count + } + } + } +``` + +Example: Fetch the number of `posts` with a `score` greater than `10` for all +authors, along with their `name` + +```graphql + query { + queryAuthor { + name + postsAggregate(filter: { + score: { + gt: 10 + } + }) { + count + } + } + } +``` + +## Advanced aggregate queries at root + +For every `type` defined in the GraphQL schema, Dgraph generates an aggregate +query `aggregate` that includes advanced aggregate query +fields, and also includes a `count` field (see [Count queries at root](#count-queries-at-root)). Dgraph generates one or more advanced aggregate +query fields (`Min`, `Max`, `Sum` and +`Avg`) for fields in the schema that are typed as `Int`, `Float`, +`String` and `Datetime`. + +:::note +Advanced aggregate query fields are generated according to a field's type. +Fields typed as `Int` and `Float` get the following query fields: +`Max`, `Min`, `Sum` and `Avg`. +Fields typed as `String` and `Datetime` only get the `Max`, + `Min` query fields. +::: + +### Examples + +Example: Fetch the average number of `posts` written by authors: + +```graphql + query { + aggregateAuthor { + numPostsAvg + } + } +``` + +Example: Fetch the total number of `posts` by all authors, and the maximum +number of `posts` by any single `Author`: + +```graphql + query { + aggregateAuthor { + numPostsSum + numPostsMax + } + } +``` + +Example: Fetch the average number of `posts` for authors with more than 20 +`friends`: + +```graphql + query { + aggregateAuthor (filter: { + friends: { + gt: 20 + } + }) { + numPostsAvg + } + } +``` + + +## Advanced aggregate queries for child nodes + +Dgraph also defines aggregate `Aggregate` fields for child nodes +within `query` queries. This is done for each field that is of type +`List[Type/Interface]` inside `query` queries, letting you fetch +minimums, maximums, averages and sums for those fields. + +:::note +Aggregate query fields are generated according to a field's type. Fields typed +as `Int` and `Float` get the following query fields:`Max`, +`Min`, `Sum` and `Avg`. Fields typed as +`String` and `Datetime` only get the `Max`, `Min` query +fields. +::: + +### Examples + +Example: Fetch the minimum, maximum and average `score` of the `posts` for each +`Author`, along with each author's `name`. + +```graphql + query { + queryAuthor { + name + postsAggregate { + scoreMin + scoreMax + scoreAvg + } + } + } +``` + +Example: Fetch the date of the most recent post with a `score` greater than +`10` for all authors, along with the author's `name`. + +```graphql + query { + queryAuthor { + name + postsAggregate(filter: { + score: { + gt: 10 + } + }) { + datePublishedMax + } + } + } +``` + +## Aggregate queries on null data + +Aggregate queries against empty data return `null`. This is true for both the +`Aggregate` fields and `aggregate` queries generated by +Dgraph. + +So, in the examples above, the following is true: +* If there are no nodes of type `Author`, the `aggregateAuthor` query will + return null. +* If an `Author` has not written any posts, the field `postsAggregate` will be + null for that `Author`. diff --git a/docusaurus-docs/docs-graphql/queries/and-or-not.md b/docusaurus-docs/docs-graphql/queries/and-or-not.md new file mode 100644 index 00000000..545dd42f --- /dev/null +++ b/docusaurus-docs/docs-graphql/queries/and-or-not.md @@ -0,0 +1,92 @@ +--- +title: "And, Or and Not Operators in GraphQL" +description: "Every GraphQL search filter can use AND, OR and NOT operators." + +--- + +Every GraphQL search filter can use `and`, `or`, and `not` operators. + +GraphQL syntax uses infix notation, so: "a and b" is `a, and: { b }`, "a or b or c" is `a, or: { b, or: c }`, and "not" is a prefix (`not:`). + +The following example queries demonstrate the use of `and`, `or`, and `not` operators: + +Example: _"Posts that do not have "GraphQL" in the title"_ + +```graphql +queryPost(filter: { not: { title: { allofterms: "GraphQL"} } } ) { ... } +``` + +Example: _"Posts that have "GraphQL" or "Dgraph" in the title"_ + +```graphql +queryPost(filter: { + title: { allofterms: "GraphQL"}, + or: { title: { allofterms: "Dgraph" } } +} ) { ... } +``` + +Example: _"Posts that have "GraphQL" and "Dgraph" in the title"_ + +```graphql +queryPost(filter: { + title: { allofterms: "GraphQL"}, + and: { title: { allofterms: "Dgraph" } } +} ) { ... } +``` + +The `and` operator is implicit for a single filter object, if the fields don't overlap. For example, above the `and` is required because `title` is in both filters; whereas below, `and` is not required. + +```graphql +queryPost(filter: { + title: { allofterms: "GraphQL" }, + datePublished: { ge: "2020-06-15" } +} ) { ... } +``` + +Example: _"Posts that have "GraphQL" in the title, or have the tag "GraphQL" and mention "Dgraph" in the title"_ + +```graphql +queryPost(filter: { + title: { allofterms: "GraphQL"}, + or: { title: { allofterms: "Dgraph" }, tags: { eq: "GraphQL" } } +} ) { ... } +``` + +The `and` and `or` filter both accept a list of filters. Per the GraphQL specification, non-list filters are coerced into a list. This provides backwards-compatibility while allowing for more complex filters. + +Example: _"Query for posts that have `GraphQL` in the title but that lack the `GraphQL` tag, or that have `Dgraph` in the title but lack the `Dgraph` tag"_ + +```graphql +queryPost(filter: { + or: [ + { and: [{ title: { allofterms: "GraphQL" } }, { not: { tags: { eq: "GraphQL" } } }] } + { and: [{ title: { allofterms: "Dgraph" } }, { not: { tags: { eq: "Dgraph" } } }] } + ] +} ) { ... } +``` + +### Nesting + +Nested logic with the same `and`/`or` conjunction can be simplified into a single list. + +For example, the following complex query: + +``` +queryPost(filter: { + or: [ + { or: [ { foo: { eq: "A" } }, { bar: { eq: "B" } } ] }, + { or: [ { baz: { eq: "C" } }, { quz: { eq: "D" } } ] } + ] +} ) { ... } +``` +...can be simplified into the following simplified query syntax: +``` +queryPost(filter: { + or: [ + { foo: { eq: "A" } }, + { bar: { eq: "B" } }, + { baz: { eq: "C" } }, + { quz: { eq: "D" } } + ] +} ) { ... } +``` diff --git a/docusaurus-docs/docs-graphql/queries/cached-results.md b/docusaurus-docs/docs-graphql/queries/cached-results.md new file mode 100644 index 00000000..f3228dad --- /dev/null +++ b/docusaurus-docs/docs-graphql/queries/cached-results.md @@ -0,0 +1,41 @@ +--- +title: "Cached Results" +description: "Cached results can serve read-heavy workloads with complex queries to improve performance. This refers to external caching at the browser/CDN level" + +--- + +Cached results can be used to serve read-heavy workloads with complex queries to improve performance. When cached results are enabled for a query, the stored results are served if queried within the defined time-to-live (TTL) of the cached query. + +When using cached results, Dgraph will add the appropriate HTTP headers so the caching can be done at the browser or content delivery network (CDN) level. + + +:::note +Caching refers to external caching at the browser/CDN level. Internal caching at the database layer is not currently supported. +::: + +### Enabling cached results + +To enable the external result cache you need to add the `@cacheControl(maxAge: int)` directive at the top of your query. This directive adds the appropriate `Cache-Control` HTTP headers to the response, so that browsers and CDNs can cache the results. + +For example, the following query defines a cache with TTL of 15 seconds. + +```graphql +query @cacheControl(maxAge: 15){ + queryReview(filter: { comment: {alloftext: "Fantastic"}}) { + comment + by { + username + } + about { + name + } + } +} +``` + +Dgraph's returned HTTP headers: + +``` +Cache-Control: public,max-age=15 +Vary: Accept-Encoding +``` diff --git a/docusaurus-docs/docs-graphql/queries/cascade.md b/docusaurus-docs/docs-graphql/queries/cascade.md new file mode 100644 index 00000000..b9e7d8dc --- /dev/null +++ b/docusaurus-docs/docs-graphql/queries/cascade.md @@ -0,0 +1,136 @@ +--- +title: "@cascade Directive" +description: "The @cascade directive can be applied to fields. With the @cascade directive, nodes that don’t have all fields specified in the query are removed." + +--- + +The `@cascade` directive can be applied to fields. With the `@cascade` +directive, nodes that don’t have all fields specified in the query are removed. +This can be useful in cases where some filter was applied and some nodes might not +have all the listed fields. + +For example, the query below only returns the authors which have both `reputation` +and `posts`, where posts have `text`. Note that `@cascade` trickles down so if it's applied at the `queryAuthor` +level, it will automatically be applied at the `posts` level too. + +```graphql +{ + queryAuthor @cascade { + reputation + posts { + text + } + } +} +``` + +### Pagination + +Starting from v21.03, the `@cascade` directive supports pagination of query results. + +For example, to get to get the next 5 results after skipping the first 2 with all the fields non-null: + +```graphql +query { + queryTask(first: 5, offset: 2) @cascade { + name + completed + } +} +``` + +### Nested `@cascade` + +`@cascade` can also be used at nested levels, so the query below would return all authors +but only those posts which have both `text` and `id`. + +```graphql +{ + queryAuthor { + reputation + posts @cascade { + id + text + } + } +} +``` + +### Parameterized `@cascade` + +The `@cascade` directive can optionally take a list of fields as an argument. This changes the default behavior, considering only the supplied fields as mandatory instead of all the fields for a type. +Listed fields are automatically cascaded as a required argument to nested selection sets. + +In the example below, `name` is supplied in the `fields` argument. For an author to be in the query response, it must have a `name`, and if it has a `country` subfield, then that subfield must also have `name`. + +```graphql +{ + queryAuthor @cascade(fields:["name"]) { + reputation + name + country{ + Id + name + } + } +} +``` + +The query below only return those `posts` which have a non-null `text` field. + +```graphql +{ + queryAuthor { + reputation + name + posts @cascade(fields:["text"]) { + title + text + } + } +} +``` + +#### Nesting + +The cascading nature of field selection is overwritten by a nested `@cascade`. + +For example, the query below ensures that an author has the `reputation` and `name` fields, and, if it has a `posts` subfield, then that subfield must have a `text` field. + +```graphql +{ + queryAuthor @cascade(fields:["reputation","name"]) { + reputation + name + dob + posts @cascade(fields:["text"]) { + title + text + } + } +} +``` + + +#### Filtering + +Filters can be used with the `@cascade` directive if they are placed before it: + +```graphql +{ + queryAuthor (filter: { + name: { + anyofterms: "Alice Bob" + } + }) @cascade(fields:["reputation","name"]) { + reputation + name + dob + posts @cascade(fields:["text"]) { + title + text + } + } +} +``` + diff --git a/docusaurus-docs/docs-graphql/queries/index.md b/docusaurus-docs/docs-graphql/queries/index.md new file mode 100644 index 00000000..e7738e80 --- /dev/null +++ b/docusaurus-docs/docs-graphql/queries/index.md @@ -0,0 +1,4 @@ +--- +title: "Queries" + +--- \ No newline at end of file diff --git a/docusaurus-docs/docs-graphql/queries/order-page.md b/docusaurus-docs/docs-graphql/queries/order-page.md new file mode 100644 index 00000000..4a6c57ae --- /dev/null +++ b/docusaurus-docs/docs-graphql/queries/order-page.md @@ -0,0 +1,30 @@ +--- +title: "Order and Pagination" +description: "Every type with fields whose types can be ordered gets ordering built into the query and any list fields of that type." + +--- + +Every type with fields whose types can be ordered (`Int`, `Float`, `String`, `DateTime`) gets +ordering built into the query and any list fields of that type. Every query and list field +gets pagination with `first` and `offset` and ordering with `order` parameter. + +The `order` parameter is not required for pagination. + +For example, find the most recent 5 posts. + +```graphql +queryPost(order: { desc: datePublished }, first: 5) { ... } +``` + +Skip the first five recent posts and then get the next 10. + +```graphql +queryPost(order: { desc: datePublished }, offset: 5, first: 10) { ... } +``` + +It's also possible to give multiple orders. For example, sort by date and within each +date order the posts by number of likes. + +```graphql +queryPost(order: { desc: datePublished, then: { desc: numLikes } }, first: 5) { ... } +``` diff --git a/docusaurus-docs/docs-graphql/queries/persistent-queries.md b/docusaurus-docs/docs-graphql/queries/persistent-queries.md new file mode 100644 index 00000000..7e89d2ea --- /dev/null +++ b/docusaurus-docs/docs-graphql/queries/persistent-queries.md @@ -0,0 +1,68 @@ +--- +title: "Persistent Queries" +description: "Persistent queries significantly improve the performance of an application as the smaller hash signature reduces bandwidth utilization." + +--- + +Dgraph supports Persistent Queries. When a client uses persistent queries, the client only sends the hash of a query to the server. The server has a list of known hashes and uses the associated query accordingly. + +Persistent queries significantly improve the performance and the security of an application since the smaller hash signature reduces bandwidth utilization and speeds up client loading times. + +### Persisted Query logic + +The execution of Persistent Queries follows this logic: + +- If the `extensions` key is not provided in the `GET` request, Dgraph will process the request as usual +- If a `persistedQuery ` exists under the `extensions` key, Dgraph will try to process a Persisted Query: + - if no `sha256` hash is provided, process the query without persisting + - if the `sha256` hash is provided, try to retrieve the persisted query + +Example: + +```json +{ + "persistedQuery":{ + "sha256Hash":"b952c19b894e1aa89dc05b7d53e15ab34ee0b3a3f11cdf3486acef4f0fe85c52" + } +} +``` + +### Create + +To create a Persistent Query, both `query` and `sha256` must be provided. + +Dgraph will verify the hash and perform a lookup. If the query doesn't exist, Dgraph will store the query, provided that the `sha256` of the query is correct. Finally, Dgraph will process the query and return the results. + +Example: + +```sh +curl -g 'http://localhost:8080/graphql/?query={sample_query}&extensions={"persistedQuery":{"sha256Hash":"b952c19b894e1aa89dc05b7d53e15ab34ee0b3a3f11cdf3486acef4f0fe85c52"}}' +``` + +### Lookup + +If only a `sha256` is provided, Dgraph will do a look-up, and process the query if found. Otherwise you'll get a `PersistedQueryNotFound` error. + +Example: + +```sh +curl -g 'http://localhost:8080/graphql/?extensions={"persistedQuery":{"sha256Hash":"b952c19b894e1aa89dc05b7d53e15ab34ee0b3a3f11cdf3486acef4f0fe85c52"}}' +``` + +### Usage with Apollo + +You can create an [Apollo GraphQL](https://www.apollographql.com/) client with persisted queries enabled. In the background, Apollo will send the same requests like the ones previously shown. + +For example: + +```go +import { createPersistedQueryLink } from "apollo-link-persisted-queries"; +import { createHttpLink } from "apollo-link-http"; +import { InMemoryCache } from "apollo-cache-inmemory"; +import ApolloClient from "apollo-client"; +const link = createPersistedQueryLink().concat(createHttpLink({ uri: "/graphql" })); +const client = new ApolloClient({ + cache: new InMemoryCache(), + link: link, +}); +``` diff --git a/docusaurus-docs/docs-graphql/queries/queries-overview.md b/docusaurus-docs/docs-graphql/queries/queries-overview.md new file mode 100644 index 00000000..f91a9f1b --- /dev/null +++ b/docusaurus-docs/docs-graphql/queries/queries-overview.md @@ -0,0 +1,50 @@ +--- +title: "Overview" +description: "Dgraph automatically generates GraphQL queries for each type that you define in your schema. There are three types of queries generated for each type." + +--- + +How to use queries to fetch data from Dgraph. + +Dgraph automatically generates GraphQL queries for each type that you define in +your schema. There are three types of queries generated for each type. + +Example + +```graphql +type Post { + id: ID! + title: String! @search + text: String + score: Float @search + completed: Boolean @search + datePublished: DateTime @search(by: [year]) + author: Author! +} + +type Author { + id: ID! + name: String! @search + posts: [Post!] + friends: [Author] +} +``` + +With the above schema, there would be three queries generated for Post and three +for Author. Here are the queries that are generated for the Post type: + +```graphql +getPost(postID: ID!): Post +queryPost(filter: PostFilter, order: PostOrder, first: Int, offset: Int): [Post] +aggregatePost(filter: PostFilter): PostAggregateResult +``` + +The first query allows you to fetch a post and its related fields given an ID. +The second query allows you to fetch a list of posts based on some filters, sorting and +pagination parameters. The third query allows you to fetch aggregate parameters +like count of nodes based on filters. + +Additionally, a `checkPassword` query is generated for types that have been specified with a `@secret` directive. + +You can look at all the queries that are generated by using any +GraphQL client such as Insomnia or GraphQL playground. diff --git a/docusaurus-docs/docs-graphql/queries/search-filtering.md b/docusaurus-docs/docs-graphql/queries/search-filtering.md new file mode 100644 index 00000000..114ac322 --- /dev/null +++ b/docusaurus-docs/docs-graphql/queries/search-filtering.md @@ -0,0 +1,329 @@ +--- +title: "Search and Filtering" +description: " Queries generated for a GraphQL type allow you to generate a single list of objects for a type. You can also query a list of objects using GraphQL." + +--- + +Queries generated for a GraphQL type allow you to generate a single list of +objects for a type. + +### Get a single object + +Fetch the `title`, `text` and `datePublished` for a post with id `0x1`. + +```graphql +query { + getPost(id: "0x1") { + title + text + datePublished + } +} +``` + +Fetching nested linked objects, while using `get` queries is also easy. For +example, this is how you would fetch the authors for a post and their friends. + +```graphql +query { + getPost(id: "0x1") { + id + title + text + datePublished + author { + name + friends { + name + } + } + } +} +``` + +While fetching nested linked objects, you can also apply a filter on them. + +For example, the following query fetches the author with the `id` 0x1 and their +posts about `GraphQL`. + +```graphql +query { + getAuthor(id: "0x1") { + name + posts(filter: { + title: { + allofterms: "GraphQL" + } + }) { + title + text + datePublished + } + } +} +``` + +If your type has a field with the `@id` directive applied to it, you can also fetch objects using that. + +For example, given the following schema, the query below fetches a user's `name` and `age` by `userID` (which has the `@id` directive): + +**Schema**: + +```graphql +type User { + userID: String! @id + name: String! + age: String +} +``` + +**Query**: + +```graphql +query { + getUser(userID: "0x2") { + name + age + } +} +``` + +:::note +The `get` API on interfaces containing fields with the `@id` directive is being deprecated and will be removed in v21.11. +Users are advised to use the `query` API instead. +::: + +### Query a list of objects + +You can query a list of objects using GraphQL. For example, the following query fetches the `title`, `text` and and `datePublished` for all posts: + +```graphql +query { + queryPost { + id + title + text + datePublished + } +} +``` + +The following example query fetches a list of posts by their post `id`: + +```graphql +query { + queryPost(filter: { + id: ["0x1", "0x2", "0x3", "0x4"], + }) { + id + title + text + datePublished + } +} +``` + +### Query that filters objects by predicate + +Before filtering an object by a predicate, you need to add a `@search` directive to the field that will be used to filter the results. + +For example, if you wanted to query events between two dates, or events that fall within a certain radius of a point, you could have an `Event` schema, as follows: + +``` +type Event { + id: ID! + date: DateTime! @search + location: Point @search +} +``` + +The search directive would let you filter events that fall within a date range, as follows: + +``` +query { + queryEvent (filter: { date: { between: { min: "2020-01-01", max: "2020-02-01" } } }) { + id + } +} +``` + +You can also filter events that have a location near a certain point with the following query: + +``` +query { + queryEvent (filter: { location: { near: { coordinate: { latitude: 37.771935, longitude: -122.469829 }, distance: 1000 } } }) { + id + } +} +``` + + +You can also use connectors such as the `and` keyword to show results with multiple filters applied. In the query below, we fetch posts that have `GraphQL` in their title and have a `score > 100`. + +This example assumes that the `Post` type has a `@search` directive applied to the `title` field and the `score` field. + + + +```graphql +query { + queryPost(filter: { + title: { + anyofterms: "GraphQL" + }, + and: { + score: { + gt: 100 + } + } + }) { + id + title + text + datePublished + } +} +``` + +### Filter a query for a list of objects + +You can also filter nested objects while querying for a list of objects. + +For example, the following query fetches all of the authors whose name contains +`Lee` and with their `completed` posts that have a score greater than `10`: + +```graphql +query { + queryAuthor(filter: { + name: { + anyofterms: "Lee" + } + }) { + name + posts(filter: { + score: { + gt: 10 + }, + and: { + completed: true + } + }) { + title + text + datePublished + } + } +} +``` + +### Filter a query for a range of objects with `between` + +You can filter query results within an inclusive range of indexed and typed +scalar values using the `between` keyword. + +:::tipThis keyword is also supported for DQL; to learn more, see +[DQL Functions: `between`](/graphql/[functions/#between](functions/#between)).::: + + +For example, you might start with the following example schema used to track +students at a school: + +**Schema**: + +```graphql +type Student{ + age: Int @search + name: String @search(by: [exact]) +} +``` +Using the `between` filter, you could fetch records for students who are between +10 and 20 years of age: + +**Query**: + +```graphql +queryStudent(filter: {age: between: {min: 10, max: 20}}){ + age + name +} +``` + +You could also use this filter to fetch records for students whose names fall +alphabetically between `ba` and `hz`: + +**Query**: + +```graphql +queryStudent(filter: {name: between: {min: "ba", max: "hz"}}){ + age + name +} +``` + +### Filter to match specified field values with `in` + +You can filter query results to find objects with one or more specified values using the +`in` keyword. This keyword can find matches for fields with the `@id` directive +applied. The `in` filter is supported for all data types such as `string`, `enum`, `Int`, `Int64`, `Float`, and `DateTime`. + +For example, let's say that your schema defines a `State` type that has the +`@id` directive applied to the `code` field: + +```graphql +type State { + code: String! @id + name: String! + capital: String +} +``` + +Using the `in` keyword, you can query for a list of states that have the postal +code **WA** or **VA** using the following query: + +```graphql +query { + queryState(filter: {code: {in : ["WA", "VA"]}}){ + code + name + } + } +``` + +### Filter for objects with specified non-null fields using `has` + +You can filter queries to find objects with a non-null value in a specified +field using the `has` keyword. The `has` keyword can only check whether a field +returns a non-null value, not for specific field values. + +For example, your schema might define a `Student` type that has basic +information about each student; such as their ID number, age, name, and email address: + +```graphql +type Student { + tid: ID! + age: Int! + name: String + email: String +} +``` + +To find those students who have a non-null `name`, run the following query: + +```graphql +queryStudent(filter: { has : name } ){ + tid + age + name +} +``` +You can also specify a list of fields, like the following: + +```graphql +queryStudent(filter: { has : [name, email] } ){ + tid + age + name + email +} +``` + +This would return `Student` objects where both `name` and `email` fields are non-null. diff --git a/docusaurus-docs/docs-graphql/queries/skip-include.md b/docusaurus-docs/docs-graphql/queries/skip-include.md new file mode 100644 index 00000000..bcedac61 --- /dev/null +++ b/docusaurus-docs/docs-graphql/queries/skip-include.md @@ -0,0 +1,61 @@ +--- +title: "@skip and @include Directives" +description: "@skip and @include directives can be applied to query fields. They let you skip or include a field based on the value of the if argument." + +--- + +`@skip` and `@include` directives can be applied to query fields. +They allow you to skip or include a field based on the value of the `if` argument +that is passed to the directive. + +## @skip + +In the query below, we fetch posts and decide whether to fetch the title for them or not +based on the `skipTitle` GraphQL variable. + +GraphQL query + +```graphql +query ($skipTitle: Boolean!) { + queryPost { + id + title @skip(if: $skipTitle) + text + } +} +``` + +GraphQL variables +```json +{ + "skipTitle": true +} +``` + +## @include + +Similarly, the `@include` directive can be used to include a field based on the value of +the `if` argument. The query below would only include the authors for a post if `includeAuthor` +GraphQL variable has value true. + +GraphQL Query +```graphql +query ($includeAuthor: Boolean!) { + queryPost { + id + title + text + author @include(if: $includeAuthor) { + id + name + } + } +} +``` + +GraphQL variables +```json +{ + "includeAuthor": false +} +``` diff --git a/docusaurus-docs/docs-graphql/queries/vector-similarity.md b/docusaurus-docs/docs-graphql/queries/vector-similarity.md new file mode 100644 index 00000000..d5dcf52a --- /dev/null +++ b/docusaurus-docs/docs-graphql/queries/vector-similarity.md @@ -0,0 +1,61 @@ +--- +title: "Similarity Search" +description: "Dgraph automatically generates GraphQL queries for each vector index that you define in your schema. There are two types of queries generated for each index." + +--- + +Dgraph automatically generates two GraphQL similarity queries for each type that have at least one [vector predicate](/graphql/schema/types/#vectors) with `@search` directive. + +For example + +```graphql +type User { + id: ID! + name: String! + name_v: [Float!] @embedding @search(by: ["hnsw(metric: euclidean, exponent: 4)"]) +} +``` + +With the above schema, the auto-generated `querySimilarByEmbedding` query allows us to run similarity search using the vector index specified in our schema. + +```graphql +getSimilarByEmbedding( + by: vector_predicate, + topK: n, + vector: searchVector): [User] +``` + +For example in order to find top 3 users with names similar to a given user name embedding the following query function can be used. + +```graphql +querySimilarUserByEmbedding(by: name_v, topK: 3, vector: [0.1, 0.2, 0.3, 0.4, 0.5]) { + id + name + vector_distance + } +``` +The results obtained for this query includes the 3 closest Users ordered by vector_distance. The vector_distance is the Euclidean distance between the name_v embedding vector and the input vector used in our query. + +Note: you can omit vector_distance predicate in the query, the result will still be ordered by vector_distance. + +The distance metric used is specified in the index creation. + +Similarly, the auto-generated `querySimilarById` query allows us to search for similar objects to an existing object, given it’s Id. using the function. + +```graphql +getSimilarById( + by: vector_predicate, + topK: n, + id: userID): [User] +``` + +For example the following query searches for top 3 users whose names are most similar to the name of the user with id "0xef7". + +```graphql +querySimilarUserById(by: name_v, topK: 3, id: "0xef7") { + id + name + vector_distance +} +``` + diff --git a/docusaurus-docs/docs-graphql/quick-start/index.md b/docusaurus-docs/docs-graphql/quick-start/index.md new file mode 100644 index 00000000..6bbc375b --- /dev/null +++ b/docusaurus-docs/docs-graphql/quick-start/index.md @@ -0,0 +1,253 @@ +--- +title: "Quick Start" +description: "Go from an empty Dgraph database to a running GraphQL API in just one step; just define the schema of your graph and how you’d like to search it; Dgraph does the rest." + +--- + + +## Overview + +Traditional GraphQL implementations require significant overhead when building on top of REST endpoints or relational databases. Developers must manually translate REST/relational data models into graph structures, implement resolvers for each field, and manage the numerous queries generated during this translation process. + +Dgraph simplifies this workflow by providing a schema-first approach. By deploying your GraphQL schema, Dgraph automatically generates a fully functional GraphQL API with a native graph database backend—eliminating the need for manual resolver implementation and data translation layers. + +## Step 1: Run Dgraph + +The easiest way to get Dgraph up and running is to install a [Learning Environment](/graphql/[single-host-setup](single-host-setup)). + + +## Step 2: Deploy a GraphQL Schema + +1. Create a file schema.graphql with the following content. + + + ```graphql + type Product { + productID: ID! + name: String @search(by: [term]) + reviews: [Review] @hasInverse(field: about) + } + + type Customer { + username: String! @id @search(by: [hash, regexp]) + reviews: [Review] @hasInverse(field: by) + } + + type Review { + id: ID! + about: Product! + by: Customer! + comment: String @search(by: [fulltext]) + rating: Int @search + } + ``` + +2. Push the schema to Dgraph + +From a terminal window + +``` +curl --data-binary '@./schema.graphql --header 'content-type: application/octet-stream' http://localhost:8080/admin/schema + +``` + + +## Step 3: Test your GraphQL API + +You can access the `GraphQL endpoint` with any GraphQL clients such as [GraphQL Playground](https://github.com/prisma-labs/graphql-playground), [Insomnia](https://insomnia.rest/), [GraphiQL](https://github.com/graphql/graphiql), [Altair](https://github.com/imolorhe/altair) or Postman. + + +You may want to use the introspection capability of the client to explore the schema, queries, and mutations that were generated by Dgraph. + +### A first GraphQL mutation +To populate the database, + + ```graphql + mutation { + addProduct( + input: [ + { name: "GraphQL on Dgraph" } + { name: "Dgraph: The GraphQL Database" } + ] + ) { + product { + productID + name + } + } + addCustomer(input: [{ username: "Michael" }]) { + customer { + username + } + } + } + ``` + + +The GraphQL server returns a json response similar to this: + +```json +{ + "data": { + "addProduct": { + "product": [ + { + "productID": "0x2", + "name": "GraphQL on Dgraph" + }, + { + "productID": "0x3", + "name": "Dgraph: The GraphQL Database" + } + ] + }, + "addCustomer": { + "customer": [ + { + "username": "Michael" + } + ] + } + }, + "extensions": { + "requestID": "b155867e-4241-4cfb-a564-802f2d3808a6" + } +} +``` + + +### A second GraphQL mutation +Because the schema defined Customer with the field `username: String! @id`, the `username` field acts like an ID, so we can identify customers just with their names. + +Products, on the other hand, had `productID: ID!`, so they'll get an auto-generated ID which are returned by the mutation. + + +Your ID for the product might be different than `0x2`. Make sure to replace the product ID with the ID from the response of the previous mutation. + +Execute the mutation + + +```graphql +mutation { + addReview(input: [{ + by: {username: "Michael"}, + about: { productID: "0x2"}, + comment: "Fantastic, easy to install, worked great. Best GraphQL server available", + rating: 10}]) + { + review { + comment + rating + by { username } + about { name } + } + } +} +``` + +This time, the mutation result queries for the author making the review and the product being reviewed, so it's gone deeper into the graph to get the result than just the mutation data. + +```json +{ + "data": { + "addReview": { + "review": [ + { + "comment": "Fantastic, easy to install, worked great. Best GraphQL server available", + "rating": 10, + "by": { + "username": "Michael" + }, + "about": { + "name": "GraphQL on Dgraph" + } + } + ] + } + }, + "extensions": { + "requestID": "11bc2841-8c19-45a6-bb31-7c37c9b027c9" + } +} +``` + + + +### GraphQL Queries + +With Dgraph, you get powerful graph search built into your GraphQL API. The schema for search is generated from the schema document that we started with and automatically added to the GraphQL API for you. + +Remember the definition of a review. + +``` +type Review { + ... + comment: String @search(by: [fulltext]) + ... +} +``` + +The directive `@search(by: [fulltext])` tells Dgraph we want to be able to search for comments with full-text search. + +Dgraph took that directive and the other information in the schema, and built queries and search into the API. + +Let's find all the products that were easy to install. + +Execute the query + +```graphql +query { + queryReview(filter: { comment: {alloftext: "easy to install"}}) { + comment + by { + username + } + about { + name + } + } +} +``` + +What reviews did you get back? It'll depend on the data you added, but you'll at least get the initial review we added. + +Maybe you want to find reviews that describe best GraphQL products and give a high rating. + +```graphql +query { + queryReview(filter: { comment: {alloftext: "best GraphQL"}, rating: { ge: 10 }}) { + comment + by { + username + } + about { + name + } + } +} +``` + +How about we find the customers with names starting with "Mich" and the five products that each of those liked the most. + +```graphql +query { + queryCustomer(filter: { username: { regexp: "/Mich.*/" } }) { + username + reviews(order: { asc: rating }, first: 5) { + comment + rating + about { + name + } + } + } +} +``` +## Conclusion + +Dgraph allows you to have a fully functional GraphQL API in minutes with a highly performant graph backend to serve complex nested queries. Moreover, you can update or change your schema freely and just re-deploy new versions. For GraphQL in Dgraph, you just concentrate on defining the schema of your graph and how you'd like to search that graph; Dgraph does the rest. + + +## What's Next +- Learn more about [GraphQL schema](/graphql/schema/) and Dgraph directives. + diff --git a/docusaurus-docs/docs-graphql/schema/dgraph-schema.md b/docusaurus-docs/docs-graphql/schema/dgraph-schema.md new file mode 100644 index 00000000..8f1946fa --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/dgraph-schema.md @@ -0,0 +1,269 @@ +--- +title: "Dgraph Schema Fragment" +description: "While editing your schema, this GraphQL schema fragment can be useful. It sets up the definitions of the directives that you’ll use in your schema." + +--- + +While editing your schema, you might find it useful to include this GraphQL schema fragment. It sets up the definitions of the directives, etc. (like `@search`) that you'll use in your schema. If your editor is GraphQL aware, it may give you errors if you don't have this available and context sensitive help if you do. + +Don't include it in your input schema to Dgraph - use your editing environment to set it up as an import. The details will depend on your setup. + +```graphql +""" +The Int64 scalar type represents a signed 64‐bit numeric non‐fractional value. +Int64 can represent values in range [-(2^63),(2^63 - 1)]. +""" +scalar Int64 + +""" +The DateTime scalar type represents date and time as a string in RFC3339 format. +For example: "1985-04-12T23:20:50.52Z" represents 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. +""" +scalar DateTime + +input IntRange{ + min: Int! + max: Int! +} + +input FloatRange{ + min: Float! + max: Float! +} + +input Int64Range{ + min: Int64! + max: Int64! +} + +input DateTimeRange{ + min: DateTime! + max: DateTime! +} + +input StringRange{ + min: String! + max: String! +} + +enum DgraphIndex { + int + int64 + float + bool + hash + exact + term + fulltext + trigram + regexp + year + month + day + hour + geo +} + +input AuthRule { + and: [AuthRule] + or: [AuthRule] + not: AuthRule + rule: String +} + +enum HTTPMethod { + GET + POST + PUT + PATCH + DELETE +} + +enum Mode { + BATCH + SINGLE +} + +input CustomHTTP { + url: String! + method: HTTPMethod! + body: String + graphql: String + mode: Mode + forwardHeaders: [String!] + secretHeaders: [String!] + introspectionHeaders: [String!] + skipIntrospection: Boolean +} + +type Point { + longitude: Float! + latitude: Float! +} + +input PointRef { + longitude: Float! + latitude: Float! +} + +input NearFilter { + distance: Float! + coordinate: PointRef! +} + +input PointGeoFilter { + near: NearFilter + within: WithinFilter +} + +type PointList { + points: [Point!]! +} + +input PointListRef { + points: [PointRef!]! +} + +type Polygon { + coordinates: [PointList!]! +} + +input PolygonRef { + coordinates: [PointListRef!]! +} + +type MultiPolygon { + polygons: [Polygon!]! +} + +input MultiPolygonRef { + polygons: [PolygonRef!]! +} + +input WithinFilter { + polygon: PolygonRef! +} + +input ContainsFilter { + point: PointRef + polygon: PolygonRef +} + +input IntersectsFilter { + polygon: PolygonRef + multiPolygon: MultiPolygonRef +} + +input PolygonGeoFilter { + near: NearFilter + within: WithinFilter + contains: ContainsFilter + intersects: IntersectsFilter +} + +input GenerateQueryParams { + get: Boolean + query: Boolean + password: Boolean + aggregate: Boolean +} + +input GenerateMutationParams { + add: Boolean + update: Boolean + delete: Boolean +} + +directive @hasInverse(field: String!) on FIELD_DEFINITION +directive @search(by: [DgraphIndex!]) on FIELD_DEFINITION +directive @dgraph(type: String, pred: String) on OBJECT | INTERFACE | FIELD_DEFINITION +directive @id(interface: Boolean) on FIELD_DEFINITION +directive @withSubscription on OBJECT | INTERFACE | FIELD_DEFINITION +directive @secret(field: String!, pred: String) on OBJECT | INTERFACE +directive @auth( + password: AuthRule + query: AuthRule, + add: AuthRule, + update: AuthRule, + delete: AuthRule) on OBJECT | INTERFACE +directive @custom(http: CustomHTTP, dql: String) on FIELD_DEFINITION +directive @remote on OBJECT | INTERFACE | UNION | INPUT_OBJECT | ENUM +directive @remoteResponse(name: String) on FIELD_DEFINITION +directive @cascade(fields: [String]) on FIELD +directive @lambda on FIELD_DEFINITION +directive @lambdaOnMutate(add: Boolean, update: Boolean, delete: Boolean) on OBJECT | INTERFACE +directive @cacheControl(maxAge: Int!) on QUERY +directive @generate( + query: GenerateQueryParams, + mutation: GenerateMutationParams, + subscription: Boolean) on OBJECT | INTERFACE + +input IntFilter { + eq: Int + in: [Int] + le: Int + lt: Int + ge: Int + gt: Int + between: IntRange +} + +input Int64Filter { + eq: Int64 + in: [Int64] + le: Int64 + lt: Int64 + ge: Int64 + gt: Int64 + between: Int64Range +} + +input FloatFilter { + eq: Float + in: [Float] + le: Float + lt: Float + ge: Float + gt: Float + between: FloatRange +} + +input DateTimeFilter { + eq: DateTime + in: [DateTime] + le: DateTime + lt: DateTime + ge: DateTime + gt: DateTime + between: DateTimeRange +} + +input StringTermFilter { + allofterms: String + anyofterms: String +} + +input StringRegExpFilter { + regexp: String +} + +input StringFullTextFilter { + alloftext: String + anyoftext: String +} + +input StringExactFilter { + eq: String + in: [String] + le: String + lt: String + ge: String + gt: String + between: StringRange +} + +input StringHashFilter { + eq: String + in: [String] +} +``` diff --git a/docusaurus-docs/docs-graphql/schema/directives/auth.md b/docusaurus-docs/docs-graphql/schema/directives/auth.md new file mode 100644 index 00000000..ae855aef --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/directives/auth.md @@ -0,0 +1,12 @@ +--- +title: "@auth" + +--- + +`@auth` allows you to define how to apply authorization rules on the queries/mutation for a type. + +Refer to [graphql endpoint security](/graphql/[graphql/security/_index](graphql/security/_index)), [RBAC rules](/graphql/[RBAC-rules](RBAC-rules)) and [Graph traversal rules](/graphql/[graphtraversal-rules](graphtraversal-rules)) for details. + + +`@auth` directive is not supported on `union` and `@remote` types. + diff --git a/docusaurus-docs/docs-graphql/schema/directives/deprecated.md b/docusaurus-docs/docs-graphql/schema/directives/deprecated.md new file mode 100644 index 00000000..c3cb7c5e --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/directives/deprecated.md @@ -0,0 +1,22 @@ +--- +title: "@deprecated" + +--- + +The `@deprecated` directive allows you to tag the schema definition of a field or enum value as deprecated with an optional reason. + +When you use the `@deprecated` directive, GraphQL users can deprecate their use of the deprecated field or `enum` value. +Most GraphQL tools and clients will pick up this notification and give you a warning if you try to use a deprecated field. + +### Example + +For example, to mark `oldField` in the schema as deprecated: + +```graphql +type MyType { + id: ID! + oldField: String @deprecated(reason: "oldField is deprecated. Use newField instead.") + newField: String + deprecatedField: String @deprecated +} +``` diff --git a/docusaurus-docs/docs-graphql/schema/directives/directive-dgraph.md b/docusaurus-docs/docs-graphql/schema/directives/directive-dgraph.md new file mode 100644 index 00000000..3ba27f01 --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/directives/directive-dgraph.md @@ -0,0 +1,58 @@ +--- +title: "@dgraph" + +--- + + +The `@dgraph` directive customizes the name of the types and predicates generated in Dgraph when deploying a GraphQL Schema. + +* `type @dgraph(type: "TypeNameToUseInDgraph")` controls what Dgraph type is used for a GraphQL type. +* `field: SomeType @dgraph(pred: "DgraphPredicate")` controls what Dgraph predicate is mapped to a GraphQL field. + +For example, if you have existing types that don't match GraphQL requirements, you can create a schema like the following. + +```graphql +type Person @dgraph(type: "Human-Person") { + name: String @search(by: [hash]) @dgraph(pred: "name") + age: Int +} + +type Movie @dgraph(type: "film") { + name: String @search(by: [term]) @dgraph(pred: "film.name") +} +``` + +Which maps to the Dgraph schema: + +```graphql +type Human-Person { + name + Person.age +} + +type film { + film.name +} + +name string @index(hash) . +Person.age: int . +film.name string @index(term) . +``` + +You might also have the situation where you have used `name` for both movie names and people's names. In this case you can map fields in two different GraphQL types to the one Dgraph predicate. + +```graphql +type Person { + name: String @dgraph(pred: "name") + ... +} + +type Movie { + name: String @dgraph(pred: "name") + ... +} +``` + +:::note +In Dgraph's current GraphQL implementation, if two fields are mapped to the same Dgraph predicate, both should have the same `@search` directive. +::: \ No newline at end of file diff --git a/docusaurus-docs/docs-graphql/schema/directives/directive-withsubscription.md b/docusaurus-docs/docs-graphql/schema/directives/directive-withsubscription.md new file mode 100644 index 00000000..587792b3 --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/directives/directive-withsubscription.md @@ -0,0 +1,24 @@ +--- +title: "@withSubscription" + +--- + + +The `@withSubscription` directive enables **subscription** operation on a GraphQL type. + +A subscription notifies your client with changes to back-end data using the WebSocket protocol. +Subscriptions are useful to get low-latency, real-time updates. + +To enable subscriptions on any type add the `@withSubscription` directive to the schema as part of the type definition, as in the following example: + +```graphql +type Todo @withSubscription { + id: ID! + title: String! + description: String! + completed: Boolean! +} +``` + +Refer to [GraphQL Subscriptions](/graphql/[graphql/subscriptions](graphql/subscriptions)) to learn how to use subscriptions in you client application. + diff --git a/docusaurus-docs/docs-graphql/schema/directives/embedding.md b/docusaurus-docs/docs-graphql/schema/directives/embedding.md new file mode 100644 index 00000000..f4c0efcd --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/directives/embedding.md @@ -0,0 +1,11 @@ +--- +title: "@embedding" + +--- + + +A Float array can be used as a vector using `@embedding` directive. It denotes a vector of floating point numbers, i.e an ordered array of float32. + +The embeddings can be defined on one or more predicates of a type and they are generated using suitable machine learning models. + +This directive is used in conjunction with `@search` directive to declare the HNSW index. For more information see: [@search](/graphql/schema/directives/search/#vector-embedding) directive for vector embeddings. \ No newline at end of file diff --git a/docusaurus-docs/docs-graphql/schema/directives/generate.md b/docusaurus-docs/docs-graphql/schema/directives/generate.md new file mode 100644 index 00000000..333bcb2f --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/directives/generate.md @@ -0,0 +1,56 @@ +--- +title: "@generate" +description: "The @generate directive specifies which GraphQL APIs are generated for a given type. Without it, all queries & mutations are generated except subscription." + +--- + +The `@generate` directive is used to specify which GraphQL APIs are generated for a given type. + +Here's the GraphQL definition of the directive +```graphql +input GenerateQueryParams { + get: Boolean + query: Boolean + password: Boolean + aggregate: Boolean +} + +input GenerateMutationParams { + add: Boolean + update: Boolean + delete: Boolean +} +directive @generate( + query: GenerateQueryParams, + mutation: GenerateMutationParams, + subscription: Boolean) on OBJECT | INTERFACE + +``` + +The corresponding APIs are generated by setting the `Boolean` variables inside the `@generate` directive to `true`. Passing `false` forbids the generation of the corresponding APIs. + +The default value of the `subscription` variable is `false` while the default value of all +other variables is `true`. Therefore, if no `@generate` directive is specified for a type, all queries and mutations except `subscription` are generated. + +## Example of @generate directive + +```graphql +type Person @generate( + query: { + get: false, + query: true, + aggregate: false + }, + mutation: { + add: true, + delete: false + }, + subscription: false +) { + id: ID! + name: String! +} +``` + +The GraphQL schema above will generate a `queryPerson` query and `addPerson`, `updatePerson` mutations. It won't generate `getPerson`, `aggregatePerson` queries nor a `deletePerson` mutation as these have been marked as `false` using the `@generate` directive. +Note that the `updatePerson` mutation is generated because the default value of the `update` variable is `true`. diff --git a/docusaurus-docs/docs-graphql/schema/directives/ids.md b/docusaurus-docs/docs-graphql/schema/directives/ids.md new file mode 100644 index 00000000..68c93693 --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/directives/ids.md @@ -0,0 +1,115 @@ +--- +title: "@id" +description: "Dgraph database provides two types of identifiers: the ID scalar type and the @id directive." + +--- + +Dgraph provides two types of built-in identifiers: the `ID` scalar type and the `@id` directive. + +* The `ID` scalar type is used when you don't need to set an identifier outside of Dgraph. +* The `@id` directive is used for external identifiers, such as email addresses. + + +## The `@id` directive + +For some types, you'll need a unique identifier set from outside Dgraph. A common example is a username. + +The `@id` directive tells Dgraph to keep that field's values unique and use them as identifiers. + +For example, you might set the following type in a schema: + +```graphql +type User { + username: String! @id + ... +} +``` + +Dgraph requires a unique username when creating a new user. It generates the input type for `addUser` with `username: String!`, so you can't make an add mutation without setting a username; and when processing the mutation, Dgraph will ensure that the username isn't already set for another node of the `User` type. + +In a single-page app, you could render the page for `http://.../user/Erik` when a user clicks to view the author bio page for that user. Your app can then use a `getUser(username: "Erik") { ... }` GraphQL query to fetch the data and generate the page. + +Identities created with `@id` are reusable. If you delete an existing user, you can reuse the username. + +Fields with the `@id` directive must have the type `String!`. + +As with `ID` types, Dgraph generates queries and mutations so you can query, update, and delete data in nodes, using the fields with the `@id` directive as references. + +It's possible to use the `@id` directive on more than one field in a type. For example, you can define a type like the following: + +```graphql +type Book { + name: String! @id + isbn: String! @id + genre: String! + ... +} +``` + +You can then use multiple `@id` fields in arguments to `get` queries, and while searching, these fields will be combined with the `AND` operator, resulting in a Boolean `AND` operation. For example, for the above schema, you can send a `getBook` query like the following: + +```graphql +query { + getBook(name: "The Metamorphosis", isbn: "9871165072") { + name + genre + ... + } +} +``` + +This will yield a positive response if both the `name` **and** `isbn` match any data in the database. + +### `@id` and interfaces + +By default, if used in an interface, the `@id` directive will ensure field uniqueness for each implementing type separately. +In this case, the `@id` field in the interface won't be unique for the interface but for each of its implementing types. +This allows two different types implementing the same interface to have the same value for the inherited `@id` field. + +There are scenarios where this behavior might not be desired, and you may want to constrain the `@id` field to be unique across all the implementing types. In that case, you can set the `interface` argument of the `@id` directive to `true`, and Dgraph will ensure that the field has unique values across all the implementing types of an interface. + +For example: + +```graphql +interface Item { + refID: Int! @id(interface: true) # if there is a Book with refID = 1, then there can't be a chair with that refID. + itemID: Int! @id # If there is a Book with itemID = 1, there can still be a Chair with the same itemID. +} + +type Book implements Item { ... } +type Chair implements Item { ... } +``` + +In the above example, `itemID` won't be present as an argument to the `getItem` query as it might return more than one `Item`. + +:::note +`get` queries generated for an interface will have only the `@id(interface: true)` fields as arguments. +::: + +## Combining `ID` and `@id` + +You can use both the `ID` type and the `@id` directive on another field definition to have both a unique identifier and a generated identifier. + +For example, you might define the following type in a schema: + +```graphql +type User { + id: ID! + username: String! @id + ... +} +``` + +With this schema, Dgraph requires a unique `username` when creating a new user. This schema provides the benefits of both of the previous examples above. Your app can then use the `getUser(...) { ... }` query to provide either the Dgraph-generated `id` or the externally-generated `username`. + +:::note +If in a type there are multiple `@id` fields, then in a `get` query these arguments will be optional. If in a type there's only one field defined with either `@id` or `ID`, then that will be a required field in the `get` query's arguments. +::: + + diff --git a/docusaurus-docs/docs-graphql/schema/directives/index.md b/docusaurus-docs/docs-graphql/schema/directives/index.md new file mode 100644 index 00000000..0044d39b --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/directives/index.md @@ -0,0 +1,116 @@ +--- +title: "Directives" + +--- + +The list of all directives supported by Dgraph. + +### @auth + +`@auth` allows you to define how to apply authorization rules on the queries/mutation for a type. + +Reference: [Auth directive](/graphql/[auth](auth)) + +### @cascade + +`@cascade` allows you to filter out certain nodes within a query. + +Reference: [Cascade](/graphql/queries/cascade) + +### @custom + +`@custom` directive is used to define custom queries, mutations and fields. + +Reference: [Custom directive](/graphql/[graphql/custom/directive](graphql/custom/directive)) + +### @deprecated + +The `@deprecated` directive lets you mark the schema definition of a field or `enum` value as deprecated, and also lets you provide an optional reason for the deprecation. + +Reference: [Deprecation](/graphql/[deprecated](deprecated)) + +### @dgraph + +`@dgraph` directive tells us how to map fields within a type to existing predicates inside Dgraph. + +Reference: [@dgraph directive](/graphql/[directive-dgraph](directive-dgraph)) + +### @embedding + +`@embedding` directive designates one or more fields as vector embeddings. + +Reference: [@embedding directive](/graphql/[embedding](embedding)) + +### @generate + +The `@generate` directive is used to specify which GraphQL APIs are generated for a type. + +Reference: [Generate directive](/graphql/[generate](generate)) + +### @hasInverse + +`@hasInverse` is used to setup up two way edges such that adding a edge in +one direction automatically adds the one in the inverse direction. + +Reference: [Linking nodes in the graph](/graphql/[graph-links](graph-links)) + +### @id + +`@id` directive is used to annotate a field which represents a unique identifier coming from outside + of Dgraph. + +Reference: [Identity](/graphql/([ids](ids)) + +### @include + +The `@include` directive can be used to include a field based on the value of an `if` argument. + +Reference: [Include directive](/graphql/[skip-include](skip-include)) + +### @lambda + +The `@lambda` directive allows you to call custom JavaScript resolvers. The `@lambda` queries, mutations, and fields are resolved through the lambda functions implemented on a given lambda server. + +Reference: [Lambda directive](/graphql/[lambda-overview](lambda-overview)) + +### @remote + +`@remote` directive is used to annotate types for which data is not stored in Dgraph. These types +are typically used with custom queries and mutations. + + +### @remoteResponse + +The `@remoteResponse` directive allows you to annotate the fields of a `@remote` type in order to map a custom query's JSON key response to a GraphQL field. + + +### @search + +`@search` allows you to perform filtering on a field while querying for nodes. + +Reference: [Search](/graphql/[search](search)) + +### @secret + +`@secret` directive is used to store secret information, it gets encrypted and then stored in Dgraph. + +Reference: [Password Type](/graphql/[types#password-type](types#password-type)) + +### @skip + +The `@skip` directive can be used to fetch a field based on the value of a user-defined GraphQL variable. + +Reference: [Skip directive](/graphql/[skip-include](skip-include)) + +### @withSubscription + +`@withSubscription` directive when applied on a type, generates subscription queries for it. + +Reference: [Subscriptions](/graphql/[subscriptions](subscriptions)) + +### @lambdaOnMutate + +The `@lambdaOnMutate` directive allows you to listen to mutation events(`add`/`update`/`delete`). Depending on the defined events and the occurrence of a mutation event, `@lambdaOnMutate` triggers the appropriate lambda function implemented on a given lambda server. + +Reference: [LambdaOnMutate directive](/graphql/[webhook](webhook)) + diff --git a/docusaurus-docs/docs-graphql/schema/directives/search.md b/docusaurus-docs/docs-graphql/schema/directives/search.md new file mode 100644 index 00000000..8389473b --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/directives/search.md @@ -0,0 +1,643 @@ +--- +title: "Search and Filtering" +description: "What search can you build into your GraphQL API? Dgraph builds search into the fields of each type, so searching is available at deep levels in a query." + +--- + +The `@search` directive tells Dgraph what search to build into your GraphQL API. + +When a type contains an `@search` directive, Dgraph constructs a search input type and a query in the GraphQL `Query` type. For example, if the schema contains + +```graphql +type Post { + ... +} +``` + +then Dgraph constructs a `queryPost` GraphQL query for querying posts. The `@search` directives in the `Post` type control how Dgraph builds indexes and what kinds of search it builds into `queryPost`. If the type contains + +```graphql +type Post { + ... + datePublished: DateTime @search +} +``` + +then it's possible to filter posts with a date-time search like: + +```graphql +query { + queryPost(filter: { datePublished: { ge: "2020-06-15" }}) { + ... + } +} +``` + +If the type tells Dgraph to build search capability based on a term (word) index for the `title` field + +```graphql +type Post { + ... + title: String @search(by: [term]) +} +``` + +then, the generated GraphQL API will allow search by terms in the title. + +```graphql +query { + queryPost(filter: { title: { anyofterms: "GraphQL" }}) { + ... + } +} +``` + +Dgraph also builds search into the fields of each type, so searching is available at deep levels in a query. For example, if the schema contained these types + +```graphql +type Post { + ... + title: String @search(by: [term]) +} + +type Author { + name: String @search(by: [hash]) + posts: [Post] +} +``` + +then Dgraph builds GraphQL search such that a query can, for example, find an author by name (from the hash search on `name`) and return only their posts that contain the term "GraphQL". + +```graphql +queryAuthor(filter: { name: { eq: "Diggy" } } ) { + posts(filter: { title: { anyofterms: "GraphQL" }}) { + title + } +} +``` + +Dgraph can build search types with the ability to search between a range. For example with the above Post type with datePublished field, a query can find publish dates within a range + +```graphql +query { + queryPost(filter: { datePublished: { between: { min: "2020-06-15", max: "2020-06-16" }}}) { + ... + } +} +``` + +Dgraph can also build GraphQL search ability to find match a value from a list. For example with the above Author type with the name field, a query can return the Authors that match a list + +```graphql +queryAuthor(filter: { name: { in: ["Diggy", "Jarvis"] } } ) { + ... +} +``` + +There's different search possible for each type as explained below. + +### Int, Float and DateTime + +| argument | constructed filter | +|----------|----------------------| +| none | `lt`, `le`, `eq`, `in`, `between`, `ge`, and `gt` | + +Search for fields of types `Int`, `Float` and `DateTime` is enabled by adding `@search` to the field with no arguments. For example, if a schema contains: + +```graphql +type Post { + ... + numLikes: Int @search +} +``` + +Dgraph generates search into the API for `numLikes` in two ways: a query for posts and field search on any post list. + +A field `queryPost` is added to the `Query` type of the schema. + +```graphql +type Query { + ... + queryPost(filter: PostFilter, order: PostOrder, first: Int, offset: Int): [Post] +} +``` + +`PostFilter` will contain less than `lt`, less than or equal to `le`, equal `eq`, in list `in`, between range `between`, greater than or equal to `ge`, and greater than `gt` search on `numLikes`. Allowing for example: + +```graphql +query { + queryPost(filter: { numLikes: { gt: 50 }}) { + ... + } +} +``` + +Also, any field with a type of list of posts has search options added to it. For example, if the input schema also contained: + +```graphql +type Author { + ... + posts: [Post] +} +``` + +Dgraph would insert search into `posts`, with + +```graphql +type Author { + ... + posts(filter: PostFilter, order: PostOrder, first: Int, offset: Int): [Post] +} +``` + +That allows search within the GraphQL query. For example, to find Diggy's posts with more than 50 likes. + +```graphql +queryAuthor(filter: { name: { eq: "Diggy" } } ) { + ... + posts(filter: { numLikes: { gt: 50 }}) { + title + text + } +} +``` + +### DateTime + +| argument | constructed filters | +|----------|----------------------| +| `year`, `month`, `day`, or `hour` | `lt`, `le`, `eq`, `in`, `between`, `ge`, and `gt` | + +As well as `@search` with no arguments, `DateTime` also allows specifying how the search index should be built: by year, month, day or hour. `@search` defaults to year, but once you understand your data and query patterns, you might want to changes that like `@search(by: [day])`. + +### Boolean + +| argument | constructed filter | +|----------|----------------------| +| none | `true` and `false` | + +Booleans can only be tested for true or false. If `isPublished: Boolean @search` is in the schema, then the search allows + +```graphql +filter: { isPublished: true } +``` + +and + +```graphql +filter: { isPublished: false } +``` + +### String + +Strings allow a wider variety of search options than other types. For strings, you have the following options as arguments to `@search`. + +| argument | constructed searches | +|----------|----------------------| +| `hash` | `eq` and `in` | +| `exact` | `lt`, `le`, `eq`, `in`, `between`, `ge`, and `gt` (lexicographically) | +| `regexp` | `regexp` (regular expressions) | +| `term` | `allofterms` and `anyofterms` | +| `fulltext` | `alloftext` and `anyoftext` | + +* *Schema rule*: `hash` and `exact` can't be used together. + +#### String exact and hash search + +Exact and hash search has the standard lexicographic meaning. + +```graphql +query { + queryAuthor(filter: { name: { eq: "Diggy" } }) { ... } +} +``` + +And for exact search + +```graphql +query { + queryAuthor(filter: { name: { gt: "Diggy" } }) { ... } +} +``` + +to find users with names lexicographically after "Diggy". + +#### String regular expression search + +Search by regular expression requires bracketing the expression with `/` and `/`. For example, query for "Diggy" and anyone else with "iggy" in their name: + +```graphql +query { + queryAuthor(filter: { name: { regexp: "/.*iggy.*/" } }) { ... } +} +``` + +#### String term and fulltext search + +If the schema has + +```graphql +type Post { + title: String @search(by: [term]) + text: String @search(by: [fulltext]) + ... +} +``` + +then + +```graphql +query { + queryPost(filter: { title: { `allofterms: "GraphQL tutorial"` } } ) { ... } +} +``` + +will match all posts with both "GraphQL and "tutorial" in the title, while `anyofterms: "GraphQL tutorial"` would match posts with either "GraphQL" or "tutorial". + +`fulltext` search is Google-stye text search with stop words, stemming. etc. So `alloftext: "run woman"` would match "run" as well as "running", etc. For example, to find posts that talk about fantastic GraphQL tutorials: + +```graphql +query { + queryPost(filter: { title: { `alloftext: "fantastic GraphQL tutorials"` } } ) { ... } +} +``` + +#### Strings with multiple searches + +It's possible to add multiple string indexes to a field. For example to search for authors by `eq` and regular expressions, add both options to the type definition, as follows. + +```graphql +type Author { + ... + name: String! @search(by: [hash, regexp]) +} +``` + +### Enums + +| argument | constructed searches | +|----------|----------------------| +| none | `eq` and `in` | +| `hash` | `eq` and `in` | +| `exact` | `lt`, `le`, `eq`, `in`, `between`, `ge`, and `gt` (lexicographically) | +| `regexp` | `regexp` (regular expressions) | + +Enums are serialized in Dgraph as strings. `@search` with no arguments is the same as `@search(by: [hash])` and provides `eq` and `in` searches. Also available for enums are `exact` and `regexp`. For hash and exact search on enums, the literal enum value, without quotes `"..."`, is used, for regexp, strings are required. For example: + +```graphql +enum Tag { + GraphQL + Database + Question + ... +} + +type Post { + ... + tags: [Tag!]! @search +} +``` + +would allow + +```graphql +query { + queryPost(filter: { tags: { eq: GraphQL } } ) { ... } +} +``` + +Which would find any post with the `GraphQL` tag. + +While `@search(by: [exact, regexp]` would also admit `lt` etc. and + +```graphql +query { + queryPost(filter: { tags: { regexp: "/.*aph.*/" } } ) { ... } +} +``` + +which is helpful for example if the enums are something like product codes where regular expressions can match a number of values. + +### Geolocation + +There are 3 Geolocation types: `Point`, `Polygon` and `MultiPolygon`. All of them are searchable. + +The following table lists the generated filters for each type when you include `@search` on the corresponding field: + +| type | constructed searches | +|----------|----------------------| +| `Point` | `near`, `within` | +| `Polygon` | `near`, `within`, `contains`, `intersects` | +| `MultiPolygon` | `near`, `within`, `contains`, `intersects` | + +#### Example + +Take for example a `Hotel` type that has a `location` and an `area`: + +```graphql +type Hotel { + id: ID! + name: String! + location: Point @search + area: Polygon @search +} +``` + +#### near + +The `near` filter matches all entities where the location given by a field is within a distance `meters` from a coordinate. + +```graphql +queryHotel(filter: { + location: { + near: { + coordinate: { + latitude: 37.771935, + longitude: -122.469829 + }, + distance: 1000 + } + } +}) { + name +} +``` + +#### within + +The `within` filter matches all entities where the location given by a field is within a defined `polygon`. + +```graphql +queryHotel(filter: { + location: { + within: { + polygon: { + coordinates: [{ + points: [{ + latitude: 11.11, + longitude: 22.22 + }, { + latitude: 15.15, + longitude: 16.16 + }, { + latitude: 20.20, + longitude: 21.21 + }, { + latitude: 11.11, + longitude: 22.22 + }] + }], + } + } + } +}) { + name +} +``` + +#### contains + +The `contains` filter matches all entities where the `Polygon` or `MultiPolygon` field contains another given `point` or `polygon`. + +:::tip +Only one `point` or `polygon` can be taken inside the `ContainsFilter` at a time. +::: + +A `contains` example using `point`: + +```graphql +queryHotel(filter: { + area: { + contains: { + point: { + latitude: 0.5, + longitude: 2.5 + } + } + } +}) { + name +} +``` + +A `contains` example using `polygon`: + +```graphql + queryHotel(filter: { + area: { + contains: { + polygon: { + coordinates: [{ + points:[{ + latitude: 37.771935, + longitude: -122.469829 + }] + }], + } + } + } +}) { + name +} +``` + +#### intersects + +The `intersects` filter matches all entities where the `Polygon` or `MultiPolygon` field intersects another given `polygon` or `multiPolygon`. + +:::tip +Only one `polygon` or `multiPolygon` can be given inside the `IntersectsFilter` at a time. +::: + +```graphql + queryHotel(filter: { + area: { + intersects: { + multiPolygon: { + polygons: [{ + coordinates: [{ + points: [{ + latitude: 11.11, + longitude: 22.22 + }, { + latitude: 15.15, + longitude: 16.16 + }, { + latitude: 20.20, + longitude: 21.21 + }, { + latitude: 11.11, + longitude: 22.22 + }] + }, { + points: [{ + latitude: 11.18, + longitude: 22.28 + }, { + latitude: 15.18, + longitude: 16.18 + }, { + latitude: 20.28, + longitude: 21.28 + }, { + latitude: 11.18, + longitude: 22.28 + }] + }] + }, { + coordinates: [{ + points: [{ + latitude: 91.11, + longitude: 92.22 + }, { + latitude: 15.15, + longitude: 16.16 + }, { + latitude: 20.20, + longitude: 21.21 + }, { + latitude: 91.11, + longitude: 92.22 + }] + }, { + points: [{ + latitude: 11.18, + longitude: 22.28 + }, { + latitude: 15.18, + longitude: 16.18 + }, { + latitude: 20.28, + longitude: 21.28 + }, { + latitude: 11.18, + longitude: 22.28 + }] + }] + }] + } + } + } + }) { + name + } +``` + +### Union + +Unions can be queried only as a field of a type. Union queries can't be ordered, but you can filter and paginate them. + +:::note +Union queries do not support the `order` argument. +The results will be ordered by the `uid` of each node in ascending order. +::: + +For example, the following schema will enable to query the `members` union field in the `Home` type with filters and pagination. + +```graphql +union HomeMember = Dog | Parrot | Human + +type Home { + id: ID! + address: String + + members(filter: HomeMemberFilter, first: Int, offset: Int): [HomeMember] +} + +# Not specifying a field in the filter input will be considered as a null value for that field. +input HomeMemberFilter { + # `homeMemberTypes` is used to specify which types to report back. + homeMemberTypes: [HomeMemberType] + + # specifying a null value for this field means query all dogs + dogFilter: DogFilter + + # specifying a null value for this field means query all parrots + parrotFilter: ParrotFilter + # note that there is no HumanFilter because the Human type wasn't filterable +} + +enum HomeMemberType { + dog + parrot + human +} + +input DogFilter { + id: [ID!] + category: Category_hash + breed: StringTermFilter + and: DogFilter + or: DogFilter + not: DogFilter +} + +input ParrotFilter { + id: [ID!] + category: Category_hash + and: ParrotFilter + or: ParrotFilter + not: ParrotFilter +} +``` + +:::tip +Not specifying any filter at all or specifying any of the `null` values for a filter will query all members. +::: + + + +The same example, but this time with filter and pagination arguments: + +```graphql +query { + queryHome { + address + members ( + filter: { + homeMemberTypes: [dog, parrot] # means we don't want to query humans + dogFilter: { + # means in Dogs, we only want to query "German Shepherd" breed + breed: { allofterms: "German Shepherd"} + } + # not specifying any filter for parrots means we want to query all parrots + } + first: 5 + offset: 10 + ) { + ... on Animal { + category + } + ... on Dog { + breed + } + ... on Parrot { + repeatsWords + } + ... on HomeMember { + name + } + } + } +} +``` + +### Vector embedding + +The `@search` directive is used in conjunction with `@embeding` directive to define the HNSW index on vector embeddings. These vector embeddings are obtained from external Machine Learning models. + +```graphql +type User { + userID: ID! + name: String! + name_v: [Float!] @embedding @search(by: ["hnsw(metric: euclidean, exponent: 4)"]) +} +``` + +In this schema, the field `name_v` is an embedding on which the HNSW algorithm is used to create a vector search index. + +The metric used to compute the distance between vectors (in this example) is Euclidean distance. Other possible metrics are `cosine` and `dotproduct`. + +The directive, `@embedding`, designates one or more fields as vector embeddings. + +The `exponent` value is used to set reasonable defaults for HNSW internal tuning parameters. It is an integer representing an approximate number for the vectors expected in the index, in terms of power of 10. Default is “4” (10^4 vectors). \ No newline at end of file diff --git a/docusaurus-docs/docs-graphql/schema/documentation.md b/docusaurus-docs/docs-graphql/schema/documentation.md new file mode 100644 index 00000000..d41710ad --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/documentation.md @@ -0,0 +1,60 @@ +--- +title: "Documentation and Comments" +description: "Dgraph accepts GraphQL documentation comments, which get passed through to the generated API and shown as documentation in GraphQL tools." + +--- + +## Schema Documentation Processed by Generated API +Dgraph accepts GraphQL documentation comments (e.g. `""" This is a graphql comment """`), which get passed through to the generated API and thus shown as documentation in GraphQL tools like GraphiQL, GraphQL Playground, Insomnia etc. + +## Schema Documentation Ignored by Generated API +You can also add `# ...` comments where ever you like. These comments are not passed via the generated API and are not visible in the API docs. + +## Reserved Namespace in Dgraph +Any comment starting with `# Dgraph.` is **reserved** and **should not be used** to document your input schema. + +## An Example +An example that adds comments to a type as well as fields within the type would be as below. + +```graphql +""" +Author of questions and answers in a website +""" +type Author { +# ... username is the author name , this is an example of a dropped comment + username: String! @id +""" +The questions submitted by this author +""" + questions: [Question] @hasInverse(field: author) +""" +The answers submitted by this author +""" + answers: [Answer] @hasInverse(field: author) +} +``` + +It is also possible to add comments for queries or mutations that have been added via the custom directive. +```graphql +type Query { +""" +This query involves a custom directive, and gets top authors. +""" +getTopAuthors(id: ID!): [Author] @custom(http: { + url: "http://api.github.com/topAuthors", + method: "POST", + introspectionHeaders: ["Github-Api-Token"], + secretHeaders: ["Authorization:Github-Api-Token"] + }) +} +``` +The screenshots below shows how the documentation appear in a Graphql API explorer. + + +![Schema Documentation On Types](/images/graphql/authors1.png) +

    Schema Documentation on Types

    + + +![Schema Documentation On Custom Directive](/images/graphql/CustomDirectiveDocumentation.png) +

    Schema Documentation on Custom directive

    + diff --git a/docusaurus-docs/docs-graphql/schema/graph-links.md b/docusaurus-docs/docs-graphql/schema/graph-links.md new file mode 100644 index 00000000..da675882 --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/graph-links.md @@ -0,0 +1,110 @@ +--- +title: "Relationships" +description: "All the data in your app form a GraphQL data graph. That graph has nodes of particular types and relationships between the nodes to form the data graph." + +--- + +All the data in your app form a GraphQL data graph. That graph has nodes of particular types and relationships between the nodes to form the data graph. + +Dgraph uses the types and fields in the schema to work out how to link that graph, what to accept for mutations and what shape responses should take. + +Relationships in that graph are directed: either pointing in one direction or two. You use the `@hasInverse` directive to tell Dgraph how to handle two-way relationship. + +### One-way relationship + +If you only ever need to traverse the graph between nodes in a particular direction, then your schema can simply contain the types and the relationship. + +In this schema, posts have an author - each post in the graph is linked to its author - but that relationship is one-way. + +```graphql +type Author { + ... +} + +type Post { + ... + author: Author +} +``` + +You'll be able to traverse the graph from a Post to its author, but not able to traverse from an author to all their posts. Sometimes that's the right choice, but mostly, you'll want two way relationships. + +Note: Dgraph won't store the reverse direction, so if you change your schema to include a `@hasInverse`, you'll need to migrate the data to add the reverse edges. + +### Two-way relationship + + +In Dgraph, the directive `@hasInverse` is used to create a two-way relationship. + +```graphql +type Author { + ... + posts: [Post] @hasInverse(field: author) +} + +type Post { + ... + author: Author +} +``` + +With that, `posts` and `author` are just two directions of the same link in the graph. For example, adding a new post with + +```graphql +mutation { + addPost(input: [ + { ..., author: { username: "diggy" }} + ]) { + ... + } +} +``` + +will automatically add it to Diggy's list of `posts`. Deleting the post will remove it from Diggy's `posts`. Similarly, using an update mutation on an author to insert a new post will automatically add Diggy as the author + +```graphql +mutation { + updateAuthor(input: { + filter: { username: { eq: "diggy "}}, + set: { posts: [ {... new post ...}]} + }) { + ... + } +} +``` + +### Many edges + +It's not really possible to auto-detect what a schema designer meant for two-way edges. There's not even only one possible relationship between two types. Consider, for example, if an app recorded the posts an `Author` had recently liked (so it can suggest interesting material) and just a tally of all likes on a post. + +```graphql +type Author { + ... + posts: [Post] + recentlyLiked: [Post] +} + +type Post { + ... + author: Author + numLikes: Int +} +``` + +It's not possible to detect what is meant here as a one-way edge, or which edges are linked as a two-way connection. That's why `@hasInverse` is needed - so you can enforce the semantics your app needs. + +```graphql +type Author { + ... + posts: [Post] @hasInverse(field: author) + recentlyLiked: [Post] +} + +type Post { + ... + author: Author + numLikes: Int +} +``` + +Now, Dgraph will manage the connection between posts and authors and you can get on with concentrating on what your app needs to to - suggesting them interesting content. diff --git a/docusaurus-docs/docs-graphql/schema/index.md b/docusaurus-docs/docs-graphql/schema/index.md new file mode 100644 index 00000000..3c6dec89 --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/index.md @@ -0,0 +1,12 @@ +--- +title: "Schema" + +--- + +This section describes all the things you can put in your input GraphQL schema, and what gets generated from that. + +The process for serving GraphQL with Dgraph is to add a set of GraphQL type definitions using the `/admin` endpoint. Dgraph takes those definitions, generates queries and mutations, and serves the generated GraphQL schema. + +The input schema may contain interfaces, types and enums that follow the usual GraphQL syntax and validation rules. + +If you want to make your schema editing experience nicer, you should use an editor that does syntax highlighting for GraphQL. With that, you may also want to include the definitions [here](/graphql/schema/dgraph-schema) as an import. diff --git a/docusaurus-docs/docs-graphql/schema/migration.md b/docusaurus-docs/docs-graphql/schema/migration.md new file mode 100644 index 00000000..93c1401b --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/migration.md @@ -0,0 +1,215 @@ +--- +title: "Schema Migration" +description: "This document describes all the things that you need to take care while doing a schema update or migration." + +--- + +In every app's development lifecycle, there's a point where the underlying schema doesn't fit the requirements and must be changed for good. +That requires a migration for both schema and the underlying data. +This article will guide you through common migration scenarios you can encounter with Dgraph and help you avoid any pitfalls around them. + +These are the most common scenarios that can occur: +* Renaming a type +* Renaming a field +* Changing a field's type +* Adding `@id` to an existing field + +:::note +As long as you can avoid migration, avoid it. +Because there can be scenarios where you might need to update downstream clients, which can be hard. +So, its always best to try out things first, once you are confident enough, then only push them to +production. +::: + +### Renaming a type + +Let's say you had the following schema: + +```graphql +type User { + id: ID! + name: String +} +``` + +and you had your application working fine with it. Now, you feel that the name `AppUser` would be +more sensible than the name `User` because `User` seems a bit generic to you. Then you are in a +situation where you need migration. + +This can be handled in a couple of ways: +1. Migrate all the data for type `User` to use the new name `AppUser`. OR, +2. Just use the [`@dgraph(type: ...)`](/graphql/[directive-dgraph](directive-dgraph)) directive to maintain backward compatibility + with the existing data. + +Depending on your use-case, you might find option 1 or 2 better for you. For example, if you +have accumulated very little data for the `User` type till now, then you might want to go with +option #1. But, if you have an active application with a very large dataset then updating the +node of each user may not be a thing you might want to commit to, as that can require some +maintenance downtime. So, option #2 could be a better choice in such conditions. + +Option #2 makes your new schema compatible with your existing data. Here's an example: + +```graphql +type AppUser @dgraph(type: "User") { + id: ID! + name: String +} +``` + +So, no downtime required. Migration is done by just updating your schema. Fast, easy, and simple. + +Note that, irrespective of what option you choose for migration on Dgraph side, you will still +need to migrate your GraphQL clients to use the new name in queries/mutations. For example, the +query `getUser` would now be renamed to `getAppUser`. So, your downstream clients need to update +that bit in the code. + +### Renaming a field + +Just like renaming a type, let's say you had the following working schema: + +```graphql +type User { + id: ID! + name: String + phone: String +} +``` + +and now you figured that it would be better to call `phone` as `tel`. You need migration. + +You have the same two choices as before: +1. Migrate all the data for the field `phone` to use the new name `tel`. OR, +2. Just use the [`@dgraph(pred: ...)`](/graphql/[directive-dgraph](directive-dgraph)) directive to maintain backward compatibility + with the existing data. + +Here's an example if you want to go with option #2: + +```graphql +type User { + id: ID! + name: String + tel: String @dgraph(pred: "User.phone") +} +``` + +Again, note that, irrespective of what option you choose for migration on Dgraph side, you will +still need to migrate your GraphQL clients to use the new name in queries/mutations. For example, +the following query: + +```graphql +query { + getUser(id: "0x05") { + name + phone + } +} +``` + +would now have to be changed to: + +```graphql +query { + getUser(id: "0x05") { + name + tel + } +} +``` + +So, your downstream clients need to update that bit in the code. + +### Changing a field's type + +There can be multiple scenarios in this category: +* List -> Single item +* `String` -> `Int` +* Any other combination you can imagine + +It is strictly advisable that you figure out a solid schema before going in production, so that +you don't have to deal with such cases later. Nevertheless, if you ended up in such a situation, you +have to migrate your data to fit the new schema. There is no easy way around here. + +An example scenario is, if you initially had this schema: + +```graphql +type Todo { + id: ID! + task: String + owner: Owner +} + +type Owner { + name: String! @id + todo: [Todo] @hasInverse(field:"owner") +} +``` + +and later you decided that you want an owner to have only one todo at a time. So, you want to +make your schema look like this: + +```graphql +type Todo { + id: ID! + task: String + owner: Owner +} + +type Owner { + name: String! @id + todo: Todo @hasInverse(field:"owner") +} +``` + +If you try updating your schema, you may end up getting an error like this: + +```txt +resolving updateGQLSchema failed because succeeded in saving GraphQL schema but failed to alter Dgraph schema - GraphQL layer may exhibit unexpected behavior, reapplying the old GraphQL schema may prevent any issues: Schema change not allowed from [uid] => uid without deleting pred: owner.todo +``` + +That is a red flag. As the error message says, you should revert to the old schema to make your +clients work correctly. In such cases, you should have migrated your data to fit the new schema +_before_ applying the new schema. The steps for such a data migration varies from case to case, +and so can't all be listed down here, but you need to migrate your data first, is all you need +to keep in mind while making such changes. + +### Adding `@id` to an existing field + +Let's say you had the following schema: + +```graphql +type User { + id: ID! + username: String +} +``` + +and now you think that `username` must be unique for every user. So, you change the schema to this: + +```graphql +type User { + id: ID! + username: String! @id +} +``` + +Now, here's the catch: with the old schema, it was possible that there could have existed +multiple users with the username `Alice`. If that was true, then the queries would break in such +cases. Like, if you run this query after the schema change: + +```graphql +query { + getUser(username: "Alice") { + id + } +} +``` + +Then it might error out saying: + +```txt +A list was returned, but GraphQL was expecting just one item. This indicates an internal error - probably a mismatch between the GraphQL and Dgraph/remote schemas. The value was resolved as null (which may trigger GraphQL error propagation) and as much other data as possible returned. +``` + +So, while making such a schema change, you need to make sure that the underlying data really +honors the uniqueness constraint on the username field. If not, you need to do a data migration +to honor such constraints. diff --git a/docusaurus-docs/docs-graphql/schema/reserved.md b/docusaurus-docs/docs-graphql/schema/reserved.md new file mode 100644 index 00000000..fea6d011 --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/reserved.md @@ -0,0 +1,53 @@ +--- +title: "Reserved Names" +description: "This document provides the full list of names that are reserved and can’t be used to define any other identifiers." + +--- + +The following names are reserved and can't be used to define any other identifiers: + +- `Int` +- `Float` +- `Boolean` +- `String` +- `DateTime` +- `ID` +- `uid` +- `Subscription` +- `as` (case-insensitive) +- `Query` +- `Mutation` +- `Point` +- `PointList` +- `Polygon` +- `MultiPolygon` +- `Aggregate` (as a suffix of any identifier name) + + +For each type, Dgraph generates a number of GraphQL types needed to operate the GraphQL API, these generated type names also can't be present in the input schema. For example, for a type `Author`, Dgraph generates: + +- `AuthorFilter` +- `AuthorOrderable` +- `AuthorOrder` +- `AuthorRef` +- `AddAuthorInput` +- `UpdateAuthorInput` +- `AuthorPatch` +- `AddAuthorPayload` +- `DeleteAuthorPayload` +- `UpdateAuthorPayload` +- `AuthorAggregateResult` + +**Mutations** + +- `addAuthor` +- `updateAuthor` +- `deleteAuthor` + +**Queries** + +- `getAuthor` +- `queryAuthor` +- `aggregateAuthor` + +Thus if `Author` is present in the input schema, all of those become reserved type names. diff --git a/docusaurus-docs/docs-graphql/schema/types.md b/docusaurus-docs/docs-graphql/schema/types.md new file mode 100644 index 00000000..786a72e8 --- /dev/null +++ b/docusaurus-docs/docs-graphql/schema/types.md @@ -0,0 +1,464 @@ +--- +title: "Types" +description: "How to use GraphQL types to set a GraphQL schema for the Dgraph database. Includes scalars, enums, types, interfaces, union, password, & geolocation types." + +--- + +This page describes how to use GraphQL types to set the a GraphQL schema for +Dgraph database. + +### Scalars + +Dgraph's GraphQL implementation comes with the standard GraphQL scalar types: +`Int`, `Float`, `String`, `Boolean` and `ID`. There's also an `Int64` scalar, +and a `DateTime` scalar type that is represented as a string in RFC3339 format. + +Scalar types, including `Int`, `Int64`, `Float`, `String` and `DateTime`; can be +used in lists. Lists behave like an unordered set in Dgraph. For example: +`["e1", "e1", "e2"]` may get stored as `["e2", "e1"]`, so duplicate values will +not be stored and order might not be preserved. All scalars may be nullable or +non-nullable. + +:::noteThe `Int64` type introduced in release v20.11 represents +a signed integer ranging between `-(2^63)` and `(2^63 -1)`. Signed `Int64` values +in this range will be parsed correctly by Dgraph as long as the client can +serialize the number correctly in JSON. For example, a JavaScript client might +need to use a serialization library such as +[`json-bigint`](https://www.npmjs.com/package/json-bigint) to correctly +write an `Int64` value in JSON.::: + +The `ID` type is special. IDs are auto-generated, immutable, and can be treated as strings. Fields of type `ID` can be listed as nullable in a schema, but Dgraph will never return null. + +* *Schema rule*: `ID` lists aren't allowed - e.g. `tags: [String]` is valid, but `ids: [ID]` is not. +* *Schema rule*: Each type you define can have at most one field with type `ID`. That includes IDs implemented through interfaces. + +It's not possible to define further scalars - you'll receive an error if the input schema contains the definition of a new scalar. + +For example, the following GraphQL type uses all of the available scalars. + +```graphql +type User { + userID: ID! + name: String! + lastSignIn: DateTime + recentScores: [Float] + reputation: Int + active: Boolean +} +``` + +Scalar lists in Dgraph act more like sets, so `tags: [String]` would always contain unique tags. Similarly, `recentScores: [Float]` could never contain duplicate scores. + +### Vectors + +A Float array can be used as a vector using `@embedding` directive. It denotes a vector of floating point numbers, i.e an ordered array of float32. A type can contain more than one vector predicate. + +Vectors are normaly used to store embeddings obtained from an ML model. + +When a Float vector is indexed, the GraphQL `querySimilarByEmbedding` and `querySimilarById` functions can be used for [similarity search](/graphql/[vector-similarity](vector-similarity)). + +A simple example of adding a vector embedding on `name` to `User` type is shown below. + +```graphql +type User { + userID: ID! + name: String! + name_v: [Float!] @embedding @search(by: ["hnsw(metric: euclidean, exponent: 4)"]) +} +``` + +In this schema, the field `name_v` is an embedding on which the [@search ](/graphql/schema/directives/search/#vector-embedding) directive for vector embeddings is used. + +### The `ID` type + +In Dgraph, every node has a unique 64-bit identifier that you can expose in GraphQL using the `ID` type. An `ID` is auto-generated, immutable and never reused. Each type can have at most one `ID` field. + +The `ID` type works great when you need to use an identifier on nodes and don't need to set that identifier externally (for example, posts and comments). + +For example, you might set the following type in a schema: + +```graphql +type Post { + id: ID! + ... +} +``` + +In a single-page app, you could generate the page for `http://.../posts/0x123` when a user clicks to view the post with `ID` 0x123. Your app can then use a `getPost(id: "0x123") { ... }` GraphQL query to fetch the data used to generate the page. + +For input and output, `ID`s are treated as strings. + +You can also update and delete posts by `ID`. + +### Enums + +You can define enums in your input schema. For example: + +```graphql +enum Tag { + GraphQL + Database + Question + ... +} + +type Post { + ... + tags: [Tag!]! +} +``` + +### Types + +From the built-in scalars and the enums you add, you can generate types in the usual way for GraphQL. For example: + +```graphql +enum Tag { + GraphQL + Database + Dgraph +} + +type Post { + id: ID! + title: String! + text: String + datePublished: DateTime + tags: [Tag!]! + author: Author! +} + +type Author { + id: ID! + name: String! + posts: [Post!] + friends: [Author] +} +``` + +* *Schema rule*: Lists of lists aren't accepted. For example: `multiTags: [[Tag!]]` isn't valid. +* *Schema rule*: Fields with arguments are not accepted in the input schema unless the field is implemented using the `@custom` directive. + +### Interfaces + +GraphQL interfaces allow you to define a generic pattern that multiple types follow. When a type implements an interface, that means it has all fields of the interface and some extras. + +According to GraphQL specifications, you can have the same fields in implementing types as the interface. In such cases, the GraphQL layer will generate the correct Dgraph schema without duplicate fields. + +If you repeat a field name in a type, it must be of the same type (including list or scalar types), and it must have the same nullable condition as the interface's field. Note that if the interface's field has a directive like `@search` then it will be inherited by the implementing type's field. + +For example: + +```graphql +interface Fruit { + id: ID! + price: Int! +} + +type Apple implements Fruit { + id: ID! + price: Int! + color: String! +} + +type Banana implements Fruit { + id: ID! + price: Int! +} +``` + +:::tip +GraphQL will generate the correct Dgraph schema where fields occur only once. +::: + +The following example defines the schema for posts with comment threads. As mentioned, Dgraph will fill in the `Question` and `Comment` types to make the full GraphQL types. + +```graphql +interface Post { + id: ID! + text: String + datePublished: DateTime +} + +type Question implements Post { + title: String! +} +type Comment implements Post { + commentsOn: Post! +} +``` + +The generated schema will contain the full types, for example, `Question` and `Comment` get expanded as: + +```graphql +type Question implements Post { + id: ID! + text: String + datePublished: DateTime + title: String! +} + +type Comment implements Post { + id: ID! + text: String + datePublished: DateTime + commentsOn: Post! +} +``` + +:::note +If you have a type that implements two interfaces, Dgraph won't allow a field of the same name in both interfaces, except for the `ID` field. +::: + +Dgraph currently allows this behavior for `ID` type fields since the `ID` type field is not a predicate. Note that in both interfaces and the implementing type, the nullable condition and type (list or scalar) for the `ID` field should be the same. For example: + +```graphql +interface Shape { + id: ID! + shape: String! +} + +interface Color { + id: ID! + color: String! +} + +type Figure implements Shape & Color { + id: ID! + shape: String! + color: String! + size: Int! +} +``` + +### Union type + +GraphQL Unions represent an object that could be one of a list of GraphQL Object types, but provides for no guaranteed fields between those types. So no fields may be queried on this type without the use of type refining fragments or inline fragments. + +Union types have the potential to be invalid if incorrectly defined: + +- A `Union` type must include one or more unique member types. +- The member types of a `Union` type must all be Object base types; [Scalar](#scalars), [Interface](#interfaces) and `Union` types must not be member types of a Union. Similarly, wrapping types must not be member types of a Union. + + +For example, the following defines the `HomeMember` union type: + +```graphql +enum Category { + Fish + Amphibian + Reptile + Bird + Mammal + InVertebrate +} + +interface Animal { + id: ID! + category: Category @search +} + +type Dog implements Animal { + breed: String @search +} + +type Parrot implements Animal { + repeatsWords: [String] +} + +type Cheetah implements Animal { + speed: Float +} + +type Human { + name: String! + pets: [Animal!]! +} + +union HomeMember = Dog | Parrot | Human + +type Zoo { + id: ID! + animals: [Animal] + city: String +} + +type Home { + id: ID! + address: String + members: [HomeMember] +} +``` + +So, when you want to query members in a `Home`, you will be able to do a GraphQL query like this: + +```graphql +query { + queryHome { + address + members { + ... on Animal { + category + } + ... on Dog { + breed + } + ... on Parrot { + repeatsWords + } + ... on Human { + name + } + } + } +} +``` + +And the results of the GraphQL query will look like the following: + +```json +{ + "data": { + "queryHome": { + "address": "Earth", + "members": [ + { + "category": "Mammal", + "breed": "German Shepherd" + }, { + "category": "Bird", + "repeatsWords": ["Good Morning!", "I am a GraphQL parrot"] + }, { + "name": "Alice" + } + ] + } + } +} +``` + +### Password type + +A password for an entity is set with setting the schema for the node type with `@secret` directive. Passwords cannot be queried directly, only checked for a match using the `checkTypePassword` function where `Type` is the node type. +The passwords are encrypted using [Bcrypt](https://en.wikipedia.org/wiki/Bcrypt). + +:::note +For security reasons, Dgraph enforces a minimum password length of 6 characters on `@secret` fields. +::: + +For example, to set a password, first set schema: + +1. Cut-and-paste the following schema into a file called `schema.graphql` + ```graphql + type Author @secret(field: "pwd") { + name: String! @id + } + ``` + +2. Run the following curl request: + ```bash + curl -X POST localhost:8080/admin/schema --data-binary '@schema.graphql' + ``` + +3. Set the password by pointing to the `graphql` endpoint (http://localhost:8080/graphql): + ```graphql + mutation { + addAuthor(input: [{name:"myname", pwd:"mypassword"}]) { + author { + name + } + } + } + ``` + +The output should look like: +```json +{ + "data": { + "addAuthor": { + "author": [ + { + "name": "myname" + } + ] + } + } +} +``` + +You can check a password: +```graphql +query { + checkAuthorPassword(name: "myname", pwd: "mypassword") { + name + } +} +``` + +output: +```json +{ + "data": { + "checkAuthorPassword": { + "name": "myname" + } + } +} +``` + +If the password is wrong you will get the following response: +```json +{ + "data": { + "checkAuthorPassword": null + } +} +``` + +### Geolocation types + +Dgraph GraphQL comes with built-in types to store Geolocation data. Currently, it supports `Point`, `Polygon` and `MultiPolygon`. These types are useful in scenarios like storing a location's GPS coordinates, representing a city on the map, etc. + +For example: + +```graphql +type Hotel { + id: ID! + name: String! + location: Point + area: Polygon +} +``` + +#### Point + +```graphql +type Point { + longitude: Float! + latitude: Float! +} +``` + +#### PointList + +```graphql +type PointList { + points: [Point!]! +} +``` + +#### Polygon + +```graphql +type Polygon { + coordinates: [PointList!]! +} +``` + +#### MultiPolygon + +```graphql +type MultiPolygon { + polygons: [Polygon!]! +} +``` diff --git a/docusaurus-docs/docs-graphql/security/RBAC-rules.md b/docusaurus-docs/docs-graphql/security/RBAC-rules.md new file mode 100644 index 00000000..a389bbe6 --- /dev/null +++ b/docusaurus-docs/docs-graphql/security/RBAC-rules.md @@ -0,0 +1,121 @@ +--- +title: "RBAC rules" +description: "Dgraph support Role Based Access Control (RBAC) on GraphQL API operations." + +--- + +Dgraph support Role Based Access Control (RBAC) on GraphQL API operations: you can specify who can invoke query, add, update and delete operations on each type of your GraphQL schema based on JWT claims, using the ``@auth`` directive. + + +To implement Role Based Access Control on GraphQL API operations : +1. Ensure your have configured the GraphQL schema to [Handle JWT tokens](/graphql/[jwt](jwt)) using ``# Dgraph.Authorization`` + This step is important to be able to use the [JWT claims](/graphql/[graphql/security/_index#jwt-claims](graphql/security/_index#jwt-claims)) +2. Annotate the Types in the GraphQL schema with the `@auth` directive and specify conditions to be met for `query`, `add`, `update` or `delete` operations. +3. Deploy the GraphQL schema either with a [schema update](/graphql/admin/#using-updategqlschema-to-add-or-modify-a-schema) or via the Cloud console's [Schema](https://cloud.dgraph.io/_/schema) page. + + + +The generic format of RBAC rule is as follow +```graphql +type User @auth( + query: { rule: "{$: { eq: \"\" } }" }, + add: { rule: "{$: { in: [\"\",...] } }" }, + update: ... + delete: ... +) +``` +RBAC rule supports ``eq`` or ``in`` functions to test the value of a [JWT claim](/graphql/[graphql/security/_index#jwt-claims](graphql/security/_index#jwt-claims)) from the JWT token payload. + +The claim value may be a string or array of strings. + +For example the following schema has a @auth directive specifying that a delete operation on a User object can only be done if the connected user has a 'ROLE' claim in the JWT token with the value "admin" : +```graphql +type User @auth( + delete: { rule: "{$ROLE: { eq: \"admin\" } }"} + ) { + username: String! + @id todos: [Todo] +} +``` +The following JWT token payload will pass the test (provided that Dgraph.Authorization is configured correctly with the right namespace) +```json +{ + "aud": "dgraph", + "exp": 1695359621, + "https://dgraph.io/jwt/claims": { + "ROLE": "admin", + "USERID": "testuser@dgraph.io" + }, + "iat": 1695359591, + ... +} +``` +The rule is also working with an array of roles in the JWT token: +```json +{ + "aud": "dgraph", + "exp": 1695359621, + "https://dgraph.io/jwt/claims": { + "ROLE": ["admin","user"] + "USERID": "testuser@dgraph.io" + }, + "iat": 1695359591, + ... +} +``` +In the case of an array used with the "in" function, the rule is valid is at least one of the claim value is "in" the provided list. + +For example, with the following rule, the previous token will be valid because one of the ROLE is in the authorized roles. +```graphql +type User @auth( + delete: { rule: "{$ROLE: { in: [\"admin\",\"superadmin\"] } }"} + ) { + username: String! + @id todos: [Todo] +} +``` + +## rules combination + +Rules can be combined with the logical connectives ``and``, ``or`` and ``not``. +A permission can be a mixture of graph traversals and role based rules. + +In the todo app, you can express, for example, that you can delete a `Todo` if you are the author, or are the site admin. + +```graphql +type Todo @auth( + delete: { or: [ + { rule: "query ($USER: String!) { ... }" }, # you are the author graph query + { rule: "{$ROLE: { eq: \"ADMIN\" } }" } + ]} +) +``` + + +## claims + +Rules may use claims from the namespace specified by the [# Dgraph.Authorization](/graphql/[jwt](jwt)) or claims present at the root level of the JWT payload. + +For example, given the following JWT payload + +```json +{ + "https://xyz.io/jwt/claims": [ + "ROLE": "ADMIN" + ], + "email": "random@example.com" +} +``` + +If `https://xyz.io/jwt/claims` is declared as the namespace to use, the authorization rules can use ``$ROLE`` but also ``$email``. + +In cases where the same claim is present in the namespace and at the root level, the claim value in the namespace takes precedence. + +## `@auth` on Interfaces + +The rules provided inside the `@auth` directive on an interface will be applied as an `AND` rule to those on the implementing types. + +A type inherits the `@auth` rules of all the implemented interfaces. The final authorization rule is an `AND` of the type's `@auth` rule and of all the implemented interfaces. + + + diff --git a/docusaurus-docs/docs-graphql/security/auth-tips.md b/docusaurus-docs/docs-graphql/security/auth-tips.md new file mode 100644 index 00000000..d6388762 --- /dev/null +++ b/docusaurus-docs/docs-graphql/security/auth-tips.md @@ -0,0 +1,79 @@ +--- +title: "Authorization tips" +description: "Given an authentication mechanism and a signed JSON Web Token (JWT), the @auth directive tells Dgraph how to apply authorization." + +--- + +## Public Data + +Many apps have data that can be accessed by anyone, logged in or not. That also works nicely with Dgraph auth rules. + +For example, in Twitter, StackOverflow, etc. you can see authors and posts without being signed it - but you'd need to be signed in to add a post. With Dgraph auth rules, if a type doesn't have, for example, a `query` auth rule or the auth rule doesn't depend on a JWT value, then the data can be accessed without a signed JWT. + +For example, the todo app might allow anyone, logged in or not, to view any author, but not make any mutations unless logged in as the author or an admin. That would be achieved by rules like the following. + +```graphql +type User @auth( + # no query rule + add: { rule: "{$ROLE: { eq: \"ADMIN\" } }" }, + update: ... + delete: ... +) { + username: String! @id + todos: [Todo] +} +``` + +Maybe some todos can be marked as public and users you aren't logged in can see those. + +```graphql +type Todo @auth( + query: { or: [ + # you are the author + { rule: ... }, + # or, the todo is marked as public + { rule: """query { + queryTodo(filter: { isPublic: { eq: true } } ) { + id + } + }"""} + ]} +) { + ... + isPublic: Boolean +} + +``` + +Because the rule doesn't depend on a JWT value, it can be successfully evaluated for users who aren't logged in. + +Ensuring that requests are from an authenticated JWT, and no further restrictions, can be done by arranging the JWT to contain a value like `"isAuthenticated": "true"`. For example, + + +```graphql +type User @auth( + query: { rule: "{$isAuthenticated: { eq: \"true\" } }" }, +) { + username: String! @id + todos: [Todo] +} +``` + +specifies that only authenticated users can query other users. + +### blocking an operation of everyone + +If the `ROLE` claim isn't present in a JWT, any rule that relies on `ROLE` simply evaluates to false. + +You can also simply disallow some queries and mutations by using a condition on a non-existing claim: + +If you know that your JWTs never contain the claim `DENIED`, then a rule such as + +```graphql +type User @auth( + delete: { rule: "{$DENIED: { eq: \"DENIED\" } }"} +) { + ... +} +``` +will block the delete operation for everyone. \ No newline at end of file diff --git a/docusaurus-docs/docs-graphql/security/cors.md b/docusaurus-docs/docs-graphql/security/cors.md new file mode 100644 index 00000000..88c8df14 --- /dev/null +++ b/docusaurus-docs/docs-graphql/security/cors.md @@ -0,0 +1,24 @@ +--- +title: "Restrict origins" + +--- + +To restrict origins of HTTP requests : + +1. Add lines starting with `# Dgraph.Allow-Origin` at the end of your GraphQL schema specifying the origins allowed. +2. Deploy the GraphQL schema either with a [schema update](/graphql/admin/#using-updategqlschema-to-add-or-modify-a-schema) or via the Cloud console's [Schema](https://cloud.dgraph.io/_/schema) page. + +For example, the following will restrict all origins except the ones specified. + +``` +# Dgraph.Allow-Origin "https://example.com" +# Dgraph.Allow-Origin "https://www.example.com" +``` + + +`https://cloud.dgraph.io` is always allowed so that ``API explorer``, in Dgraph Cloud console, continues to work. + +:::note +- CORS restrictions only apply to browsers. +- By default, ``/graphql`` endpoint does not limit the request origin (`Access-Control-Allow-Origin: *`). +::: \ No newline at end of file diff --git a/docusaurus-docs/docs-graphql/security/graphtraversal-rules.md b/docusaurus-docs/docs-graphql/security/graphtraversal-rules.md new file mode 100644 index 00000000..8eba1b49 --- /dev/null +++ b/docusaurus-docs/docs-graphql/security/graphtraversal-rules.md @@ -0,0 +1,140 @@ +--- +title: "ABAC rules" +description: "Dgraph support Attribute Based Access Control (ABAC) on GraphQL API operations: you can specify which data a user can query, add, update or delete for each type of your GraphQL schema based on JWT claims, using the ``@auth`` directive and graph traversal queries." + +--- + +Dgraph support Attribute Based Access Control (ABAC) on GraphQL API operations: you can specify which data a user can query, add, update or delete for each type of your GraphQL schema based on JWT claims, using the ``@auth`` directive and graph traversal queries. + + +To implement graph traversal rule on GraphQL API operations : +1. Ensure your have configured the GraphQL schema to [Handle JWT tokens](/graphql/[jwt](jwt)) using ``# Dgraph.Authorization`` + This step is important to be able to use the [JWT claims](/graphql/[graphql/security/_index#jwt-claims](graphql/security/_index#jwt-claims)) +2. Annotate the Types in the GraphQL schema with the `@auth` directive and specify conditions to be met for `query`, `add`, `update` or `delete` operations. +3. Deploy the GraphQL schema either with a [schema update](/graphql/admin/#using-updategqlschema-to-add-or-modify-a-schema) or via the Cloud console's [Schema](https://cloud.dgraph.io/_/schema) page. + + +A graph traversal rule is expressed as GraphQL query on the type on which the @auth directive applies. + +For example, a rule on ``Contact`` type can only use a ``queryContact`` query : + +```graphql +type Contact @auth( + query: { rule: "query { queryContact(filter: { isPublic: true }) { id } }" }, + add: ... + update: ... + delete: ... +) { + + ... +} +``` + +You can use triple quotation marks. In that case the query can be defined on multiple lines. + +The following schema is also valid: +```graphql +type Contact @auth( + query: { rule: """query { + queryContact(filter: { isPublic: true }) { + id + } + } """ +}) { + + ... +} +``` + +The rules are expressed as GraphQL queries, so they can also have a name and parameters: +```graphql +type Todo @auth( + query: { rule: """ + query ($USER: String!) { + queryTodo(filter: { owner: { eq: $USER } } ) { + id + } + }""" + } +){ + id: ID! + text: String! @search(by: [term]) + owner: String! @search(by: [hash]) +} +``` + +The parameters are replaced at runtime by the corresponding ``claims`` found in the JWT token. In the previous case, the query will be executed with the value of the `USER` claim. + +When a user sends a request on `/graphql` endpoint for a `get` or `query` operation, Dgraph executes the query specified in the @auth directive of the `Type` to build a list of "authorized" UIDs. Dgraph returns only the data matching both the requested data and the "authorized" list. That means that the client can apply any filter condition, the result will be the intersection of the data matching the filter and the "authorized" data. + +The same logic applies for update<Type> and delete<Type>: only the data matching the @auth query are affected. +```graphql +type Todo @auth( + delete: { or: [ + { rule: """query ($USER: String!) { + queryTodo(filter: { owner: { eq: $USER } } ) { + __typename + } + } """ + }, # you are the author graph query + { rule: "{$ROLE: { eq: \"ADMIN\" } }" } + ]} +) +``` + +In the context of @auth directive, Dgraph executes the @auth query differently that a normal query : if the query has nested blocks, all levels must match existing data. Dgraph internally applies a `@cascade` directive, making the directive more like a **pattern matching** condition. + +For example, in the cases of `Todo`, the access will depend not on a value in the todo, but on checking which owner it's linked to. +This means our auth rule must make a step further into the graph to check who the owner is : + +```graphql +type User { + username: String! @id + todos: [Todo] +} + +type Todo @auth( + query: { rule: """ + query ($USER: String!) { + queryTodo { + owner(filter: { username: { eq: $USER } } ) { + __typename + } + } + }""" + } +){ + id: ID! + text: String! + owner: User +} +``` + +The @auth query rule will only return ``Todos`` having an owner matching the condition: the owner ``username`` must be equal the the JWT claim ``USER``. + +All blocks must return some data for the query to succeed. You may want to use the field `__typename` in the most inner block to ensure a data match at this level. + + +### rules combination + +Rules can be combined with the logical connectives ``and``, ``or`` and ``not``. +A permission can be a mixture of graph traversals and role based rules. + +### `@auth` on Interfaces + +The rules provided inside the `@auth` directive on an interface will be applied as an `AND` rule to those on the implementing types. + +A type inherits the `@auth` rules of all the implemented interfaces. The final authorization rule is an `AND` of the type's `@auth` rule and of all the implemented interfaces. + +### claims + +Rules may use claims from the namespace specified by the [# Dgraph.Authorization](/graphql/[jwt](jwt)) or claims present at the root level of the JWT payload. + +### error handling + +When deploying the schema, Dgraph tests if you are using valid queries in your @auth directive. + +For example, using ``queryFilm`` for a rule on a type ``Actor`` will lead to an error: +``` +resolving updateGQLSchema failed because Type Actor: @auth: expected only queryActor rules,but found queryFilm +``` \ No newline at end of file diff --git a/docusaurus-docs/docs-graphql/security/index.md b/docusaurus-docs/docs-graphql/security/index.md new file mode 100644 index 00000000..25bf8d52 --- /dev/null +++ b/docusaurus-docs/docs-graphql/security/index.md @@ -0,0 +1,81 @@ +--- +title: "Security" +description: "Dgraph's GraphQL implementation comes with built-in authorization, and supports various authentication methods, so you can annotate your schema with rules that determine who can access or mutate the data." + +--- + +When you deploy a GraphQL schema, Dgraph automatically generates the query and mutation operations for each type and exposes them as a GraphQL API on the ``/graphql`` endpoint. + + +Dgraph's GraphQL authorization features let you specify : +- if the client requires an API key or notif **anonymous access** is allowed to invoke a specific operation of the API. +- if a client must present an identity in the form of a **JWT token** to use the API. +- **RBAC rules** (Role Based Access Control) at operation level based on the claims included in the client JWT token. +- **ABAC rules** (Attribute Based Access COntrol) at data level using graph traversal queries. + + +:::note +By default all operations are accessible to anonymous clients, no JWT token is required and no authorization rules are applied. +It is your responsibility to correctly configure the authorization for the ``/graphql`` endpoint. +::: + +Refer to the following documentation to set your ``/graphql`` endpoint security : + +- [Handle JWT token](/graphql/[jwt](jwt)) + +- [RBAC rules](/graphql/[RBAC-rules](RBAC-rules)) + +- [ABAC rules](/graphql/[graphtraversal-rules](graphtraversal-rules)) + +### ``/graphql`` security flow +In summary, the Dgraph security flow on ``/graphql`` endpoint is as follow: + +![graphql endpoint security](/images/graphql/RBAC.jpeg) + +### CORS +Additionally, you can [restrict the origins](/graphql/[cors](cors)) that ``/graphql`` endpoint responds to. + +This is a best practice to prevent XSS exploits. + +## Authentication + +Dgraph's GraphQL authorization relies on the presence of a valid JWT token in the request. + +Dgraph supports both symmetric (HS256) and asymmetric (RS256) encryption and accepts JSON Web Key (JWK) URL or signed JSON Web Token (JWT). + +You can use any authentication method that is capable of generating such JWT token (Auth0, Cognito, Firebase, etc...) including Dgraph login mechanism. + + +### ACL +Note that another token may be needed to access the system if ACL security is also enabled. See the [ACLs](/enterprise-features/access-control-lists/) section for details. The ACLs are a separate security mechanism. + +### JWT Claims + +In JSON web tokens (JWTs) (https://www.rfc-editor.org/rfc/rfc7519) , a claim appears as a name/value pair. + +When we talk about a claim in the context of a JWT, we are referring to the name (or key). For example, the following JSON object contains three claims ``sub``, ``name`` and ``admin``: +```json +{ +"sub": "1234567890", +"name": "John Doe", +"admin": true +} +``` + +So that different organizations can specify different claims without conflicting, claims typically have a namespace, and it's a good practice to specify the namespace of your claims. put specific claims in a nested structure called a namespace. +``` +{ + "https://mycompany.org/jwt/claims": { + "username": "auth0|63fe77f32cef38f4fa3dab34", + "role": "Admin" + }, + "name": "raph@dgraph.io", + "email": "raph@dgraph.io", + "email_verified": false, + "iss": "https://dev-5q3n8cc7nckhu5w8.us.auth0.com/", + "aud": "aqk1CSVtliyoXUfLaaLKSKUtkaIel6Vd", + "iat": 1677705681, + "exp": 1677741681 +} +``` +This json is a JWT token payload containing a namespace ``https://mycompany.org/jwt/claims`` having a ``username`` claim and a ``role`` claim. diff --git a/docusaurus-docs/docs-graphql/security/jwt.md b/docusaurus-docs/docs-graphql/security/jwt.md new file mode 100644 index 00000000..bf879903 --- /dev/null +++ b/docusaurus-docs/docs-graphql/security/jwt.md @@ -0,0 +1,158 @@ +--- +title: "Handle JWT Token" + +--- + +When deploying a GraphQL schema, the admin user can set a ``# Dgraph.Authorization`` line at the bottom of the schema to specify how JWT tokens present in the HTTP header requests are extracted, validated and used. + +This line must start with the exact string ``# Dgraph.Authorization`` and be at the bottom of the schema file. + + +## Configure JWT token handling + +To configure how Dgraph should handle JWT token for ``/graphql`` endpoint : +1. Add a line starting with ``# Dgraph.Authorization`` and with the following parameters at the very end of your GraphQL schema. + The `Dgraph.Authorization` object uses the following syntax: + + ``` + # Dgraph.Authorization {"VerificationKey":"","Header":"X-My-App-Auth","Namespace":"https://my.app.io/jwt/claims","Algo":"HS256","Audience":["aud1"],"ClosedByDefault":true} + ``` + +Dgraph.Authorization object contains the following parameters: +* `Header` name of the header field used by the client to send the token. + :::note + Do not use `Dg-Auth`, `X-Auth-Token` or `Authorization` headers which are used by Dgraph for other purposes. +::: +* `Namespace` is the key inside the JWT that contains the claims relevant to Dgraph authorization. +* `Algo` is the JWT verification algorithm which can be either `HS256` or `RS256`. +* `VerificationKey` is the string value of the key, with newlines replaced with `\n` and the key string wrapped in `""`: + * **For asymmetric encryption**: `VerificationKey` contains the public key string. + * **For symmetric (secret-based) encryption**: `VerificationKey` is the secret key. +* `JWKURL`/`JWKURLs` is the URL for the JSON Web Key sets. If you want to pass multiple URLs, use `JWKURLs` as an array of multiple JWK URLs for the JSON Web Key sets. You can only use one authentication connection method, either JWT (`Header`), a single JWK URL, or multiple JWK URLs. +* `Audience` is used to verify the `aud` field of a JWT, which is used by certain providers to indicate the intended audience for the JWT. When doing authentication with `JWKURL`, this field is mandatory. +* `ClosedByDefault`, if set to `true`, requires authorization for all requests even if the GraphQL type does not specify rules. If omitted, the default setting is `false`. + +2. Deploy the GraphQL schema either with a [schema update](/graphql/admin/#using-updategqlschema-to-add-or-modify-a-schema) or via the Cloud console's [Schema](https://cloud.dgraph.io/_/schema) page. + + +When the `# Dgraph.Authorization` line is present in the GraphQL schema, Dgraph will use the settings in that line to +- read the specified header in each HTTP request sent on the /graphql endpoint, +- decode that header as a JWT token using the specified algorithm (Algo) +- validate the token signature and the audience +- extract the JWT claims present in the specified namespace and at the root level + +These claims will then be accessible to any @auth schema directives (a GraphQL schema directive specific to Dgraph) that are associated with GraphQL types in the schema file. + +See the [RBAC rules](/graphql/[RBAC-rules](RBAC-rules)) and [Graph traversal rules](/graphql/[graphtraversal-rules](graphtraversal-rules) for details on how to restrict data access using the @auth directive on a per-type basis. + +### Require JWT token +To not only accept but to require the JWT token regardless of @auth directives in your GraphQL schema, set option "ClosedByDefault" to true in the `# Dgraph.Authorization` line. + +## Working with Authentication providers +Dgraph.Authorization is fully configurable to work with various authentication providers. +Authentication providers have options to configure how to generate JWT tokens. + +Here are some configuration examples. + +### Clerk.com + +In your clerk dashboard, Access `JWT Templates` and create a template for Dgraph. + +Your template must have an `aud` (audience), this is mandatory for Dgraph when the token is verified using JWKURL. + +Decide on a claim namespace and add the information you want to use in your RBAC rules. + +We are using 'https://dgraph.io/jwt/claims' namespace in this example and have decided to get the user current organization, role ( clerk has currently two roles 'admin' and 'basic_member') and email. + +This is our JWT Template in Clerk: +```json +{ + "aud": "dgraph", + "https://dgraph.io/jwt/claims": { + "org": "{{org.name}}", + "role": "{{org.role}}", + "userid": "{{user.primary_email_address}}" + } +} +``` + +In the same configuration panel +- set the **token lifetime** +- copy the **JWKS Endpoint** + +Configure your Dgraph GraphQL schema with the following authorization +``` +# Dgraph.Authorization {"header":"X-Dgraph-AuthToken","namespace":"https://dgraph.io/jwt/claims","jwkurl":"https://<>.clerk.accounts.dev/.well-known/jwks.json","audience":["dgraph"],"closedbydefault":true} +``` +Note that +- **namespace** matches the namespace used in the JWT Template +- **audience** is an array and contains the **aud** used in the JWT token +- **jwkurl** is the **JWKS Endpoint** from Clerk + +You can select the header to receive the JWT token from your client app, `X-Dgraph-AuthToken` is a header authorized by default by Dgraph GraphQL API to pass CORS requirements. + + +## Other Dgraph.Authorization Examples + +To use a single JWK URL: + +``` +# Dgraph.Authorization {"VerificationKey":"","Header":"X-My-App-Auth", "jwkurl":"https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com", "Namespace":"https://xyz.io/jwt/claims","Algo":"","Audience":["fir-project1-259e7", "HhaXkQVRBn5e0K3DmMp2zbjI8i1wcv2e"]} +``` + +To use multiple JWK URL: + +``` +# Dgraph.Authorization {"VerificationKey":"","Header":"X-My-App-Auth","jwkurls":["https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com","https://dev-hr2kugfp.us.auth0.com/.well-known/jwks.json"], "Namespace":"https://xyz.io/jwt/claims","Algo":"","Audience":["fir-project1-259e7", "HhaXkQVRBn5e0K3DmMp2zbjI8i1wcv2e"]} +``` + +Using HMAC-SHA256 token in `X-My-App-Auth` header and authorization claims in `https://my.app.io/jwt/claims` namespace: + + +``` +# Dgraph.Authorization {"VerificationKey":"secretkey","Header":"X-My-App-Auth","Namespace":"https://my.app.io/jwt/claims","Algo":"HS256"} +``` + +Using HMAC-SHA256 token in `X-My-App-Auth` header and authorization claims in `https://my.app.io/jwt/claims` namespace: + +``` +# Dgraph.Authorization {"VerificationKey":"-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----","Header":"X-My-App-Auth","Namespace":"https://my.app.io/jwt/claims","Algo":"RS256"} +``` + +### JWT format + +The value of the JWT ``header`` is expected to be in one of the following forms: +* Bare token. + For example: + ``` + eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJodHRwczovL215LmFwcC5pby9qd3QvY2xhaW1zIjp7fX0.Pjlxpf-3FhH61EtHBRo2g1amQPRi0pNwoLUooGbxIho + ``` + +* A Bearer token, e.g., a JWT prepended with `Bearer ` prefix (including space). + For example: + ``` + Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJodHRwczovL215LmFwcC5pby9qd3QvY2xhaW1zIjp7fX0.Pjlxpf-3FhH61EtHBRo2g1amQPRi0pNwoLUooGbxIho + ``` + +### Error handling + +If ClosedByDefault is set to true, and the JWT is not present or if the JWT token does not include the proper audience information, or is not properly encoded, or is expired, Dgraph replies to requests on `/graphql` endpoint with an error message rejecting the operation similar to: +``` +{ + "errors": [ + { + "message": "couldn't rewrite query queryContact because a valid JWT is required but was not provided", + "path": [ + "queryContact" + ] + } + ], + "data": { + "queryContact": [] + },... +``` +**Error messages** +- "couldn't rewrite query queryContact because a valid JWT is required but was not provided" +- "couldn't rewrite query queryMessage because unable to parse jwt token:token is expired by 5h49m46.236018623s" +- "couldn't rewrite query queryMessage because JWT `aud` value doesn't match with the audience" +- "couldn't rewrite query queryMessage because unable to parse jwt token:token signature is invalid" diff --git a/docusaurus-docs/docs-graphql/security/mutations.md b/docusaurus-docs/docs-graphql/security/mutations.md new file mode 100644 index 00000000..299a1db3 --- /dev/null +++ b/docusaurus-docs/docs-graphql/security/mutations.md @@ -0,0 +1,117 @@ +--- +title: "Mutations and GraphQL Authorization" +description: "Mutations with authorization work like queries. But mutations involve a state change in the database, so you need to understand when the rules are applied." + +--- + +Mutations with authorization work like queries. But because mutations involve a state change in the database, it's important to understand when the authorization rules are applied and what they mean. + +## Add + +Rules for `add` authorization state that the rule must hold of nodes created by the mutation data once committed to the database. + +For example, a rule such as the following: + +```graphql +type Todo @auth( + add: { rule: """ + query ($USER: String!) { + queryTodo { + owner(filter: { username: { eq: $USER } } ) { + username + } + } + }""" + } +){ + id: ID! + text: String! + owner: User +} +type User { + username: String! @id + todos: [Todo] +} +``` + +... states that if you add a new to-do list item, then that new to-do must satisfy the `add` rule, in this case saying that you can only add to-do list items with yourself as the author. + +## Delete + +Delete rules filter the nodes that can be deleted. A user can only ever delete a subset of the nodes that the `delete` rules allow. + +For example, the following rule states that a user can delete a to-do list item if they own it, or they have the `ADMIN` role: + +```graphql +type Todo @auth( + delete: { or: [ + { rule: """ + query ($USER: String!) { + queryTodo { + owner(filter: { username: { eq: $USER } } ) { + username + } + } + }""" + }, + { rule: "{$ROLE: { eq: \"ADMIN\" } }"} + ]} +){ + id: ID! + text: String! @search(by: [term]) + owner: User +} + +type User { + username: String! @id + todos: [Todo] +} +``` + +When using these types of rules, a mutation such as the one shown below will behave differently. +depending on which user is running it: +* For most users, the following mutation deletes the posts that contain the + term "graphql" and are owned by the user who runs the mutation, but doesn't + affect any other user's to-do list items +* For an admin user, the following mutation deletes any posts that contain the + term "graphql", regardless of which user owns these posts + +```graphql +mutation { + deleteTodo(filter: { text: { anyofterms: "graphql" } }) { + numUids + } +} +``` + +When adding data, what matters is the resulting state of the database, when deleting, +what matters is the state before the delete occurs. + +## Update + +Updates have both a before and after state that can be important for authorization. + +For example, consider a rule stating that you can only update your own to-do list items. If evaluated in the database before the mutation (like the delete rules) it would prevent you from updating anyone elses to-do list items, but it does not stop you from updating your own to-do items to have a different `owner`. If evaluated in the database after the mutation occurs, like for add rules, it would prevent setting the `owner` to another user, but would not prevent editing other's posts. + +Currently, Dgraph evaluates `update` rules _before_ the mutation. + +## Update and add mutations + +Update mutations can also insert new data. For example, you might allow a mutation that runs an update mutation to add a new to-do list item: + +```graphql +mutation { + updateUser(input: { + filter: { username: { eq: "aUser" }}, + set: { todos: [ { text: "do this new todo"} ] } + }) { + ... + } +} +``` + +Because a mutation updates a user's to-do list by inserting a new to-do list item, it +would have to satisfy the rules to update the author _and_ the rules to add a +to-do list item. If either fail, the mutation has no effect. + +--- \ No newline at end of file diff --git a/docusaurus-docs/docs-graphql/subscriptions/index.md b/docusaurus-docs/docs-graphql/subscriptions/index.md new file mode 100644 index 00000000..2a829a0c --- /dev/null +++ b/docusaurus-docs/docs-graphql/subscriptions/index.md @@ -0,0 +1,185 @@ +--- +title: "GraphQL Subscriptions" +description: "Subscriptions allow clients to listen to real-time messages from the server. In GraphQL, it’s straightforward to enable subscriptions on any type." + +--- + +Subscriptions allow clients to listen to real-time messages from the server. The client connects to the server with a bi-directional communication channel using the WebSocket protocol and sends a subscription query that specifies which event it is interested in. When an event is triggered, the server executes the stored GraphQL query, and the result is sent back to the client using the same communication channel. + +The client can unsubscribe by sending a message to the server. The server can also unsubscribe at any time due to errors or timeouts. A significant difference between queries or mutations and subscriptions is that subscriptions are stateful and require maintaining the GraphQL document, variables, and context over the lifetime of the subscription. + +![Subscription](/images/graphql/subscription_flow.png "Subscription in GraphQL") + +## Enable subscriptions in GraphQL + +In GraphQL, it's straightforward to enable subscriptions on any type. You can add the `@withSubscription` directive to the schema as part of the type definition, as in the following example: + +```graphql +type Todo @withSubscription { + id: ID! + title: String! + description: String! + completed: Boolean! +} +``` + +## @withSubscription with @auth + +You can use [@auth](/graphql/[graphql/schema/directives/auth](graphql/schema/directives/auth)) access control rules in conjunction with `@withSubscription`. + + +Consider following Schema that has both the `@withSubscription` and `@auth` directives defined on type `Todo`. + +```graphql +type Todo @withSubscription @auth( + query: { rule: """ + query ($USER: String!) { + queryTodo(filter: { owner: { eq: $USER } } ) { + __typename + } + }""" + } + ){ + id: ID! + text: String! @search(by: [term]) + owner: String! @search(by: [hash]) + } +# Dgraph.Authorization {"Header":"X-Dgraph-AuthToken","Namespace":"https://dgraph.io/jwt/claims","jwkurl":"https://xyz.clerk.accounts.dev/.well-known/jwks.json","audience":["dgraph"],"ClosedByDefault":true} +``` +The generated GraphQL API expects a JWT token in the `X-Dgraph-AuthToken` header and uses the `USER` claim to apply a rule based access control (RBAC): the authorization rule enforces that only to-do tasks owned by `$USER` are returned. + + +## WebSocket client +Dgraph uses the websocket subprotocol `subscription-transport-ws`. + +Clients must be instantiated using the WebSocket URL of the GraphQL API which is your [Dgraph GraphQL endpoint](/graphql/[graphql/graphql-clients/endpoint/_index](graphql/graphql-clients/endpoint/_index)) with ``https`` replaced by ``wss``. + +If your Dgraph endpoint is ``https://blue-surf-0033.us-east-1.aws.cloud.dgraph.io/graphql`` +the WebSocket URL is ``wss://blue-surf-0033.us-east-1.aws.cloud.dgraph.io/graphql`` + +If your GraphQL API is configured to expect a JWT token in a header, you must configure the WebSocket client to pass the token. Additionally, the subscription terminates when the JWT expires. + + +Here are some examples of frontend clients setup. + +### URQL client setup in a React application + +In this scenario, we are using [urql client](https://formidable.com/open-source/urql/) and `subscriptions-transport-ws` modules. + +In order to use a GraphQL subscription query in a component, you need to +- instantiate a subscriptionClient +- instantiate a URQL client with a 'subscriptionExchange' using the subscriptionClient + +```js +import { Client, Provider, cacheExchange, fetchExchange, subscriptionExchange } from 'urql'; +import { SubscriptionClient } from 'subscriptions-transport-ws'; + + const subscriptionClient = new SubscriptionClient( + process.env.REACT_APP_DGRAPH_WSS, + { reconnect: true, + connectionParams: {"X-Dgraph-AuthToken" : props.token} + } + ); + + const client = new Client({ + url: process.env.REACT_APP_DGRAPH_ENDPOINT, + fetchOptions: { headers: { "X-Dgraph-AuthToken": `Bearer ${props.token}` } }, + exchanges: [ + cacheExchange, + fetchExchange, + subscriptionExchange({ + forwardSubscription: request => subscriptionClient.request(request), + }) + ]}) + ``` + +In this example, + +- **process.env.REACT_APP_DGRAPH_ENDPOINT** is your [Dgraph GraphQL endpoint](/graphql/[graphql/graphql-clients/endpoint/_index](graphql/graphql-clients/endpoint/_index)) +- **process.env.REACT_APP_DGRAPH_WSS** is the WebSocket URL +- **props.token** is the JWT token of the logged-in user. + +Note that we are passing the JWT token in the GraphQL client using 'fetchOptions' and in the WebSocket client using 'connectionParams'. + +Assuming we are using graphql-codegen, we can define a subcription query: +```js +import { graphql } from "../gql"; + +export const TodoFragment = graphql(` + fragment TodoItem on Todo { + id + text + } +`) + + +export const TodoSubscription = graphql(` + subscription myTodo { + queryTodo(first:100) { + ...TodoItem + } + } +`) +``` +and use it in a React component +```js +import { useQuery, useSubscription } from "urql"; +... +const [messages] = useSubscription({ query: MyMessagesDocument}); + +``` +That's it, the react component is able to use ``messages.data.queryTodo`` to display the updated list of Todos. + + +### Apollo client setup + +To learn about using subscriptions with Apollo client, see a blog post on [GraphQL Subscriptions with Apollo client](https://dgraph.io/blog/post/how-does-graphql-subscription/). + +To pass the user JWT token in the Apollo client,use `connectionParams`, as follows. + +```javascript +const wsLink = new WebSocketLink({ + uri: `wss://${ENDPOINT}`, + options: { + reconnect: true, + connectionParams: { "
    ": "", },}); +``` + +Use the header expected by the Dgraph.Authorization configuration of your GraphQL schema. + +## Subscriptions to custom DQL + +You can also apply `@withSubscription` directive to custom DQL queries by specifying `@withSubscription` on individual DQL queries in `type Query`, +and those queries will be added to `type subscription`. + +For example, see the custom DQL query `queryUserTweetCounts` below: + +```graphql +type Query { + queryUserTweetCounts: [UserTweetCount] @withSubscription @custom(dql: """ + query { + queryUserTweetCounts(func: type(User)) { + screen_name: User.screen_name + tweetCount: count(User.tweets) + } + } + """) +} +``` + +`queryUserTweetCounts` is added to the `subscription` type, allowing users to subscribe to this query. + +:::note +Currently, Dgraph only supports subscriptions on custom **DQL queries**. You +can't subscribe to custom **HTTP queries**. +::: + + + +:::note +Starting in release v21.03, Dgraph supports compression for subscriptions. +Dgraph uses `permessage-deflate` compression if the GraphQL client's +`Sec-Websocket-Extensions` request header includes `permessage-deflate`, as follows: +`Sec-WebSocket-Extensions: permessage-deflate`. +::: + diff --git a/docusaurus-docs/sidebars-graphql.ts b/docusaurus-docs/sidebars-graphql.ts index b5446001..6f307d47 100644 --- a/docusaurus-docs/sidebars-graphql.ts +++ b/docusaurus-docs/sidebars-graphql.ts @@ -3,8 +3,151 @@ import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; const sidebars: SidebarsConfig = { graphqlSidebar: [ 'index', + { + type: 'category', + label: 'GraphQL', + items: [ + 'quick-start/index', + { + type: 'category', + label: 'Schema', + items: [ + 'schema/index', + 'schema/dgraph-schema', + 'schema/types', + 'schema/graph-links', + 'schema/documentation', + 'schema/migration', + 'schema/reserved', + { + type: 'category', + label: 'Directives', + items: [ + 'schema/directives/index', + 'schema/directives/auth', + 'schema/directives/deprecated', + 'schema/directives/directive-dgraph', + 'schema/directives/directive-withsubscription', + 'schema/directives/embedding', + 'schema/directives/generate', + 'schema/directives/ids', + 'schema/directives/search', + ], + }, + ], + }, + { + type: 'category', + label: 'Queries', + items: [ + 'queries/index', + 'queries/queries-overview', + 'queries/search-filtering', + 'queries/and-or-not', + 'queries/order-page', + 'queries/aggregate', + 'queries/cascade', + 'queries/skip-include', + 'queries/cached-results', + 'queries/persistent-queries', + 'queries/vector-similarity', + ], + }, + { + type: 'category', + label: 'Mutations', + items: [ + 'mutations/index', + 'mutations/mutations-overview', + 'mutations/add', + 'mutations/update', + 'mutations/delete', + 'mutations/upsert', + 'mutations/deep', + ], + }, + 'subscriptions/index', + { + type: 'category', + label: 'Lambda', + items: [ + 'lambda/index', + 'lambda/lambda-overview', + 'lambda/query', + 'lambda/mutation', + 'lambda/field', + 'lambda/webhook', + ], + }, + { + type: 'category', + label: 'Custom', + items: [ + 'custom/index', + 'custom/custom-overview', + 'custom/query', + 'custom/mutation', + 'custom/field', + 'custom/directive', + 'custom/custom-dql', + ], + }, + { + type: 'category', + label: 'GraphQL Clients', + items: [ + 'graphql-clients/index', + 'graphql-clients/graphql-ui', + 'graphql-clients/graphql-ide', + { + type: 'category', + label: 'Endpoint', + items: [ + 'graphql-clients/endpoint/index', + 'graphql-clients/endpoint/graphql-request', + 'graphql-clients/endpoint/graphql-response', + 'graphql-clients/endpoint/graphql-get-request', + ], + }, + ], + }, + { + type: 'category', + label: 'Security', + items: [ + 'security/index', + 'security/jwt', + 'security/auth-tips', + 'security/cors', + 'security/mutations', + 'security/graphtraversal-rules', + 'security/RBAC-rules', + ], + }, + { + type: 'category', + label: 'Admin', + items: [ + 'admin/index', + 'admin/admin-api', + ], + }, + 'federation/index', + ], + }, + { + type: 'category', + label: 'GraphQL-DQL', + items: [ + 'graphql-dql/index', + 'graphql-dql/dql-for-graphql', + 'graphql-dql/graphql-dql-schema', + 'graphql-dql/graphql-dgraph', + 'graphql-dql/graphql-data-loading', + 'graphql-dql/graphql-data-migration', + ], + }, ], }; export default sidebars; - diff --git a/docusaurus-docs/sidebars.ts b/docusaurus-docs/sidebars.ts index d5f96257..ae71dcb2 100644 --- a/docusaurus-docs/sidebars.ts +++ b/docusaurus-docs/sidebars.ts @@ -215,6 +215,31 @@ const sidebars: SidebarsConfig = { }, ], }, + { + type: 'category', + label: 'CLI', + items: [ + 'cli/index', + 'cli/acl', + 'cli/alpha', + 'cli/audit', + 'cli/bulk', + 'cli/cert', + 'cli/completion', + 'cli/config', + 'cli/conv', + 'cli/debuginfo', + 'cli/decrypt', + 'cli/export_backup', + 'cli/increment', + 'cli/live', + 'cli/migrate', + 'cli/restore', + 'cli/superflags', + 'cli/upgrade', + 'cli/zero', + ], + }, 'dgraph-glossary', 'releases/index', ], diff --git a/docusaurus-docs/src/css/custom.css b/docusaurus-docs/src/css/custom.css index 9ec9e5f4..1fa38e0c 100644 --- a/docusaurus-docs/src/css/custom.css +++ b/docusaurus-docs/src/css/custom.css @@ -13,11 +13,12 @@ --ifm-color-primary-light: #f23d6b; --ifm-color-primary-lighter: #f44a75; --ifm-color-primary-lightest: #f96d8f; - + --ifm-h1-font-size: 1.3rem; + --ifm-h2-font-size: 1rem; /* Dark background */ --dgraph-dark: #100c19; - --ifm-code-font-size: 95%; + --ifm-code-font-size: 70%; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); } @@ -38,7 +39,10 @@ /* Typography - istari-documentation style (smaller fonts) */ .markdown h1 { - font-size: 2rem; + font-size: 1.5rem; +} +.markdown h2 { + font-size: 1.2rem; } #footnote-label { diff --git a/docusaurus-docs/static/images/graphql/Auth-Action.gif b/docusaurus-docs/static/images/graphql/Auth-Action.gif new file mode 100644 index 0000000000000000000000000000000000000000..6a3e57b2ca514bb765fd9815f1b95dd5ff244079 GIT binary patch literal 1002077 zcmV(^K-IrTNk%w1VS5Mj1NQ&`07(D;Mm-m?ELlg`t|np_4n}g|Ni&(_4xJj`uqF*@&Et+{pv42>n}g` z_V)k)00000A^!_bMO0HmK~P09E-(WD0000X`2+<700ICZ{vbngZ*XvBWFU8GbZ8)D zdS_{7E@N+PAV*0?AZ=l5WpV&400000dI$3Z00{p8MF|{8u%N+%2oow?$grWqhY%x5 zoJg^vLR0SK>D$P$qsNaRLy8oJq5$&6MMA>fFh*r_Y}> zziH4Ap{UWLNRujE%CxD|r%)uULDACctg9{%{ytwh>$dfBy zo_w|Q=g^}^-^;tY_3PNPH%6?zyZ6D5BQyUWPrkhQ^XSv7U(bHL^!M=N%ZJ$dyZ!t4 z^W(>Tk{-Qx00t=FfCLt3;DHDVNDn^xHTaTm?L{czgcMe2;e{AxnAvkVKL*4msr{ndCa@ ztm7m*P_pxmiHn7&;gwisspXbjcIl;OABHLBn03`h<(X)vspd%hnZ%+dglGcioO8xm zr<`%xnJ1of?s?~*e(w1QIzT#U=%I){8Ksnr7P#hM5Pm7?q?A@_>7|%TNam)TcFItQ zkA^DhsQ000Qk-zy0mrJTvf3)Es>1*3YOJf$`f9DS=ISaOglJP}qQI`hj<8Y+`;L?Y z-ZLeseLa@xv(QE>?X=WZ+m)x-X3MFW%y#STx3RTZ(j$b}vFo|$rmOC{>fUjO9gp}* z(m25a3#G8@919?_0V)e_Pmx+H@W2EYZ1BMmYOCgild}ldZ1c@H=dANu41q#QC!KIgiYf89 z0}3b%Cv6wEGB@q?(XZTH=H=dJhNeE0v|_XZ3w#lZ$46mIz8h$pW2;)ZX)!OoCJF8Sop_UukP zoq%!*nWPXC59UEDExKF|-}jC^HoY?qN2=pf&P%RuWY4m+O+$N3r<=46J#Jg~4udL5 zJrb(ser^2m$al@g$@7w}a=ykQ%dfKc%+vcz+{D1b3fy<^{rBL9FaG%Cmv8?0=Bp6+ zQiXfq{`>I9FaP}X!yf|W_~)0Sr&HqJr~a zhAE!`JZ^xJ8DL~aGistpl1u`IG4#nNFVPAUu4INaG>Py;LOdg0t!mmxrZ#+N2Tdqb z7;HeIFp?<@O|apJ)1;;*-sMam5`q=lUFqlye zv;l}4-1tT%*TMgi53*w;L9vnCqJk=+hbMe#m~UurjTp_S zM$z~JHzoy+a}23S^GMQ?n)IYa34s)hvPV9uATk_~LJS6I6+q@A5Tp>rHQaH)qFtjC zq&ONecv>`fgsu}i%?D3G0aQ|`f~YwcN-w4!V(N{M95MY}*Iz zAwo=UM3XDYMJGKnj#fws7>_IlFjVJ>m^EXw>}W+N*>Q<+u*0n!!AD?Yvf7YLf}gqU z2{$}p+H(I4vn0S=$!$S`!>kb^o9IZ#GM$MIZ3q`m$qa6Bk$BDDYC{;T$Yu|RJ54#U zK~-6cV)KB-#c|A*8|x^?Ex^l-WbkW1^;C&mTX6~4vLhXw^$0Lt%aQs1QzfTl$!uG( z7>lxCdm9a~fCb!9rhrtW2(BMW7tG)W?<@p#(1R96umL0RQ4dBKK?Jm*2R?WpD>fA* zM&j{}YkVUf`OvD*E_V$RUxN~+7_mF@nU8ohaDheR#x+o!k9?H)bJqweC@xpx6Q{Tn zqd0|9fu_?IU!%t==IU7uiAa&S5
  • ^D|3LhbFX3X30i6@XszqJbntI0w%!5D!zT?_ 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�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 literal 0 HcmV?d00001 diff --git a/docusaurus-docs/static/images/dgraph/quickstart/data-model.png b/docusaurus-docs/static/images/dgraph/quickstart/data-model.png new file mode 100644 index 0000000000000000000000000000000000000000..3f058da20215571d2cc293ecc0fb2cb99ddfc6df GIT binary patch literal 36383 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�OoGNndHOx(-ta#uJY>h#{u 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