From fe365d15283b67e3c9ae2b0d9ddd11b9c2b6c965 Mon Sep 17 00:00:00 2001 From: Christoffer Artmann Date: Mon, 24 Oct 2022 21:03:39 +0200 Subject: [PATCH 1/6] deps: Upgrade the Typescript version. --- package.json | 2 +- src/query-builder.ts | 2 +- yarn.lock | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index ac7234d..80935f3 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "ts-jest": "^26.1.1", "ts-node": "^8.10.2", "typedoc": "^0.19.1", - "typescript": "^3.9.6", + "typescript": "^4.8.4", "uuid": "^8.2.0" } } diff --git a/src/query-builder.ts b/src/query-builder.ts index 1da8240..c58ac95 100644 --- a/src/query-builder.ts +++ b/src/query-builder.ts @@ -43,7 +43,7 @@ function normalizeAttributes(originalAttributes: Dictionary): Dictionary { return attributes; } -export default class QueryBuilder { +export default class QueryBuilder { private readonly ctor: ObjectType; private query: Query = {}; diff --git a/yarn.lock b/yarn.lock index 39cd948..27ccbc7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5023,10 +5023,10 @@ typedoc@^0.19.1: shelljs "^0.8.4" typedoc-default-themes "^0.11.4" -typescript@^3.9.6: - version "3.9.9" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674" - integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w== +typescript@^4.8.4: + version "4.8.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" + integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== uglify-js@^3.1.4: version "3.13.6" From 33dd74bdb753cfc30b8b8d4d9db4e59c62484dbe Mon Sep 17 00:00:00 2001 From: Christoffer Artmann Date: Mon, 24 Oct 2022 21:09:03 +0200 Subject: [PATCH 2/6] feat: ESM Support. --- jest.config.js | 2 +- package.json | 1 + tsconfig.json | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/jest.config.js b/jest.config.js index 18dc301..2cbb8e1 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,4 +1,4 @@ -module.exports = { +export default { preset: 'ts-jest', testEnvironment: 'node', modulePathIgnorePatterns: ['/dist/'] diff --git a/package.json b/package.json index 80935f3..24ad6da 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "repository": "https://github.com/Artmann/esix", "author": "Christoffer Artmann", "license": "MIT", + "type": "module", "scripts": { "build": "tsc", "apidocs:build": "typedoc --ignoreCompilerErrors --options typedoc.json --out docs/dist/api src/", diff --git a/tsconfig.json b/tsconfig.json index e58ff11..4ab06eb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,7 @@ /* Basic Options */ // "incremental": true, /* Enable incremental compilation */ "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ - "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ + "module": "NodeNext", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ // "lib": [], /* Specify library files to be included in the compilation. */ // "allowJs": true, /* Allow javascript files to be compiled. */ // "checkJs": true, /* Report errors in .js files. */ @@ -41,7 +41,7 @@ // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ /* Module Resolution Options */ - // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ From 7f3735cac3989922db46b2f79de06bc27291d3b9 Mon Sep 17 00:00:00 2001 From: Christoffer Artmann Date: Mon, 24 Oct 2022 21:13:40 +0200 Subject: [PATCH 3/6] feat: Drop support for Node 12 and 14. --- .github/workflows/ci.yml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bb2e58d..07ebeb7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: - node-version: [12.18.2, 14.x] + node-version: [16.18, 18.11] steps: - uses: actions/checkout@v2 diff --git a/package.json b/package.json index 24ad6da..0fbfeb8 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "test:watch": "jest --watchAll" }, "engines": { - "node": ">= 12.18.0" + "node": ">= 16.18" }, "files": [ "dist" From 59fb1b903268901c0d798ffc98d89b2f197ae980 Mon Sep 17 00:00:00 2001 From: Christoffer Artmann Date: Wed, 26 Oct 2022 17:52:21 +0200 Subject: [PATCH 4/6] fix imports. Merge with ESM Support. --- doc-gen/cli.ts | 9 + doc-gen/index.ts | 57 +++++++ docs/pages/configuration.mdx | 30 ++++ docs/pages/defining-models.mdx | 32 ++++ docs/pages/deleting-models.mdx | 32 ++++ docs/pages/getting-started.mdx | 70 ++++++++ docs/pages/inserting-and-updating-models.mdx | 37 +++++ docs/pages/retrieving-models.mdx | 58 +++++++ docs_old/index.ts | 154 ++++++++++++++++++ docs_old/page.hbs | 77 +++++++++ docs_old/pages/configuration.md | 30 ++++ docs_old/pages/defining-models.md | 32 ++++ docs_old/pages/deleting-models.md | 32 ++++ docs_old/pages/index.md | 70 ++++++++ .../pages/inserting-and-updating-models.md | 37 +++++ docs_old/pages/retrieving-models.md | 58 +++++++ docs_old/public/browserconfig.xml | 2 + .../public/images/android-icon-144x144.png | Bin 0 -> 10968 bytes .../public/images/android-icon-192x192.png | Bin 0 -> 13227 bytes docs_old/public/images/android-icon-36x36.png | Bin 0 -> 2567 bytes docs_old/public/images/android-icon-48x48.png | Bin 0 -> 3384 bytes docs_old/public/images/android-icon-72x72.png | Bin 0 -> 4937 bytes docs_old/public/images/android-icon-96x96.png | Bin 0 -> 6748 bytes docs_old/public/images/apple-icon-114x114.png | Bin 0 -> 8168 bytes docs_old/public/images/apple-icon-120x120.png | Bin 0 -> 8764 bytes docs_old/public/images/apple-icon-144x144.png | Bin 0 -> 10968 bytes docs_old/public/images/apple-icon-152x152.png | Bin 0 -> 11621 bytes docs_old/public/images/apple-icon-180x180.png | Bin 0 -> 14282 bytes docs_old/public/images/apple-icon-57x57.png | Bin 0 -> 3954 bytes docs_old/public/images/apple-icon-60x60.png | Bin 0 -> 4128 bytes docs_old/public/images/apple-icon-72x72.png | Bin 0 -> 4937 bytes docs_old/public/images/apple-icon-76x76.png | Bin 0 -> 5246 bytes .../public/images/apple-icon-precomposed.png | Bin 0 -> 13801 bytes docs_old/public/images/apple-icon.png | Bin 0 -> 13801 bytes docs_old/public/images/esix-logo.png | Bin 0 -> 5857 bytes docs_old/public/images/favicon-16x16.png | Bin 0 -> 1396 bytes docs_old/public/images/favicon-32x32.png | Bin 0 -> 2248 bytes docs_old/public/images/favicon-96x96.png | Bin 0 -> 6748 bytes docs_old/public/images/favicon.ico | Bin 0 -> 1150 bytes docs_old/public/images/ms-icon-144x144.png | Bin 0 -> 10968 bytes docs_old/public/images/ms-icon-150x150.png | Bin 0 -> 11440 bytes docs_old/public/images/ms-icon-310x310.png | Bin 0 -> 31855 bytes docs_old/public/images/ms-icon-70x70.png | Bin 0 -> 4872 bytes docs_old/public/manifest.json | 41 +++++ docs_old/sidebar.json | 13 ++ docs_old/sitemap.hbs | 9 + docs_old/styles.css | 140 ++++++++++++++++ src/aggregates.spec.ts | 4 +- src/base-model.spec.ts | 2 +- src/base-model.ts | 4 +- src/connection-handler.spec.ts | 2 +- src/connection-handler.ts | 2 +- src/index.ts | 4 +- src/injection.spec.ts | 4 +- src/integration-test.spec.ts | 6 +- src/query-builder.ts | 6 +- src/sanitize.spec.ts | 2 +- src/types.ts | 1 - 58 files changed, 1038 insertions(+), 19 deletions(-) create mode 100644 doc-gen/cli.ts create mode 100644 doc-gen/index.ts create mode 100644 docs/pages/configuration.mdx create mode 100644 docs/pages/defining-models.mdx create mode 100644 docs/pages/deleting-models.mdx create mode 100644 docs/pages/getting-started.mdx create mode 100644 docs/pages/inserting-and-updating-models.mdx create mode 100644 docs/pages/retrieving-models.mdx create mode 100644 docs_old/index.ts create mode 100644 docs_old/page.hbs create mode 100644 docs_old/pages/configuration.md create mode 100644 docs_old/pages/defining-models.md create mode 100644 docs_old/pages/deleting-models.md create mode 100644 docs_old/pages/index.md create mode 100644 docs_old/pages/inserting-and-updating-models.md create mode 100644 docs_old/pages/retrieving-models.md create mode 100644 docs_old/public/browserconfig.xml create mode 100644 docs_old/public/images/android-icon-144x144.png create mode 100644 docs_old/public/images/android-icon-192x192.png create mode 100644 docs_old/public/images/android-icon-36x36.png create mode 100644 docs_old/public/images/android-icon-48x48.png create mode 100644 docs_old/public/images/android-icon-72x72.png create mode 100644 docs_old/public/images/android-icon-96x96.png create mode 100644 docs_old/public/images/apple-icon-114x114.png create mode 100644 docs_old/public/images/apple-icon-120x120.png create mode 100644 docs_old/public/images/apple-icon-144x144.png create mode 100644 docs_old/public/images/apple-icon-152x152.png create mode 100644 docs_old/public/images/apple-icon-180x180.png create mode 100644 docs_old/public/images/apple-icon-57x57.png create mode 100644 docs_old/public/images/apple-icon-60x60.png create mode 100644 docs_old/public/images/apple-icon-72x72.png create mode 100644 docs_old/public/images/apple-icon-76x76.png create mode 100644 docs_old/public/images/apple-icon-precomposed.png create mode 100644 docs_old/public/images/apple-icon.png create mode 100644 docs_old/public/images/esix-logo.png create mode 100644 docs_old/public/images/favicon-16x16.png create mode 100644 docs_old/public/images/favicon-32x32.png create mode 100644 docs_old/public/images/favicon-96x96.png create mode 100644 docs_old/public/images/favicon.ico create mode 100644 docs_old/public/images/ms-icon-144x144.png create mode 100644 docs_old/public/images/ms-icon-150x150.png create mode 100644 docs_old/public/images/ms-icon-310x310.png create mode 100644 docs_old/public/images/ms-icon-70x70.png create mode 100644 docs_old/public/manifest.json create mode 100644 docs_old/sidebar.json create mode 100644 docs_old/sitemap.hbs create mode 100644 docs_old/styles.css diff --git a/doc-gen/cli.ts b/doc-gen/cli.ts new file mode 100644 index 0000000..c7fa26d --- /dev/null +++ b/doc-gen/cli.ts @@ -0,0 +1,9 @@ +import process from 'process' + +import { build } from './index.js' + +(async function main() { + const [ directory ] = process.argv.slice(2) + + await build(directory) +})() diff --git a/doc-gen/index.ts b/doc-gen/index.ts new file mode 100644 index 0000000..e6e0806 --- /dev/null +++ b/doc-gen/index.ts @@ -0,0 +1,57 @@ +import frontMatter from 'front-matter' +import fs from 'fs' +import { join } from 'path' +import process from 'process' + +export async function build(inputPath: string): Promise { + const basePath = join(process.cwd(), inputPath) + + const pages = await loadPages(join(basePath, 'pages')) + + console.log(pages) +} + +type PageInfo = { + filename: string + path: string +} + +async function loadPages(pagesPath: string): Promise { + const filenames = await fs.promises.readdir(pagesPath) + + const pageInfoList = await Promise.all(filenames.map(filename => { + return loadPageInfo( + filename, + join(pagesPath, filename) + ) + })) + + return pageInfoList.filter((pageInfo): pageInfo is PageInfo => pageInfo !== undefined) +} + +async function loadPageInfo(filename: string, path: string): Promise { + try { + const content = await fs.promises.readFile(path, 'utf-8') + + /** + const x = await compile(content, { + jsx: true, + remarkPlugins: [remarkFrontmatter, remarkMdxFrontmatter] + }) + **/ + + const data = frontMatter(content) + + console.table(data) + + return { + filename, + path + } + } catch (error) { + console.error('Failed to load Page Info.', path) + console.error(error) + } + + return undefined +} diff --git a/docs/pages/configuration.mdx b/docs/pages/configuration.mdx new file mode 100644 index 0000000..85e3f83 --- /dev/null +++ b/docs/pages/configuration.mdx @@ -0,0 +1,30 @@ +--- +description: How to configure Esix ORM. +title: Configuration +--- + +# Configuration + +To make it easy to add Esix to your project and to be able to change your application's configuration between your local, test, and production environment, Esix is configured with environment variables. + +## Connecting to the Database + +These options define how Esix will connect to your database. + +`DB_ADAPTER` + +The adapter is used to handle the MongoDB connection. Can be either `default` or `mock` where `default` uses the [offical MongoDB package](https://www.npmjs.com/package/mongodb) and `mock` uses [mongo-mock](https://github.com/williamkapke/mongo-mock) which is great for testing. + +`DB_URL` + +The URL of the database. Defaults to `mongodb://127.0.0.1:27017/`. + +`DB_POOL_SIZE` + +The size of the connection pool. Defaults to `10`. + +`DB_DATABASE` + +The name of the database to connect to. Defaults to ``. + +If you want to create a configuration file for your local environment you can use the [dotenv package](https://www.npmjs.com/package/dotenv) but you should make sure you don't commit any secrets to GitHub. diff --git a/docs/pages/defining-models.mdx b/docs/pages/defining-models.mdx new file mode 100644 index 0000000..79a7f51 --- /dev/null +++ b/docs/pages/defining-models.mdx @@ -0,0 +1,32 @@ +--- +title: Defining Models +--- + +# Defining Models + +Esix provides a beautiful, simple ActiveRecord implementation for working with your database. Each collection has a corresponding "Model" which is used to interact with that collection. Models allow you to query for data in your tables, as well as insert new documents into the collection. + +Models are the entry point for working with data in Esix so let's create our first model. + +```ts +import { BaseModel } from 'esix'; + +class BlogPost extends BaseModel { + public title = ''; + public publishedAt = 0; +} +``` + +By defining a model and extending the `BaseModel` class, you get access to all of Esix's functionality and you can use it to [Create, Update](/inserting-and-updating-models) and [Query](/retrieving-models) documents from the database. + +The model will already have `id` property which will be defaulted to an [ObjectId](https://docs.mongodb.com/manual/reference/method/ObjectId/) unless you provide one yourself. + +It also comes with two timestamp properties, `createdAt` and `updatedAt` which will be updated during the model's lifecycle. +When a model is created, the `createdAt` property will be populated with the current timestamp, and every time you update or save your model, the `updatedAt` property will have the current timestamp. + +Both values contain the current time in milliseconds since January 1st, 1970, using JavaScript's [Date.now](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now) function. + +The collection the models act upon is determined by name of the class. The class name is transformed into a dasherized and pluralized version and this is used for all operations against the database. + +For example, if you have a class named `BlogPost`, the collection name will be `blog-posts`. This is due to Esix's strong belief in [Convention over Configuration](https://en.wikipedia.org/wiki/Convention_over_configuration). + diff --git a/docs/pages/deleting-models.mdx b/docs/pages/deleting-models.mdx new file mode 100644 index 0000000..a61dd0f --- /dev/null +++ b/docs/pages/deleting-models.mdx @@ -0,0 +1,32 @@ +--- +title: Deleting Models +--- + +# Deleting Models + +Once your data is no longer needed, Esix provides two ways of removing models from the database. You can either use an instance of a model to delete that model or you can create a query to remove multiple models. + +## Deleting a Single Model + +If you have a single model you want to delete, you can use the `delete` method on the instance. + +Keep in mind that the data is instantly removed and won't be recoverable. + +```ts +const post = await BlogPost.find('5f5a4c36493d53b6caa8410e'); + +await post.delete(); + +``` + +## Deleting Multiple Models + +If you want to remove models in bulk, you can use the normal methods available on the QueryBuilder to create a matching selection. + +```ts +await Jobs + .where('completed', true) + .limit(12) + .delete(); +``` + diff --git a/docs/pages/getting-started.mdx b/docs/pages/getting-started.mdx new file mode 100644 index 0000000..1c8b440 --- /dev/null +++ b/docs/pages/getting-started.mdx @@ -0,0 +1,70 @@ +--- +title: Getting Started +--- + +# Esix is a slick ORM for MongoDB. + +Inspired by ActiveRecord and Eloquent, Esix is a great way to work with your database in TypeScript. 🥧 + +Esix uses a [Convention over Configuration](https://en.wikipedia.org/wiki/Convention_over_configuration) approach where you define your models as normal TypeScript classes and with minimal boilerplate. + +## Install Esix + +Add the package using your favorite package manager. + +**Yarn** +```sh +yarn add esix mongodb +``` + +**NPM** +```sh +npm install esix mongodb +``` + +## Getting Started + +First off, you'll need to define your model. + +```ts +import { baseModel } from 'esix'; + +export default class Book extends BaseModel { + public isbn = ''; + public title = ''; +} +``` + +The base model comes with id and timestamp fields so you don't have to worry about those things. + +Now you are ready to create some data! + +```ts +import Book from './book'; + +async function createBooks(): Promise { + await Book.create({ + isbn: '978-0525536291', + title: 'The Vanishing Half' + }); + await Book.create({ + isbn: '978-0525521143', + title: 'The Glass Hotel' + }); +} +``` + +Then you can easily query your models. + +```ts +import { Request, Response } from 'express'; +import Book from './book'; + +async function showBook(request: Request, response: Response): Promise { + const book = await Book.find(request.params.id); + + response.json({ + book + }); +} +``` diff --git a/docs/pages/inserting-and-updating-models.mdx b/docs/pages/inserting-and-updating-models.mdx new file mode 100644 index 0000000..ea8196f --- /dev/null +++ b/docs/pages/inserting-and-updating-models.mdx @@ -0,0 +1,37 @@ +--- +title: Inserting & Updating Models +--- + +# Inserting & Updating Models + +When it comes to adding new models to the database, there are two different ways to go about it. You can either use the `create` method and pass it the attributes you want the model to have, or you can create a new instance of the model and call it's `save` method. + +```ts +// Using the create method. +const firstPost = await BlogPost.create({ title: 'My First Blog Post!' }); + +// Using the save method. +const secondPost = new BlogPost(); + +secondPost.title = 'My Second Blog Post!'; + +await secondPost.save(); +``` + +If the model doesn't have an Id, a new [ObjectId](https://docs.mongodb.com/manual/reference/method/ObjectId/) will be created and assigned to it. + +When inserting a new model, the `createdAt` property will be filled with the current timestamp if it's not present. + +If you want to update an existing model, you can also use the `save` method to persist your changes. + +```ts +const product = await Product.find('5f5a474b32fa462a5724ff7d'); + +product.price = 14.99; + +await product.save(); +``` + +When you call `save` on an already existing model, the `updatedAt` field will be filled with the current timestamp. + +Both the timestamp properties contain the current time in milliseconds since January 1st, 1970, using JavaScript's [Date.now](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now) method. diff --git a/docs/pages/retrieving-models.mdx b/docs/pages/retrieving-models.mdx new file mode 100644 index 0000000..4aca8f9 --- /dev/null +++ b/docs/pages/retrieving-models.mdx @@ -0,0 +1,58 @@ +--- +title: Retrieving Models +--- + +# Retrieving Models + +Once you have your models defined, you can use them to query the database for them. You can think of each Eloquent model as a powerful [query builder](/api/classes/querybuilder.html) allowing you to fluently query the documents associated with the model. + +If you are looking for a single model you can use the `find` method to get an instance of a model matching the given id. + +```ts +const book = await Book.find(22); + +console.log(book.title); +``` + +You can also get all the models in the collection. + +```ts +const flights = await Flight.all(); + +flights.forEach(flight => { + console.log(flight.name); +}); +``` + +When you are working with multiple models, you can use methods like `where` which returns an instance of a `QueryBuilder`. The Query Builder can be used to filter, sort, and limit your searches. + +```ts +const blogPosts = await BlogPost + .where('status', 'published') + .where('categoryId', 4) + .orderBy('publishedAt', 'desc') + .limit(12) + .get(); + +blogPosts.forEach(post => console.log(post.title)); +``` + +You can find out more about the different methods available by consulting the API documentation for [BaseModel](/api/classes/basemodel.html) and [QueryBuilder](/api/classes/querybuilder.html). + +## Aggregate Functions + +Once you are happy with your query, you can use the aggregate functions available in Esix to perform calculations on the data set. The supported aggregates are `average`, `count`, `max`, `min`, `percentile`, and `sum`. + +```ts +await Product.where('category', 'lamps').average('price'); + +await Product.where('category', 'lamps').count(); + +await Product.where('category', 'lamps').max('price'); + +await Product.where('category', 'lamps').min('price'); + +await Product.where('category', 'lamps').percentile('price', 50); + +await Product.where('category', 'lamps').sum('price'); +``` diff --git a/docs_old/index.ts b/docs_old/index.ts new file mode 100644 index 0000000..134720c --- /dev/null +++ b/docs_old/index.ts @@ -0,0 +1,154 @@ +import cpy from 'cpy'; +import frontMatter from 'front-matter'; +import FS, { promises as fs } from 'fs'; +import { compile } from 'handlebars'; +import hljs from 'highlight.js'; +import marked from 'marked'; +import { join } from 'path'; + +interface BuildConfig { + outputPath: string; +} +interface Page { + body: string; + description: string; + filename: string; + title: string; + url: string; +} +interface SiteData { + pages: Page[]; +} + +function isString(x: any): x is string { + return typeof x === "string"; +} + +let templateCache: { [ index: string ]: HandlebarsTemplateDelegate } = {}; +async function getTemplate(name: string): Promise { + if (!templateCache[name]) { + const source = await fs.readFile(join(__dirname, name), 'utf-8'); + const template = compile(source); + + templateCache[name] = template; + } + + return templateCache[name]; +} + +async function createPage(page: Page, siteData: SiteData, buildConfig: BuildConfig): Promise { + console.log(`Generating ${ page.title }.`); + + const template = await getTemplate('page.hbs'); + + const styles = await fs.readFile(join(__dirname, 'styles.css'), 'utf-8'); + + const data = { + analyticsId: process.env['GOOGLE_ANALYTICS'] || '', + content: page.body, + description: page.description, + pages: siteData.pages, + title: `${ page.title } - Esix`, + styles + }; + + const html = template(data); + const outputPath = join(buildConfig.outputPath, page.filename); + + await fs.writeFile(outputPath, html); +} + +async function copyPublicFiles(outputPath: string): Promise { + await cpy([ join(__dirname, 'public', '*') ], outputPath); + await cpy([ join(__dirname, 'public', 'images') ], join(outputPath, 'images')); +} + +async function loadSiteData(): Promise { + const data = await fs.readFile(join(__dirname, 'sidebar.json'), 'utf-8'); + const config = JSON.parse(data); + + marked.setOptions({ + renderer: new marked.Renderer(), + highlight: function(code, language) { + const validLanguage = hljs.getLanguage(language) ? language : 'ts'; + + return hljs.highlight(validLanguage, code).value; + }, + pedantic: false, + gfm: true, + breaks: false, + sanitize: false, + smartLists: true, + smartypants: false, + xhtml: false + }); + + const pages = await Promise.all( + config.links.map(async(filenameOrObject: any): Promise => { + const filename: string = isString(filenameOrObject) ? filenameOrObject : filenameOrObject.filename; + const newFilename = filename.replace('.md', '.html'); + const url = isString(filenameOrObject) ? `/${newFilename}` : filenameOrObject.path; + + const path = join(__dirname, 'pages', filename); + const file = await fs.readFile(path, 'utf-8'); + const content = frontMatter(file); + + const attributes = content.attributes as any; + + return { + body: marked(content.body), + description: attributes.description || 'Esix is a slick ORM for MongoDB.', + filename: newFilename, + title: attributes.title, + url: url + }; + }) + ); + + return { + pages + }; +} + +async function generateSitemap(siteData: SiteData, buildConfig: BuildConfig): Promise { + console.log(`Generating Sitemap.`); + + const template = await getTemplate('sitemap.hbs'); + + const d = Date.now(); + const ye = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(d) + const mo = new Intl.DateTimeFormat('en', { month: 'short' }).format(d) + const da = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(d) + + const modifiedAt = `${da}-${mo}-${ye}`; + + const html = template({ + urls: siteData.pages.map(page => ({ + modifiedAt, + url: `https://esix.netlify.app${page.url}` + })) + }); + const outputPath = join(buildConfig.outputPath, 'sitemap.xml'); + + await fs.writeFile(outputPath, html); +} + +(async () => { + const siteData = await loadSiteData(); + + const buildConfig = { + outputPath: join(__dirname, 'dist') + }; + + if (!FS.existsSync(buildConfig.outputPath)) { + await fs.mkdir(buildConfig.outputPath); + } + + await Promise.all( + siteData.pages.map(page => createPage(page, siteData, buildConfig)) + ); + + await copyPublicFiles(buildConfig.outputPath); + + await generateSitemap(siteData, buildConfig); +})(); diff --git a/docs_old/page.hbs b/docs_old/page.hbs new file mode 100644 index 0000000..988bf95 --- /dev/null +++ b/docs_old/page.hbs @@ -0,0 +1,77 @@ + + + + + + + + + {{ title }} + + + + + + + + + + + + + + + + + + + + + + + + + + {{#if analyticsId}} + + + + {{/if}} + + + + +
+ + +
+ {{{ content }}} +
+
+ + + diff --git a/docs_old/pages/configuration.md b/docs_old/pages/configuration.md new file mode 100644 index 0000000..85e3f83 --- /dev/null +++ b/docs_old/pages/configuration.md @@ -0,0 +1,30 @@ +--- +description: How to configure Esix ORM. +title: Configuration +--- + +# Configuration + +To make it easy to add Esix to your project and to be able to change your application's configuration between your local, test, and production environment, Esix is configured with environment variables. + +## Connecting to the Database + +These options define how Esix will connect to your database. + +`DB_ADAPTER` + +The adapter is used to handle the MongoDB connection. Can be either `default` or `mock` where `default` uses the [offical MongoDB package](https://www.npmjs.com/package/mongodb) and `mock` uses [mongo-mock](https://github.com/williamkapke/mongo-mock) which is great for testing. + +`DB_URL` + +The URL of the database. Defaults to `mongodb://127.0.0.1:27017/`. + +`DB_POOL_SIZE` + +The size of the connection pool. Defaults to `10`. + +`DB_DATABASE` + +The name of the database to connect to. Defaults to ``. + +If you want to create a configuration file for your local environment you can use the [dotenv package](https://www.npmjs.com/package/dotenv) but you should make sure you don't commit any secrets to GitHub. diff --git a/docs_old/pages/defining-models.md b/docs_old/pages/defining-models.md new file mode 100644 index 0000000..79a7f51 --- /dev/null +++ b/docs_old/pages/defining-models.md @@ -0,0 +1,32 @@ +--- +title: Defining Models +--- + +# Defining Models + +Esix provides a beautiful, simple ActiveRecord implementation for working with your database. Each collection has a corresponding "Model" which is used to interact with that collection. Models allow you to query for data in your tables, as well as insert new documents into the collection. + +Models are the entry point for working with data in Esix so let's create our first model. + +```ts +import { BaseModel } from 'esix'; + +class BlogPost extends BaseModel { + public title = ''; + public publishedAt = 0; +} +``` + +By defining a model and extending the `BaseModel` class, you get access to all of Esix's functionality and you can use it to [Create, Update](/inserting-and-updating-models) and [Query](/retrieving-models) documents from the database. + +The model will already have `id` property which will be defaulted to an [ObjectId](https://docs.mongodb.com/manual/reference/method/ObjectId/) unless you provide one yourself. + +It also comes with two timestamp properties, `createdAt` and `updatedAt` which will be updated during the model's lifecycle. +When a model is created, the `createdAt` property will be populated with the current timestamp, and every time you update or save your model, the `updatedAt` property will have the current timestamp. + +Both values contain the current time in milliseconds since January 1st, 1970, using JavaScript's [Date.now](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now) function. + +The collection the models act upon is determined by name of the class. The class name is transformed into a dasherized and pluralized version and this is used for all operations against the database. + +For example, if you have a class named `BlogPost`, the collection name will be `blog-posts`. This is due to Esix's strong belief in [Convention over Configuration](https://en.wikipedia.org/wiki/Convention_over_configuration). + diff --git a/docs_old/pages/deleting-models.md b/docs_old/pages/deleting-models.md new file mode 100644 index 0000000..a61dd0f --- /dev/null +++ b/docs_old/pages/deleting-models.md @@ -0,0 +1,32 @@ +--- +title: Deleting Models +--- + +# Deleting Models + +Once your data is no longer needed, Esix provides two ways of removing models from the database. You can either use an instance of a model to delete that model or you can create a query to remove multiple models. + +## Deleting a Single Model + +If you have a single model you want to delete, you can use the `delete` method on the instance. + +Keep in mind that the data is instantly removed and won't be recoverable. + +```ts +const post = await BlogPost.find('5f5a4c36493d53b6caa8410e'); + +await post.delete(); + +``` + +## Deleting Multiple Models + +If you want to remove models in bulk, you can use the normal methods available on the QueryBuilder to create a matching selection. + +```ts +await Jobs + .where('completed', true) + .limit(12) + .delete(); +``` + diff --git a/docs_old/pages/index.md b/docs_old/pages/index.md new file mode 100644 index 0000000..1c8b440 --- /dev/null +++ b/docs_old/pages/index.md @@ -0,0 +1,70 @@ +--- +title: Getting Started +--- + +# Esix is a slick ORM for MongoDB. + +Inspired by ActiveRecord and Eloquent, Esix is a great way to work with your database in TypeScript. 🥧 + +Esix uses a [Convention over Configuration](https://en.wikipedia.org/wiki/Convention_over_configuration) approach where you define your models as normal TypeScript classes and with minimal boilerplate. + +## Install Esix + +Add the package using your favorite package manager. + +**Yarn** +```sh +yarn add esix mongodb +``` + +**NPM** +```sh +npm install esix mongodb +``` + +## Getting Started + +First off, you'll need to define your model. + +```ts +import { baseModel } from 'esix'; + +export default class Book extends BaseModel { + public isbn = ''; + public title = ''; +} +``` + +The base model comes with id and timestamp fields so you don't have to worry about those things. + +Now you are ready to create some data! + +```ts +import Book from './book'; + +async function createBooks(): Promise { + await Book.create({ + isbn: '978-0525536291', + title: 'The Vanishing Half' + }); + await Book.create({ + isbn: '978-0525521143', + title: 'The Glass Hotel' + }); +} +``` + +Then you can easily query your models. + +```ts +import { Request, Response } from 'express'; +import Book from './book'; + +async function showBook(request: Request, response: Response): Promise { + const book = await Book.find(request.params.id); + + response.json({ + book + }); +} +``` diff --git a/docs_old/pages/inserting-and-updating-models.md b/docs_old/pages/inserting-and-updating-models.md new file mode 100644 index 0000000..ea8196f --- /dev/null +++ b/docs_old/pages/inserting-and-updating-models.md @@ -0,0 +1,37 @@ +--- +title: Inserting & Updating Models +--- + +# Inserting & Updating Models + +When it comes to adding new models to the database, there are two different ways to go about it. You can either use the `create` method and pass it the attributes you want the model to have, or you can create a new instance of the model and call it's `save` method. + +```ts +// Using the create method. +const firstPost = await BlogPost.create({ title: 'My First Blog Post!' }); + +// Using the save method. +const secondPost = new BlogPost(); + +secondPost.title = 'My Second Blog Post!'; + +await secondPost.save(); +``` + +If the model doesn't have an Id, a new [ObjectId](https://docs.mongodb.com/manual/reference/method/ObjectId/) will be created and assigned to it. + +When inserting a new model, the `createdAt` property will be filled with the current timestamp if it's not present. + +If you want to update an existing model, you can also use the `save` method to persist your changes. + +```ts +const product = await Product.find('5f5a474b32fa462a5724ff7d'); + +product.price = 14.99; + +await product.save(); +``` + +When you call `save` on an already existing model, the `updatedAt` field will be filled with the current timestamp. + +Both the timestamp properties contain the current time in milliseconds since January 1st, 1970, using JavaScript's [Date.now](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now) method. diff --git a/docs_old/pages/retrieving-models.md b/docs_old/pages/retrieving-models.md new file mode 100644 index 0000000..4aca8f9 --- /dev/null +++ b/docs_old/pages/retrieving-models.md @@ -0,0 +1,58 @@ +--- +title: Retrieving Models +--- + +# Retrieving Models + +Once you have your models defined, you can use them to query the database for them. You can think of each Eloquent model as a powerful [query builder](/api/classes/querybuilder.html) allowing you to fluently query the documents associated with the model. + +If you are looking for a single model you can use the `find` method to get an instance of a model matching the given id. + +```ts +const book = await Book.find(22); + +console.log(book.title); +``` + +You can also get all the models in the collection. + +```ts +const flights = await Flight.all(); + +flights.forEach(flight => { + console.log(flight.name); +}); +``` + +When you are working with multiple models, you can use methods like `where` which returns an instance of a `QueryBuilder`. The Query Builder can be used to filter, sort, and limit your searches. + +```ts +const blogPosts = await BlogPost + .where('status', 'published') + .where('categoryId', 4) + .orderBy('publishedAt', 'desc') + .limit(12) + .get(); + +blogPosts.forEach(post => console.log(post.title)); +``` + +You can find out more about the different methods available by consulting the API documentation for [BaseModel](/api/classes/basemodel.html) and [QueryBuilder](/api/classes/querybuilder.html). + +## Aggregate Functions + +Once you are happy with your query, you can use the aggregate functions available in Esix to perform calculations on the data set. The supported aggregates are `average`, `count`, `max`, `min`, `percentile`, and `sum`. + +```ts +await Product.where('category', 'lamps').average('price'); + +await Product.where('category', 'lamps').count(); + +await Product.where('category', 'lamps').max('price'); + +await Product.where('category', 'lamps').min('price'); + +await Product.where('category', 'lamps').percentile('price', 50); + +await Product.where('category', 'lamps').sum('price'); +``` diff --git a/docs_old/public/browserconfig.xml b/docs_old/public/browserconfig.xml new file mode 100644 index 0000000..c554148 --- /dev/null +++ b/docs_old/public/browserconfig.xml @@ -0,0 +1,2 @@ + +#ffffff \ No newline at end of file diff --git a/docs_old/public/images/android-icon-144x144.png b/docs_old/public/images/android-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..d3e51ff4380b29ec208946083f2e8e443f1b6b1d GIT binary patch literal 10968 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 literal 0 HcmV?d00001 diff --git a/docs_old/public/images/android-icon-192x192.png b/docs_old/public/images/android-icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..9548a4e630443bcf478e8f6baa19247492ec31b3 GIT binary patch literal 13227 zcmZ{r^;6tl7si)m(cDTJ}WReB%zAUKExA_uDg$%Cm5 zMBqU(hyDF{_o2v3%{m>nvN~;54QAQ*aZLDxCl>Mx3oD6>=dB7g3+X@1IPTN$#@YRY z{@>_B3tqPERx$aeyM>23^jbB~;Po?1y^(S>ET#FzBv0Q&=4$Y}sya(WPyD?)1-fko2BWH^Lmsm%nMyX6QvS+i`3*$;LrdGD1$CCd>-o zjj9ez{A#9!aE?(cE(D!t*)+LwX-=RIlM2Uebw>F0<2OzIRrNBGhC0cR2|tf77>Vbo z|Mi`R9dC%aIoZAYBE4y??g=-JDfY$ek>cgyfuijXp+hVkl)$YVaV75opRV7sAhk@S zn${X$oI*P4Z?O1|{H6|16l=&Inz$>1-ILp1*?^9pvR9py7M%_f@LQqfi(;PGlLSfo zjCNV#7{5fO6=a-NZFQ8o$-0-7imGu_m3_XlObZ_bj>Gx!57~{u<{pZt6546SEyqpv zK7G>EP!-EWReM8AqzTAfvDJwcQ_&(`d@L_hetoUx4I%8CcRcPKU_WhSutt)F()C## zg3l2`Dx5kYl9c^HuJ8yglm5j*!_f&)R1I5nt*M^#ghUE?TZ%@w98Qv6wbgk4_16yi zDQV2N6XyKI1!JPL z9U2WdYyUwB@Gy3bU^iK7jYzxFDp*G*LLm+8ZA_5OE2%fp^)Ctf{mUpoaU-B;PN`GD#PLJE=6u7QoYVkz2m0rFemh9DRFaLmq z-gFk0dn8?OELNFcO>?GkR`>GnugTY!hDD!RD*QuD$k_aU-Z&E~g^&jn>Eqqy1 zeW1*wyWKO0`-rK}UNoSx!w^P65$rk3_lve)d_0-*q;VwgoosMNW%-qv`@Ik?*?Z5v zrN$s0)7d{`QYZFBEGw#LPm+2}*>Yn*a2D)(RNL_j3e{o3!sf zZI#JuC39HCMpK&zPWu5p_kJSix(mHOgK>_k&Ie2vQoG7!>hfonF*YD z{AABkH&3(*0W=9zV{f)QQ|Nct+-hTeAt6;a_WfrSm28&^@@E4eLc23Kv|%@M!WKEx zF~hV@<}o0Z^^&zCcH_hQLp1X|vBHysmo1C_qJyaIdayv^Xh=b1Nx<3Ua6$|zF@IGj zgN+J)`$5){wQGEgk4TaldvB4G)J1O!fu}6lb;?d+-?c&<%ApLhxuy;|-sAt43xZ_Q z-fl3=r(ICyC$_K3E|Oc=ey<@Ls06W;^qgzv;k2lz7vwJ$i_Gve59WPF`V5CPDf0Z? z=E)$M9SvQ^?LgWPq?KqW+g(dFOobOJp;jC*84pF7EXHF*z6{Q#Hz89emM;4noR-Xr zj9@wH(`zW;{!J7yica+Or@er~9QzpQiqyT}7wc|Yyo;5V+smx*4s~e#z4U$x$hos^ zRt{BR*I9HxIntRoa$%n!JWd;0#f9N`Fd#C@_2K2St}nK49O8UY02P!B9!5lXh}O6m zhmFzw22Z-X#LPyrgtIY5%}=ZXa#0D(uY0LvslET2qYQ|bNPg69M{hr@vzQ~rNYaJn(|Eu3-vy?VhuS?Cm>PB z_F!6)g3MHoqp1k3Og`7lo`|0-WJVuXx|tV-fqb?D+PI|#t+IA11^8MUyV73!mo zf1r+}wE+G7#oDhLaoR(~R*5-~ybAB|<-Yh?zRK$xR`iw8+MGaiDqeT<$Pc>D(|N~4 zymvJxUfNI}u{AFaAN zG4Gc1S^s9;Qw(vwHBkH{sVV@Fh4u}MYVEv>tjsMKjhguzlTGW3=%vPZ@8?89@9nDe}xgCw?Q%{vXrSQ3T%SG~+7lAPb zac!0rMPXf-qD%kfWbZ_UA2TAh5E#m+3jm7v~&uF|@M#{)=tG zn5Fg#?3zZb2a#CRZ;b&k_17cu{3K&nGoux)VlO8UdKoxy-hzXj;fjCp`-2BHhZ&%T*bg~(bgp@E`S_v z9>($>8-Vy+q#?N#=g#u7bd^`zUW;)<^adO}IPO3AASgO!H}KlHckpkV?|1!B5hs%r2q6;iCHvX#v1z_3El<0fcV0N!+9-~v z5qVdE*mZQ&cH?*2`t%5W#c+<>$h)j=(U=$Z+m7)FiGTsc7Juqp~2WYDFX}^CB zaWoFQ>u_t4`Kr=)&s;9?7!06W{an4LV8va@gm<>xq*q&OkaVUAMW-kmj_{-Kiyc#e zO&FbdH=B8~F=VZRg_)NqFmjv3`x-9A0p|9EWPuz&{}^<4IeM{SY>#kRWH0_Ce2k)HnuEtaV2PcJCheUp*nYjf;oU(dgTzVeOl zp8kT4hTp3{GTL>4yPc;mvnu6x#au*;HFxW%Loat&k6Qe`J^-M=M_bG8`F%B=Ywh`_ z(pR?D0Oau3_1MsR8tKbkNIVC1d5Xx#0|lSV8EVuy4rg9{)d!V%=Q7>{sp#o;cG6#3 zU^-*xZC?}3y5PI5Pii{_jW1 zkz`>a3@|^D6N%-pT2e#Au2I|Xu&f0z!j>xqRrzlG*W)&A(r11i7fSl6NNrp=oMgJD zx4jF`fIf_FonMuKLgXrP7`XgR)%-|QCbQhe)~jZPRy$!SN;!n5b`)B!2-V2~Fo9+( zdgLh5c!{Ib+X9O_%O`_<7wG@$03=O+q$ph&^J;ra(6h8xG~g2a{408vUeIsBtJ zYqQJ8i(X9r{ScJ#_LuZ+sw0=Sv9m1z0L`U-K0V#^Zo6Nr3Wkg@Nn|_|HfeB0&kha_ z;9uaK>XiMcA!yg0=g!~Pfzjl;uF=#ONY;{_;`r?sbE4gFE?~PUFImCjz2U+!&L89HC*`F7sw&e z1~}~)5yOQ+lWjfxt@J3XH~vAl>;44?Ade7^YztKo%>Lpytf)|CgkF~^$({pe!U#x1 zGZf)P4_($%f(r{0OCI9Qpi5_Wj~dnjn2B}Egtw3-f1C;6vMl;J+*i9FH=8#OpS>)l3!21Ec7-q}~}JlgnWL_aCz z`3fuXiS#?85p6pKe*~?2H%c>NwQx2i85bQ(Yxe4wTUaeww(9$EVju+pag}^DxtKA{ zl=&QVwHtK%I-NiH*eNp^fE6~_de`GL&T9r|GN$rgrXMTV-JnW(-F!RK;spQ@6|x(3 zBAKYrGob>EC9)!GBas=pKemE1!OxLsZ+9>HE_Y7PtJ@a|AV!1Pz?7Q99xCv_hfV1Hz4Q`s;zv~^vkEe zZH5x#E?WIWtzO!<<-5#2?^JhFF~ovG842?O$$_Pp+J@tA4&$I|0purm`zJr9-qxqe1@mg|-;@O-~*68cYrb+=yCqVpz_k^V+P6LCFmFn>C7XtO!qL!<1fdp0G&FAuV7n(RWQ{qP{KhDe z%2p1*jD6iPf}OuARH7?3Wk-t(tv9FQ&}5e|^Oz?7A(fI(ydA<+y@roX%& za`z<%7ThD^`OAo7$QzUl4*GE!U$s+=^W@mx@f|0zAnohe)RQs1i6jibBArTbk#Mlt(O1`ZNaE%C99iqt4BCi^{^G1g zg&S!L5jq^rUUB>Hea6M|EDj^RV_x%Y)QB@8n^grWWtlhpgE~@Si*s*$NtI%*uRBss zh4n{;$g;3k3PeiNmoV&pgP{S2!&B$`@EpA)q;hxRk=&Ev@yQv<&8f0$H=ch5Fs?(F zC@h`BW+6zz@O8S6&?)5Tgj2ID8hx}71r!UN^HI>FgMcDd5sY4B1Q!mfYG+qMj-1F^ zITkr-&##<<;cUjEc6)!0q^e!6K?gTaJ)y$~1xu%o9gqwAp{uLrLcZ=o(=j-c ze<*C?xp;#UvFUvOa->n;-hT`rkzp5TMFNaJ#IUNiuzZv_eB!Wfi~Z;u#Nq|(A{;gp zGnPQT-Ay0lY$&+X&JQ&g%?@G^NM&t8b5>#=Xuf=-G;++9h6=y&X-}jMHZgK2>p9)w zvHD0;5^M=Q9}FGt`rX}q@(*!G-niKxM_g9urkLC2r+^UPAeNg?4rK$==(B`4h_9X! z@H~IxK%XmyS~7fHsuDz?OU=A@U`cmL?{G}y5?+H<2S1Z6L1*?+czbPRMJ1SAXh6}a zAtrNTC4Irmb|QEfv%ha(=I1z%%ul9cIx;G2IzU?pR&>OtLtlq*!B3e$B+_kS^}cp- zoCH%h)jDaYVSiXaAQC-nIiU3`PhSZ-Ni@-R&&%I270rz9g&5+cM*8TYQ*hSmtOXGe&)4m+WX(2$v8TK#su-WdV|oDu37g>$mB)^;bG^< zTlVBL6ZRJsvU}j#q@kMslKevGiN{;pd>7w!X1IvCG1`-1fw0htGSW{k#Y>b31$21r zmMqUkSXd)oDq+rq!^lP6EMgfT@!xS4DCnpQDdL#Wbli*Mqhnm4227-U0!^3f=!TY^M&%*nczMa1D=i zFy<0`hTv~0M}-MI&7!fo>qoa!pjffX{j)A&tOwM{2uLO;SH)08V-$rWZY4^c(e#sg ze!Khz55R(zJW97dBx2SJNH6~Fl8j4D%?$eF`VoSXiYp4dxh*GpmHED$U{o$Vae*y0 z0!df~9zn$1*CbYeL@+s}8}2v?540{{nEU}eET?+R&DpcI9NG@sCo^5LpIEHMKwI=r zw}0rVG7@uBL$u^5QWC3Gfz|L8@^}bQ@fZgEsZ;>wke>Xa6j1^=cX|~)A|c$cu|j{` zV>&v={NEx$t5vn?NSd#Su!{WH7|!RtSHTxQgNiPZCjW-iOce$P0r)TN|R96i3A8P}EaLB#4>K^Zi1`-KcJ zku%(1je(cW40mud)(Vc>u#;$CACI}4B9q-EH)tVT)E6il8e+%rSK$pFUCpiKY8!(q z_yy-~Z!rXC&&ijkY-6^Y&gFeog`>0HgX&*H#Wt7lGffg-@EcDZppZ7D-f5C+S+CP> zn2OP-29`m{#uc*9^;M5}C}Zk8WX2LQE|FSVp;3OJew_a$iXb}y@ODm&Ia7OholI5M z*yjI?IO=Z_7O~A9bMem7=uNy6LVsf((+uR4f$Un)i)jVa{YQje8C*Y zDO2S8z*6s~Q#o3H0mR{|K(Nc)S77A2Y;hgz*tZIoTOJLhq4{SRROOlkH9 zWYNJKAu+htiCc-+o=W{AlaX@n)@+tmB5+Axh`J2gk#(9}dI|Q5mrg?AODg5Jrj$>6 z8Bpz|rEU2x@X&iSOLn74HS#Lv8dzj%{?JuKtjR%}qG2^qtiDu$hTIlN0YmwFRM zc!*s$H3bp58zJ1;L>bOAxIP!rWU^~H227lDg6~676fz8=jg=YtQa?UoJFGH(v*=tk zkUktnp9Ye=4o8QAuuKX6ov)7n22xVl*h#mE5TvKD8b3RH*UoR?zCJCBhH-eGz;x(y z{}n)gg1N(pDBCzVND25rB9j9tXpRA{=Nv_PG59F(@oiW0d^T^@FqpCQy==uPMkfz| z7bV?kKY8h;{?HWi3hy=qR~>%QqBUG8>h%X~@6%a1@6&Pc(L@!|!vm!t=`xzHZ`^GL zb+O6I_bNM12h@8&cah23iWr9TDKk3&bfuo@b&KbaWqg`}98Yt)ns6e-N@CAlv;7Cw zyR`xvTMd}{Ll?d1LkI2{{rbz`LQa*(X<~RiinhRLDfN0_02(}v&6h~r8vX0=k2>Yy zX?cH|ea(gdjmP@yRefA@xjSi-K7z5_jbMNrjW#f7WO*9x*7DzNVmigZQhB?t17S z1~H3rMIsK?N-D88I?~D33XGvll}s-%1m7yWx}(WG<%0yE3h+QLRz3Txlyo7B>w?54 zC1h_su`(~$5!KZ_FCnDmU+=Z?s1Cd79M++#sPZ~!VjI(WgnXOOLnzzvIO+W(q;ZYL zwMY@=buW;%b5&-VMbyNB8H=ul2cd3rc2Q*5HQk3>0gf&5J;}R>mlIJ^;1jK`Qyo#b zAnTW)?IxuYi>KQ={f@=wsI1X7Kpz2JJJipL`nD}Nbs)6aBy)Gkj1Z$&6+Xk8ew>52 z(y zYI7f|KKRS(=DiS6MEsSikEY~!=Tj$3zvQAS=w+zmipp{lgn9uJjLYC zxwVcolIQ0@{f-rDsOm4=OL*@jk9K{})ea%+rown3Fnp7I?x3OxrtVtz^o!+M4HqsF zU3d}A6QYlLDxssgw36JvfU1-C{0$W4f~Dcf=KCG3Z&Z+u&ON_k4yH+dWQ1JJJqR^K zv3{<9Mg?=IQJHV1l{PdMf)!o)si3V-%$JvydBi2WB@kVo$mc^lK(Xi2Ssr;v7Q?0ss>>Orm z$r3J<7C)W~mKwkO>JN-dN%KK+t8FbAng_R-UGnPJVtQ3^ucSQL%%Vv{2KZituq*u$ zyS%o7!SG^?R^;dnXr~-s^?r%0AE3K%6rx!v{mv&xNWeOp5Gx>j6%E=^y;lj#Hz`16 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 PZ~(HBN)nY~hJpVBs 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 literal 0 HcmV?d00001 diff --git a/docs_old/public/images/android-icon-72x72.png b/docs_old/public/images/android-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..468555feeb975a4a7cb8b29f17cdf9c18096bd1b GIT binary patch literal 4937 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 QsRBSlRad22$>!yM0cZCt1poj5 literal 0 HcmV?d00001 diff --git a/docs_old/public/images/android-icon-96x96.png b/docs_old/public/images/android-icon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..028d6a2c4ed4d4568e5c41dcb3a20d112a9cf011 GIT binary patch literal 6748 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 literal 0 HcmV?d00001 diff --git a/docs_old/public/images/apple-icon-144x144.png b/docs_old/public/images/apple-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..d3e51ff4380b29ec208946083f2e8e443f1b6b1d GIT binary patch literal 10968 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 literal 0 HcmV?d00001 diff --git a/docs_old/public/images/apple-icon-152x152.png b/docs_old/public/images/apple-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..2ec24f103f7a8532ead21628525d25a53cb5a21e GIT binary patch literal 11621 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 X{TN@@W9ol-(*SvCC8=r&aPa>E1##J7 literal 0 HcmV?d00001 diff --git a/docs_old/public/images/apple-icon-180x180.png b/docs_old/public/images/apple-icon-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..3d25bda076ac61f6fa9c030ccc85d0a219dc852b GIT binary patch literal 14282 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 z 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 literal 0 HcmV?d00001 diff --git a/docs_old/public/images/apple-icon-72x72.png b/docs_old/public/images/apple-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..468555feeb975a4a7cb8b29f17cdf9c18096bd1b GIT binary patch literal 4937 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 QsRBSlRad22$>!yM0cZCt1poj5 literal 0 HcmV?d00001 diff --git a/docs_old/public/images/apple-icon-76x76.png b/docs_old/public/images/apple-icon-76x76.png new file mode 100644 index 0000000000000000000000000000000000000000..30047512fd8cb0bf962d0e620cb3a14317112215 GIT binary patch literal 5246 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 literal 0 HcmV?d00001 diff --git a/docs_old/public/images/favicon-16x16.png b/docs_old/public/images/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..f61cda8d0cfa06036d0741ef21afc84ae8018f2e GIT binary patch literal 1396 zcmZ{h3rtg27{?DF1x137sAy)=W|6qf(%aGkZ4^f-kAg*BV*?#<+uoL1+OqZ{k%UK$ zG9(zcg&CHaEHPwk4rLe}ju}P^I4BQ!4W?ju2=Wl*Re4!pUqLr!vXk$;zVrM4zjN=o z6cHZmy6wO=gpjK+L=Xk@4qJD2fblThEgGgRa(|IOLgiOnthgiW?Q~JWd~~bjoiW%@ zB_UBFgfcu3%DI5hGNf`w5lX`l8c#xqSA@{M)N7TIM?v>(#EFR}u3i~p zR0bQALZd3?filpb6jZC?|4@b+ZTXE5t^>dXy$M*aOJF=BsD`j@0S46u6KXsIR*(#< zv5gx^0ATTtEiB*&0#xfhugUeKLQtIo0F(wvupz~E2O|_xhZ?mfYqb%z7i3L$i~HN_ zC(Ye6=I+^!hRM6d16c_TLuSj`+S+jc%WT{PCi$9&3-i{+1?y#Pt0JKKVsg{eABQ{-9w{*8o)mDtu{W{WGH_=!<-qSgg zooE{Fvn(yHSY}@>Em%jN&g;ddvTNr4N3(;yb6w3ZDoO@aLZdFCmW-;?gw?>id{^NY z57RL+D%|$&Z<_NVKM$u9KlM#b-wbyvn6rGblVV+QnvHNOGY=e|;U5opuk`1wCtpUd z7JfOu%XzTeIl$C*YzWkL;;>)=%5yvz0-LR=A#pl{Tz1*IUHg+PDwP@9r{)*k&{MAzVFt5 z`s?1}mQ$`G3LWpOEgmZDykogn&_s1rQT%8+Mf*4pN9u`;6BIznW;j zeP_0bdMuOT;qYUAXxWYN@dIU#?E~KRpm;kfmMWLqb02*FEJ?Ck?M zEddi^VJwV}ap_DfhUvv)b9ijl2N=e~FzlNHhW`ju8mU5d?*9e;wbwI25M-;M)5yql zTuUIK3YQZiT&|EPsotJGp1yQ0m4z|cbc{o1vZ#?vZ)!40rt%n!^z?L3g^h*|w5LWZ z@6DYAL*#CAj7d&YiFrJMMv|r?)Fh7=0jLf!OV)m4yv3~7+^BF2NnWB+1WcXQyM5ER*{(TsR zuha(V?!nlM~$`%tihl|O)FfW|t2?|fRU)9o88dN~Sz;MAWe$x5B0qz-9 A$N&HU literal 0 HcmV?d00001 diff --git a/docs_old/public/images/favicon-32x32.png b/docs_old/public/images/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..3a4780e69d0e0fce6dad651c848c91227e251c81 GIT binary patch literal 2248 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 literal 0 HcmV?d00001 diff --git a/docs_old/public/images/ms-icon-150x150.png b/docs_old/public/images/ms-icon-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..a3218905acf32060e5695763a0db55117eaa45d8 GIT binary patch literal 11440 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 !-`fh(cy6IIv??yflRI>j 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 R3g8=F$Ve(k6pI=D{9hItS0w-d literal 0 HcmV?d00001 diff --git a/docs_old/public/images/ms-icon-70x70.png b/docs_old/public/images/ms-icon-70x70.png new file mode 100644 index 0000000000000000000000000000000000000000..a9baacf52a65db1009e1e6a58d3943dd23e3aa00 GIT binary patch literal 4872 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 + + {{#each urls}} + + {{url}} + {{modifiedAt}} + + {{/each}} + diff --git a/docs_old/styles.css b/docs_old/styles.css new file mode 100644 index 0000000..36bd91d --- /dev/null +++ b/docs_old/styles.css @@ -0,0 +1,140 @@ +body { + color: #4A5568; + font-family: 'Open Sans', sans-serif; + font-size: 16px; + padding: 0; + margin: 0; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +h1, h2, h3, h4, h5, h6 { + color: #4A5568; + font-family: 'Montserrat', sans-serif; + font-weight: 300; + margin: 0; + margin-bottom: 1rem; +} + +h1 { + font-size: 1.5rem; +} + +h2 { + font-size: 1.35rem; +} + +h3 { + font-size: 1.2rem; +} + +.container { + display: flex; + flex-direction: column-reverse; +} + +nav { + overflow: auto hidden; + padding: 2rem; + text-align: center; +} + +nav .logo { + height: auto; + margin-bottom: 2rem; + width: 8rem; +} + +nav ul { + list-style: none; + margin: 0; + padding: 0; +} + +nav ul li { + margin-bottom: 0.45rem; +} + +nav ul li a { + color: #4A5568; + font-size: 0.8rem; + text-decoration: none; +} + +nav ul li a:hover { + text-decoration: underline; +} + +.content { + border-bottom: solid 1px #EDF2F7; + line-height: 2; + max-width: 720px; + padding: 1.5rem 2rem; +} + +.content p, .content pre, .content img, .content iframe, .content h2, .content h3, .content h4 { + margin-top: 2rem; + max-width: 100%; +} + +.content a { + color: #6B46C1; + padding-bottom: 12rem; + text-decoration: none; +} + +.content a:hover { + text-decoration: underline; +} + +.content a:visited { + color: #553C9A; + text-decoration: none; +} + +.content pre { + background: #282C34; + border: solid 1px #5d6679; + box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); + color: #DCD6B0; + font-size: 0.75rem; + margin: 2rem 0; + overflow-x: auto; + padding: 0.75rem; + word-break: break-all; +} + +code { + font-family: 'Source Code Pro', source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; +} + +p code { + background: hsl(210 18% 95% / 1); + color: #C53030; + font-size: 0.8rem; + padding: .25rem .4rem; +} + +@media only screen and (min-device-width: 768px) { + .container { + flex-direction: row; + } + + nav { + border-right: solid 1px #EDF2F7; + min-height: 100vh; + padding: 2rem 4rem 2rem 2rem; + text-align: left; + } + + .content { + border: none; + padding: 2rem 4rem 12rem 4rem; + } + + .content pre { + font-size: 0.875rem; + padding: 1.25rem; + } +} diff --git a/src/aggregates.spec.ts b/src/aggregates.spec.ts index 20c57ae..2e1f149 100644 --- a/src/aggregates.spec.ts +++ b/src/aggregates.spec.ts @@ -1,8 +1,8 @@ import { v1 as createUuid } from 'uuid'; import mongodb from 'mongo-mock'; -import { BaseModel } from './'; -import { connectionHandler } from './connection-handler'; +import { BaseModel } from './index.js'; +import { connectionHandler } from './connection-handler.js'; mongodb.max_delay = 1; diff --git a/src/base-model.spec.ts b/src/base-model.spec.ts index 776e17e..8638017 100644 --- a/src/base-model.spec.ts +++ b/src/base-model.spec.ts @@ -1,7 +1,7 @@ import { ObjectId } from 'mongodb'; import { mocked } from 'ts-jest/utils'; -import BaseModel from './base-model'; +import BaseModel from './base-model.js'; jest.mock('mongodb'); diff --git a/src/base-model.ts b/src/base-model.ts index 3d75634..b346436 100644 --- a/src/base-model.ts +++ b/src/base-model.ts @@ -1,7 +1,7 @@ import 'reflect-metadata'; -import QueryBuilder from './query-builder'; -import { ObjectType, Dictionary } from './types'; +import QueryBuilder from './query-builder.js'; +import { ObjectType, Dictionary } from './types.js'; import { camelCase } from 'change-case'; export default class BaseModel { diff --git a/src/connection-handler.spec.ts b/src/connection-handler.spec.ts index f493b4d..2c730f0 100644 --- a/src/connection-handler.spec.ts +++ b/src/connection-handler.spec.ts @@ -8,7 +8,7 @@ const databaseMock = { jest.mock('mongodb'); -import { connectionHandler } from './connection-handler'; +import { connectionHandler } from './connection-handler.js'; import { MongoClient } from 'mongodb'; diff --git a/src/connection-handler.ts b/src/connection-handler.ts index c8c58cb..e795c7c 100644 --- a/src/connection-handler.ts +++ b/src/connection-handler.ts @@ -1,7 +1,7 @@ import MongoMock from 'mongo-mock'; import { Db, MongoClient } from 'mongodb'; -import { env } from './env'; +import { env } from './env.js'; class ConnectionHandler { private client?: MongoClient; diff --git a/src/index.ts b/src/index.ts index 9c775f7..e5bd922 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,5 @@ -import BaseModel from './base-model'; -import QueryBuilder from './query-builder'; +import BaseModel from './base-model.js'; +import QueryBuilder from './query-builder.js'; export { BaseModel, diff --git a/src/injection.spec.ts b/src/injection.spec.ts index 0bb5194..61fd50c 100644 --- a/src/injection.spec.ts +++ b/src/injection.spec.ts @@ -1,8 +1,8 @@ import { v1 as createUuid } from 'uuid'; import mongodb from 'mongo-mock'; -import { BaseModel } from './'; -import { connectionHandler } from './connection-handler'; +import { BaseModel } from './index.js'; +import { connectionHandler } from './connection-handler.js'; mongodb.max_delay = 1; diff --git a/src/integration-test.spec.ts b/src/integration-test.spec.ts index c65c77f..8ad0fa9 100644 --- a/src/integration-test.spec.ts +++ b/src/integration-test.spec.ts @@ -1,9 +1,9 @@ import { v1 as createUuid } from 'uuid'; import mongodb from 'mongo-mock'; - -import { BaseModel } from './'; import { MongoClient } from 'mongodb'; -import { connectionHandler } from './connection-handler'; + +import { BaseModel } from './index.js'; +import { connectionHandler } from './connection-handler.js'; mongodb.max_delay = 1; diff --git a/src/query-builder.ts b/src/query-builder.ts index c58ac95..44d12f9 100644 --- a/src/query-builder.ts +++ b/src/query-builder.ts @@ -3,9 +3,9 @@ import { Collection, ObjectId } from 'mongodb'; import percentile from 'percentile'; import pluralize from 'pluralize'; -import { connectionHandler } from './connection-handler'; -import { sanitize } from './sanitize'; -import { Dictionary, Document, ObjectType } from './types'; +import { connectionHandler } from './connection-handler.js'; +import { sanitize } from './sanitize.js'; +import { Dictionary, Document, ObjectType } from './types.js'; export type Query = { [index: string]: any }; diff --git a/src/sanitize.spec.ts b/src/sanitize.spec.ts index a6ffc57..207fab1 100644 --- a/src/sanitize.spec.ts +++ b/src/sanitize.spec.ts @@ -1,4 +1,4 @@ -import { sanitize } from './sanitize'; +import { sanitize } from './sanitize.js'; describe('sanitize', () => { diff --git a/src/types.ts b/src/types.ts index b0e0c79..f7c88b4 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,4 +1,3 @@ export type ObjectType = { new (): T; }; export type Dictionary = { [ index: string ]: any }; export type Document = { [index: string]: any }; - From f3dbb1481d8ddaa528f84185ebdc1454f458487d Mon Sep 17 00:00:00 2001 From: Christoffer Artmann Date: Tue, 14 Feb 2023 23:34:13 +0100 Subject: [PATCH 5/6] feat: New Website! --- .gitignore | 1 + doc-gen/index.ts | 117 +- doc-gen/site/code.tsx | 45 + doc-gen/site/example-provider.tsx | 28 + doc-gen/site/example.tsx | 67 + doc-gen/site/global-styles.tsx | 92 + doc-gen/site/header.tsx | 13 + doc-gen/site/index.tsx | 47 + doc-gen/site/page.tsx | 94 + doc-gen/site/sidebar.tsx | 77 + doc-gen/site/table.tsx | 104 + docs/examples/all.ts | 27 + docs/examples/average.ts | 10 + docs/examples/comments.json | 34 + docs/examples/count.ts | 10 + docs/examples/find-by.ts | 13 + docs/examples/find.ts | 13 + docs/examples/first.ts | 15 + docs/examples/limit.ts | 21 + docs/examples/max.ts | 10 + docs/examples/min.ts | 10 + docs/examples/models/comment.ts | 6 + docs/examples/models/product.ts | 7 + docs/examples/order-by.ts | 24 + docs/examples/percentile.ts | 10 + docs/examples/pluck-multiple.ts | 19 + docs/examples/pluck.ts | 13 + docs/examples/products.json | 22 + docs/examples/sum.ts | 10 + docs/examples/where-in.ts | 21 + docs/examples/where.ts | 23 + docs/index.ts | 154 - docs/index.tsx | 0 docs/page.hbs | 77 - docs/pages/configuration.md | 30 - docs/pages/configuration.mdx | 2 - ...dels.md => creating-and-updating-data.mdx} | 4 +- docs/pages/defining-models.md | 32 - docs/pages/defining-models.mdx | 25 +- .../{deleting-models.md => deleting-data.mdx} | 5 +- docs/pages/deleting-models.mdx | 32 - docs/pages/getting-started.mdx | 70 - docs/pages/index.md | 70 - docs/pages/index.mdx | 79 + docs/pages/inserting-and-updating-models.mdx | 37 - docs/pages/reading-data.mdx | 128 + docs/pages/retrieving-models.md | 58 - docs/pages/retrieving-models.mdx | 58 - docs/public/browserconfig.xml | 2 - docs/public/images/android-icon-144x144.png | Bin 10968 -> 0 bytes docs/public/images/android-icon-192x192.png | Bin 13227 -> 0 bytes docs/public/images/android-icon-36x36.png | Bin 2567 -> 0 bytes docs/public/images/android-icon-48x48.png | Bin 3384 -> 0 bytes docs/public/images/android-icon-72x72.png | Bin 4937 -> 0 bytes docs/public/images/android-icon-96x96.png | Bin 6748 -> 0 bytes docs/public/images/apple-icon-114x114.png | Bin 8168 -> 0 bytes docs/public/images/apple-icon-120x120.png | Bin 8764 -> 0 bytes docs/public/images/apple-icon-144x144.png | Bin 10968 -> 0 bytes docs/public/images/apple-icon-152x152.png | Bin 11621 -> 0 bytes docs/public/images/apple-icon-180x180.png | Bin 14282 -> 0 bytes docs/public/images/apple-icon-57x57.png | Bin 3954 -> 0 bytes docs/public/images/apple-icon-60x60.png | Bin 4128 -> 0 bytes docs/public/images/apple-icon-72x72.png | Bin 4937 -> 0 bytes docs/public/images/apple-icon-76x76.png | Bin 5246 -> 0 bytes docs/public/images/apple-icon-precomposed.png | Bin 13801 -> 0 bytes docs/public/images/apple-icon.png | Bin 13801 -> 0 bytes docs/public/images/esix-logo.png | Bin 5857 -> 0 bytes docs/public/images/favicon-16x16.png | Bin 1396 -> 0 bytes docs/public/images/favicon-32x32.png | Bin 2248 -> 0 bytes docs/public/images/favicon-96x96.png | Bin 6748 -> 0 bytes docs/public/images/favicon.ico | Bin 1150 -> 0 bytes docs/public/images/ms-icon-144x144.png | Bin 10968 -> 0 bytes docs/public/images/ms-icon-150x150.png | Bin 11440 -> 0 bytes docs/public/images/ms-icon-310x310.png | Bin 31855 -> 0 bytes docs/public/images/ms-icon-70x70.png | Bin 4872 -> 0 bytes docs/public/manifest.json | 41 - docs/sidebar.json | 13 - docs/sitemap.hbs | 9 - docs/styles.css | 140 - example-lib/index.ts | 117 + package.json | 28 +- src/aggregates.spec.ts | 3 +- src/connection-handler.ts | 5 +- src/integration-test.spec.ts | 12 +- src/tests/index.ts | 14 + tsconfig.json | 18 +- yarn.lock | 2572 ++++++++++++++++- 87 files changed, 3871 insertions(+), 967 deletions(-) create mode 100644 doc-gen/site/code.tsx create mode 100644 doc-gen/site/example-provider.tsx create mode 100644 doc-gen/site/example.tsx create mode 100644 doc-gen/site/global-styles.tsx create mode 100644 doc-gen/site/header.tsx create mode 100644 doc-gen/site/index.tsx create mode 100644 doc-gen/site/page.tsx create mode 100644 doc-gen/site/sidebar.tsx create mode 100644 doc-gen/site/table.tsx create mode 100644 docs/examples/all.ts create mode 100644 docs/examples/average.ts create mode 100644 docs/examples/comments.json create mode 100644 docs/examples/count.ts create mode 100644 docs/examples/find-by.ts create mode 100644 docs/examples/find.ts create mode 100644 docs/examples/first.ts create mode 100644 docs/examples/limit.ts create mode 100644 docs/examples/max.ts create mode 100644 docs/examples/min.ts create mode 100644 docs/examples/models/comment.ts create mode 100644 docs/examples/models/product.ts create mode 100644 docs/examples/order-by.ts create mode 100644 docs/examples/percentile.ts create mode 100644 docs/examples/pluck-multiple.ts create mode 100644 docs/examples/pluck.ts create mode 100644 docs/examples/products.json create mode 100644 docs/examples/sum.ts create mode 100644 docs/examples/where-in.ts create mode 100644 docs/examples/where.ts delete mode 100644 docs/index.ts create mode 100644 docs/index.tsx delete mode 100644 docs/page.hbs delete mode 100644 docs/pages/configuration.md rename docs/pages/{inserting-and-updating-models.md => creating-and-updating-data.mdx} (95%) delete mode 100644 docs/pages/defining-models.md rename docs/pages/{deleting-models.md => deleting-data.mdx} (94%) delete mode 100644 docs/pages/deleting-models.mdx delete mode 100644 docs/pages/getting-started.mdx delete mode 100644 docs/pages/index.md create mode 100644 docs/pages/index.mdx delete mode 100644 docs/pages/inserting-and-updating-models.mdx create mode 100644 docs/pages/reading-data.mdx delete mode 100644 docs/pages/retrieving-models.md delete mode 100644 docs/pages/retrieving-models.mdx delete mode 100644 docs/public/browserconfig.xml delete mode 100644 docs/public/images/android-icon-144x144.png delete mode 100644 docs/public/images/android-icon-192x192.png delete mode 100644 docs/public/images/android-icon-36x36.png delete mode 100644 docs/public/images/android-icon-48x48.png delete mode 100644 docs/public/images/android-icon-72x72.png delete mode 100644 docs/public/images/android-icon-96x96.png delete mode 100644 docs/public/images/apple-icon-114x114.png delete mode 100644 docs/public/images/apple-icon-120x120.png delete mode 100644 docs/public/images/apple-icon-144x144.png delete mode 100644 docs/public/images/apple-icon-152x152.png delete mode 100644 docs/public/images/apple-icon-180x180.png delete mode 100644 docs/public/images/apple-icon-57x57.png delete mode 100644 docs/public/images/apple-icon-60x60.png delete mode 100644 docs/public/images/apple-icon-72x72.png delete mode 100644 docs/public/images/apple-icon-76x76.png delete mode 100644 docs/public/images/apple-icon-precomposed.png delete mode 100644 docs/public/images/apple-icon.png delete mode 100644 docs/public/images/esix-logo.png delete mode 100644 docs/public/images/favicon-16x16.png delete mode 100644 docs/public/images/favicon-32x32.png delete mode 100644 docs/public/images/favicon-96x96.png delete mode 100644 docs/public/images/favicon.ico delete mode 100644 docs/public/images/ms-icon-144x144.png delete mode 100644 docs/public/images/ms-icon-150x150.png delete mode 100644 docs/public/images/ms-icon-310x310.png delete mode 100644 docs/public/images/ms-icon-70x70.png delete mode 100644 docs/public/manifest.json delete mode 100644 docs/sidebar.json delete mode 100644 docs/sitemap.hbs delete mode 100644 docs/styles.css create mode 100644 example-lib/index.ts create mode 100644 src/tests/index.ts diff --git a/.gitignore b/.gitignore index 59ca3f0..4033a6a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.cache/ .vscode/ coverage/ dist/ diff --git a/doc-gen/index.ts b/doc-gen/index.ts index e6e0806..c185225 100644 --- a/doc-gen/index.ts +++ b/doc-gen/index.ts @@ -1,19 +1,115 @@ -import frontMatter from 'front-matter' +import { compile } from '@mdx-js/mdx' import fs from 'fs' -import { join } from 'path' +import matter from 'gray-matter' +import { basename, join } from 'path' import process from 'process' +import { createElement } from 'react' +import * as ReactDOMServer from 'react-dom/server' +import rehypeHighlight from 'rehype-highlight' +import remarkFrontmatter from 'remark-frontmatter' +import rimraf from 'rimraf' +import { ServerStyleSheet } from 'styled-components' + +import { PageLayout } from './site/index.js' +import { Page } from './site/page.js' +import { loadExamples } from '../example-lib/index.js' export async function build(inputPath: string): Promise { const basePath = join(process.cwd(), inputPath) + const cachePath = join(process.cwd(), '.cache') const pages = await loadPages(join(basePath, 'pages')) - console.log(pages) + const examples = await loadExamples(join(basePath, 'examples')) + + const outputPath = join(basePath, 'dist') + + // if (fs.existsSync(outputPath)){ + // rimraf.sync(outputPath) + // } + + if (!fs.existsSync(outputPath)) { + fs.mkdirSync(outputPath) + } + + if (!fs.existsSync(join(outputPath, 'public'))) { + fs.mkdirSync(join(outputPath, 'public')) + } + + if (!fs.existsSync(cachePath)){ + fs.mkdirSync(cachePath) + } + + const highlightStyles = await fs.promises.readFile(join(basePath, '..', 'node_modules', 'highlight.js', 'styles', 'github-dark.css'), 'utf-8') + + for (const page of pages) { + const slug = basename(page.filename, '.mdx') + const path = join(outputPath, `${ slug }.html`) + + console.log(`Creating page: ${ slug }`) + + if (!page.title) { + console.log('Missing Title.') + + return + } + + const content = await fs.promises.readFile(page.path, 'utf-8') + + const js = await compile(content, { + remarkPlugins: [ + remarkFrontmatter + ], + rehypePlugins: [ + // rehypeHighlight + ] + }) + + const jsPath = join(cachePath, `${ slug }.js`) + + await fs.promises.writeFile(jsPath, js.value, 'utf-8') + + // @ts-ignore + const { default: mdxComponent } = await import(`../.cache/${ slug }.js`) + + const contentElement = createElement(mdxComponent, {}) + + const sheet = new ServerStyleSheet() + + const pageElement = createElement(Page, { + children: contentElement, + slug, + title: page.title + }) + + const layoutElement = createElement(PageLayout, { + children: pageElement, + examples, + extraStyles: [ + highlightStyles + ], + title: `${ page.title } - Esix` + }) + + let markup = ReactDOMServer.renderToStaticMarkup(sheet.collectStyles(layoutElement)) + + const styleTags = sheet.getStyleTags() + + markup = markup.replace('', styleTags) + + markup = '\n' + markup + + await fs.promises.writeFile(path, markup, 'utf-8') + } + } type PageInfo = { filename: string path: string + + title?: string + description?: string } async function loadPages(pagesPath: string): Promise { @@ -33,20 +129,13 @@ async function loadPageInfo(filename: string, path: string): Promise { + if (code) { + return code + } + + const childTexts = childrenToText(children) + + return lodash.isArray(childTexts) ? childTexts.join('\n') : childTexts + }, [ children, code ]) + + console.log({ lang, rawCode }) + + //@ts-ignore + const html = hljs.highlight(rawCode, { language: lang ?? 'typescript' }).value + '\n' + + return ( +

+      
+    
+ ) +} + +const hasChildren = (element: any) => isValidElement(element) && Boolean((element?.props as any).children as any) + +const childrenToText = (children: any): string => { + if (hasChildren(children)) { + return childrenToText(children.props.children) + } + + return children +} diff --git a/doc-gen/site/example-provider.tsx b/doc-gen/site/example-provider.tsx new file mode 100644 index 0000000..6b9b315 --- /dev/null +++ b/doc-gen/site/example-provider.tsx @@ -0,0 +1,28 @@ +import React, { ReactElement, createContext } from 'react' + +import { Example } from '../../example-lib/index.js' + +type ExampleContextProps = { + getExample: (name: string) => Example | undefined +} + +export const ExampleContext = createContext({} as ExampleContextProps) + +type ExampleProviderProps = { + children: ReactElement + examples: Example[] +} + +export function ExampleProvider({ children, examples }: ExampleProviderProps): ReactElement { + const getExample = (name: string): Example | undefined => examples.find(example => example.name === name) + + const context = { + getExample + } + + return ( + + { children } + + ) +} diff --git a/doc-gen/site/example.tsx b/doc-gen/site/example.tsx new file mode 100644 index 0000000..9f3c790 --- /dev/null +++ b/doc-gen/site/example.tsx @@ -0,0 +1,67 @@ +import React, { ReactElement, useContext } from 'react' +import { Code } from './code.js' + +import { ExampleContext } from './example-provider.js' +import { Table } from './table.js' + +interface ExampleProps { + name: string +} + +export function ExampleComponent({ name }: ExampleProps): ReactElement | null { + const { getExample } = useContext(ExampleContext) + + const example = getExample(name) + + if (!example) { + return null + } + + const isNumber = (a: any): a is number => !isNaN(a) + const isObject = (a: any): a is object => (typeof a === 'object' || typeof a === 'function') && (a !== null) + const isString = (a: any): a is string => typeof a === 'string' + + const text = example.text || '' + + if (isNumber(example.output) || isString(example.output)) { + return ( + +{ text } +{ `// => ${ example.output }` } + + ) + } + + // The Array check has to come before the Object one as an Array is also an Object. + if (Array.isArray(example.output)) { + return ( + <> + + { text } + + + + ) + } + + if (isObject(example.output)) { + return ( + <> + +
+ + ) + } + + return ( + <> + + { text } + + + + { JSON.stringify(example.output, null, 2) } + + + ) +} diff --git a/doc-gen/site/global-styles.tsx b/doc-gen/site/global-styles.tsx new file mode 100644 index 0000000..f67ba3a --- /dev/null +++ b/doc-gen/site/global-styles.tsx @@ -0,0 +1,92 @@ +import { createGlobalStyle } from 'styled-components' + +export const GlobalStyle = createGlobalStyle` + body { + color: #374151; + font-family: 'Inter', sans-serif; + font-size: 16px; + font-weight: 400; + margin: 0; + padding: 0; + + -webkit-font-smoothing: antialiased; + } + + div { + display: flex; + flex-direction: column; + } + + h1, h2, h3, h4, h5, h6 { + font-family: 'Poppins', sans-serif; + font-weight: 700; + margin: 0; + margin-bottom: 0.5rem; + } + + h1 { + font-size: 1.875rem; + } + + h2 { + font-size: 1.5rem; + margin-top: 1rem; + } + + h3, h4 { + font-size: 1.25rem; + margin-top: 1rem; + } + + code { + font-family: 'Source Code Pro', source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; + } + + .content p, .content pre, .content img, .content iframe, .content h2, .content h3, .content h4 { + height: auto; + margin-top: 1rem; + max-width: 100%; + } + + .content a { + color: #7e22ce; + padding-bottom: 12rem; + text-decoration: none; + } + + .content a:hover { + text-decoration: underline; + } + + .content a:visited { + color: #7e22ce; + text-decoration: none; + } + + .content p > code { + background-color: rgba(175, 184, 193, 0.3); + border-radius: 6px; + color: rgba(167, 21, 21, 0.9); + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 85%; + margin: 0; + padding: .2em .4em; + } + + + .content pre { + background-color: rgba(17, 24, 39, 0.9); + color: #dcd6b0; + font-size: 0.875rem; + line-height: 1.5rem; + overflow-x: auto; + word-break: break-all; + + --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + } + + .content pre > code { + background-color: transparent; + } +` diff --git a/doc-gen/site/header.tsx b/doc-gen/site/header.tsx new file mode 100644 index 0000000..2133ec1 --- /dev/null +++ b/doc-gen/site/header.tsx @@ -0,0 +1,13 @@ +import React, { ReactElement } from 'react' + +type HeaderProps = { + title: string +} + +export function Header({ title }: HeaderProps): ReactElement { + return ( +

+ { title } +

+ ) +} diff --git a/doc-gen/site/index.tsx b/doc-gen/site/index.tsx new file mode 100644 index 0000000..db1de82 --- /dev/null +++ b/doc-gen/site/index.tsx @@ -0,0 +1,47 @@ +import React, { ReactElement } from 'react' + +import { Example } from '../../example-lib/index.js' +import { ExampleProvider } from './example-provider.js' + +export interface PageLayoutProps { + children: ReactElement + examples: Example[] + extraStyles: string[] + title: string +} + +export function PageLayout({ children, examples, extraStyles, title }: PageLayoutProps): ReactElement { + return ( + + + + + + { title } + + + + + + + + + + + + + + { children } + + + { + extraStyles.map((style, index) => ( + + )) + } + + + ) +} diff --git a/doc-gen/site/page.tsx b/doc-gen/site/page.tsx new file mode 100644 index 0000000..08c9315 --- /dev/null +++ b/doc-gen/site/page.tsx @@ -0,0 +1,94 @@ +import React, { ReactElement } from 'react' +import _styled from 'styled-components' + +import { GlobalStyle } from './global-styles.js' +import { Sidebar } from './sidebar.js' + +// @ts-ignore +const styled = _styled.default + +type PageProps = { + children: ReactElement + slug: string + title: string +} + +export function Page({ children, slug, title }: PageProps): ReactElement { + return ( + <> + + +
+ + + ESIX + + +
+ + + + + +

+ { title } +

+ + + { children } + +
+
+ + ) +} + +const Container = styled.div` + display: flex; + flex-direction: row; + margin: 0 auto; + max-width: 1200px; + padding: 0 2rem; + width: calc(100% - 4rem); +` + +const ContentContainer = styled.div` + padding: 2rem; + padding-bottom: 16rem; +` + +const Content = styled.div` + font-size: 16px; + line-height: 1.75; +` + +const Header = styled.header` + background: #fff; + box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + left: 0px; + position: sticky; + right: 0px; + top: 0px; + transition: box-shadow 0.2s ease 0s, background-color 0.2s ease 0s; + width: 100%; + z-index: 3; +} +` + +const HeaderContainer = styled.div` + display: flex; + max-width: 1200px; + margin: 0 auto; +` + +const HeaderLogoContainer = styled.div` + flex-grow: 1; + padding: 0.5rem 1.5rem; +` + +const HeaderLogo = styled.a` + color: #374151; + font-family: 'Poppins', sans-serif; + font-weight: 700; + text-decoration: none; +` diff --git a/doc-gen/site/sidebar.tsx b/doc-gen/site/sidebar.tsx new file mode 100644 index 0000000..7e8954e --- /dev/null +++ b/doc-gen/site/sidebar.tsx @@ -0,0 +1,77 @@ +import React, { ReactElement } from 'react' +import _styled from 'styled-components' + +// @ts-ignore +const styled = _styled.default + +type SidebarProps = { + slug: string +} + +export function Sidebar({ slug }: SidebarProps): ReactElement { + const links = { + 'Getting Started': '/', + 'Defining Models': '/defining-models', + 'Reading Data': '/reading-data', + 'Creating & Updating Data': '/creating-and-updating-data', + 'Deleting Data': '/deleting-data', + 'Configuring Esix': '/configuration', + 'API Reference': '/api-reference', + 'GitHub': 'https://github.com/artmann/esix' + } + + return ( + + { + Object.entries(links).map(([title, href]) => ( + + + { title } + + + )) + } + + ) +} + +const Container = styled.nav` + display: flex; + flex-direction: column; + flex-gap: 0.5rem; + flex-shrink: 0; + gap: 1rem; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + padding: 1.5rem; + padding-right: 2rem; + position: sticky; + top: 4rem; + width: calc(280px - 4rem); + + @media (max-width: 768px) { + position: relative; + } +` + +const SidebarItem = styled.div<{ active?: boolean }>` + background: ${ props => props.active ? '#e9d5ff' : 'transparent' }; + border-radius: 0.2rem; + color: #7e22ce; + display: flex; + margin-left: -0.75rem; + padding: 0.5rem 0.75rem; + user-select: none; +` + +const SidebarLink = styled.a` + color: #374151; + display: block; + font-size: 14px; + font-weight: 600; + text-decoration: none; +` diff --git a/doc-gen/site/table.tsx b/doc-gen/site/table.tsx new file mode 100644 index 0000000..0df48fc --- /dev/null +++ b/doc-gen/site/table.tsx @@ -0,0 +1,104 @@ +import lodash from 'lodash' +import React, { ReactElement } from 'react' +import _styled from 'styled-components' + +// @ts-ignore +const styled = _styled.default +const { capitalize } = lodash + +export function Table(props: { rows: any[], type: string } ): ReactElement { + const [ firstRow ] = props.rows + const keys = Object.keys(firstRow) + + return ( + + +
+ { + keys.map((key: string) => ( + + { capitalize(key) } + + )) + } + + + { props.type } + + + + + + { + props.rows.map((row: any, index: number) => ( + + { + keys.map((key: string) => { row[key] }) + } + + + )) + } + + + ) +} + +const ExampleTable = styled.table` + border-collapse: collapse; + border: solid 1px rgb(241, 245, 249); + box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + font-size: .875rem; + line-height: 1.25rem; + margin: 1rem 0; + table-layout: auto; + width: 100%; +` + +const ExampleTableHeader = styled.thead` + color: #4b5563; + font-family: 'Poppins', sans-serif; + font-weight: 500; +` + +const ExampleTableHeaderColumn = styled.th<{ center?: boolean }>` + background: #f1f5f9; + border-bottom: solid 1px rgb(226, 232, 240); + padding: 0.75rem 0; + text-align: ${ props => props.center ? 'center' : 'left' }; + width: ${ props => props.center ? '5rem' : 'auto' }; + + &:first-child { + padding-left: 1.25rem; + } + + &:last-child { + padding-right: 1.25rem; + } +` + +const ExampleTableColumn = styled.td` + border-bottom: solid 1px rgb(241, 245, 249); + color: rgb(100, 116, 139); + padding: 0.75rem 0; + + &:first-child { + padding-left: 1.25rem; + } + + &:last-child { + padding-right: 1.25rem; + } +` + +const Type = styled.span` + background: #cbd5e1; + border-radius: 8px; + color: #047857; + display: inline-block; + font-size: 0.7rem; + font-weight: 600; + letter-spacing: 0.05em; + padding: 0.3rem 0.75rem; + text-transform: uppercase; +` diff --git a/docs/examples/all.ts b/docs/examples/all.ts new file mode 100644 index 0000000..ec51f38 --- /dev/null +++ b/docs/examples/all.ts @@ -0,0 +1,27 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product.all(), + dataset: products, + output: [ + { + id: '1', + brand: 'Google', + name: 'Pixel 5', + price: 500 + }, + { + id: '2', + brand: 'Google', + name: 'Pixel 6', + price: 700 + }, + { + id: '3', + brand: 'Samsung', + name: 'Galaxy A71', + price: 300 + } + ] +} diff --git a/docs/examples/average.ts b/docs/examples/average.ts new file mode 100644 index 0000000..1a4c316 --- /dev/null +++ b/docs/examples/average.ts @@ -0,0 +1,10 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product + .where('brand', 'Google') + .average('price'), + dataset: products, + output: 600 +} diff --git a/docs/examples/comments.json b/docs/examples/comments.json new file mode 100644 index 0000000..256f38e --- /dev/null +++ b/docs/examples/comments.json @@ -0,0 +1,34 @@ +{ + "comments": [ + { + "id": "comment-1", + "postId": "post-1", + "text": "Great Post!" + }, + { + "id": "comment-2", + "postId": "post-1", + "text": "Amazing Content 🔥" + }, + { + "id": "comment-3", + "postId": "post-2", + "text": "I hate this!" + }, + { + "id": "comment-4", + "postId": "post-1", + "text": "I can't find my model. Where did it go?" + }, + { + "id": "comment-5", + "postId": "post-3", + "text": "Is MongoDB webscale?" + }, + { + "id": "comment-6", + "postId": "post-4", + "text": "Needs more jQuery!" + } + ] +} diff --git a/docs/examples/count.ts b/docs/examples/count.ts new file mode 100644 index 0000000..a8f0b7a --- /dev/null +++ b/docs/examples/count.ts @@ -0,0 +1,10 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product + .where('brand', 'Google') + .count(), + dataset: products, + output: 2 +} diff --git a/docs/examples/find-by.ts b/docs/examples/find-by.ts new file mode 100644 index 0000000..0ecaf66 --- /dev/null +++ b/docs/examples/find-by.ts @@ -0,0 +1,13 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product.findBy('name', 'Galaxy A71'), + dataset: products, + output: { + id: '3', + brand: 'Samsung', + name: 'Galaxy A71', + price: 300 + } +} diff --git a/docs/examples/find.ts b/docs/examples/find.ts new file mode 100644 index 0000000..6643bf7 --- /dev/null +++ b/docs/examples/find.ts @@ -0,0 +1,13 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product.find('2'), + dataset: products, + output: { + id: '2', + brand: 'Google', + name: 'Pixel 6', + price: 700 + } +} diff --git a/docs/examples/first.ts b/docs/examples/first.ts new file mode 100644 index 0000000..eff1242 --- /dev/null +++ b/docs/examples/first.ts @@ -0,0 +1,15 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product + .where('brand', 'Google') + .first(), + dataset: products, + output: { + id: '1', + brand: 'Google', + name: 'Pixel 5', + price: 500 + } +} diff --git a/docs/examples/limit.ts b/docs/examples/limit.ts new file mode 100644 index 0000000..3bbf887 --- /dev/null +++ b/docs/examples/limit.ts @@ -0,0 +1,21 @@ +import Comment from './models/comment.js' +import comments from './comments.json' assert { type: 'json' } + +export default { + code: () => Comment + .where('postId', 'post-1') + .limit(2), + dataset: comments, + output: [ + { + id: 'comment-1', + postId: 'post-1', + text: 'Great Post!' + }, + { + id: 'comment-2', + postId: 'post-1', + text: 'Amazing Content 🔥' + } + ] +} diff --git a/docs/examples/max.ts b/docs/examples/max.ts new file mode 100644 index 0000000..a397b24 --- /dev/null +++ b/docs/examples/max.ts @@ -0,0 +1,10 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product + .where('brand', 'Google') + .max('price'), + dataset: products, + output: 700 +} diff --git a/docs/examples/min.ts b/docs/examples/min.ts new file mode 100644 index 0000000..c6975d7 --- /dev/null +++ b/docs/examples/min.ts @@ -0,0 +1,10 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product + .where('brand', 'Google') + .max('price'), + dataset: products, + output: 500 +} diff --git a/docs/examples/models/comment.ts b/docs/examples/models/comment.ts new file mode 100644 index 0000000..4ecb5c0 --- /dev/null +++ b/docs/examples/models/comment.ts @@ -0,0 +1,6 @@ +import { BaseModel } from '../../../src/index.js' + +export default class Comment extends BaseModel { + public productId = '' + public text = '' +} diff --git a/docs/examples/models/product.ts b/docs/examples/models/product.ts new file mode 100644 index 0000000..02afefc --- /dev/null +++ b/docs/examples/models/product.ts @@ -0,0 +1,7 @@ +import { BaseModel } from '../../../src/index.js' + +export default class Product extends BaseModel { + public brand = '' + public name = '' + public price = 0 +} diff --git a/docs/examples/order-by.ts b/docs/examples/order-by.ts new file mode 100644 index 0000000..6420fa8 --- /dev/null +++ b/docs/examples/order-by.ts @@ -0,0 +1,24 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product + .where('brand', 'Google') + .orderBy('price', 'desc') + .get(), + dataset: products, + output: [ + { + id: '2', + brand: 'Google', + name: 'Pixel 6', + price: 700 + }, + { + id: '1', + brand: 'Google', + name: 'Pixel 5', + price: 500 + } + ] +} diff --git a/docs/examples/percentile.ts b/docs/examples/percentile.ts new file mode 100644 index 0000000..e416790 --- /dev/null +++ b/docs/examples/percentile.ts @@ -0,0 +1,10 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product + .where('brand', 'Google') + .percentile('price', 95), + dataset: products, + output: 700 +} diff --git a/docs/examples/pluck-multiple.ts b/docs/examples/pluck-multiple.ts new file mode 100644 index 0000000..2e74e16 --- /dev/null +++ b/docs/examples/pluck-multiple.ts @@ -0,0 +1,19 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product + .where('brand', 'Google') + .pluck('name', 'price'), + dataset: products, + output: [ + { + name: 'Pixel 5', + price: 500 + }, + { + name: 'Pixel 6', + price: 700 + } + ] +} diff --git a/docs/examples/pluck.ts b/docs/examples/pluck.ts new file mode 100644 index 0000000..009e254 --- /dev/null +++ b/docs/examples/pluck.ts @@ -0,0 +1,13 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product + .where('brand', 'Google') + .pluck('name'), + dataset: products, + output: [ + 'Pixel 5', + 'Pixel 6' + ] +} diff --git a/docs/examples/products.json b/docs/examples/products.json new file mode 100644 index 0000000..2dd082c --- /dev/null +++ b/docs/examples/products.json @@ -0,0 +1,22 @@ +{ + "products": [ + { + "id": "1", + "brand": "Google", + "name": "Pixel 5", + "price": 500 + }, + { + "id": "2", + "brand": "Google", + "name": "Pixel 6", + "price": 700 + }, + { + "id": "3", + "brand": "Samsung", + "name": "Galaxy A71", + "price": 300 + } + ] +} diff --git a/docs/examples/sum.ts b/docs/examples/sum.ts new file mode 100644 index 0000000..b749f07 --- /dev/null +++ b/docs/examples/sum.ts @@ -0,0 +1,10 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product + .where('brand', 'Google') + .sum('price'), + dataset: products, + output: 1200 +} diff --git a/docs/examples/where-in.ts b/docs/examples/where-in.ts new file mode 100644 index 0000000..92b0d6c --- /dev/null +++ b/docs/examples/where-in.ts @@ -0,0 +1,21 @@ +import Comment from './models/comment.js' +import comments from './comments.json' assert { type: 'json' } + +export default { + code: () => Comment + .whereIn('postId', ['post-3', 'post-4']) + .get(), + dataset: comments, + output: [ + { + id: 'comment-5', + postId: 'post-3', + text: 'Is MongoDB webscale?' + }, + { + id: 'comment-6', + postId: 'post-4', + text: 'Needs more jQuery!' + } + ] +} diff --git a/docs/examples/where.ts b/docs/examples/where.ts new file mode 100644 index 0000000..f3c535e --- /dev/null +++ b/docs/examples/where.ts @@ -0,0 +1,23 @@ +import Product from './models/product.js' +import products from './products.json' assert { type: 'json' } + +export default { + code: () => Product + .where('brand', 'Google') + .get(), + dataset: products, + output: [ + { + id: '1', + brand: 'Google', + name: 'Pixel 5', + price: 500 + }, + { + id: '2', + brand: 'Google', + name: 'Pixel 6', + price: 700 + } + ] +} diff --git a/docs/index.ts b/docs/index.ts deleted file mode 100644 index 134720c..0000000 --- a/docs/index.ts +++ /dev/null @@ -1,154 +0,0 @@ -import cpy from 'cpy'; -import frontMatter from 'front-matter'; -import FS, { promises as fs } from 'fs'; -import { compile } from 'handlebars'; -import hljs from 'highlight.js'; -import marked from 'marked'; -import { join } from 'path'; - -interface BuildConfig { - outputPath: string; -} -interface Page { - body: string; - description: string; - filename: string; - title: string; - url: string; -} -interface SiteData { - pages: Page[]; -} - -function isString(x: any): x is string { - return typeof x === "string"; -} - -let templateCache: { [ index: string ]: HandlebarsTemplateDelegate } = {}; -async function getTemplate(name: string): Promise { - if (!templateCache[name]) { - const source = await fs.readFile(join(__dirname, name), 'utf-8'); - const template = compile(source); - - templateCache[name] = template; - } - - return templateCache[name]; -} - -async function createPage(page: Page, siteData: SiteData, buildConfig: BuildConfig): Promise { - console.log(`Generating ${ page.title }.`); - - const template = await getTemplate('page.hbs'); - - const styles = await fs.readFile(join(__dirname, 'styles.css'), 'utf-8'); - - const data = { - analyticsId: process.env['GOOGLE_ANALYTICS'] || '', - content: page.body, - description: page.description, - pages: siteData.pages, - title: `${ page.title } - Esix`, - styles - }; - - const html = template(data); - const outputPath = join(buildConfig.outputPath, page.filename); - - await fs.writeFile(outputPath, html); -} - -async function copyPublicFiles(outputPath: string): Promise { - await cpy([ join(__dirname, 'public', '*') ], outputPath); - await cpy([ join(__dirname, 'public', 'images') ], join(outputPath, 'images')); -} - -async function loadSiteData(): Promise { - const data = await fs.readFile(join(__dirname, 'sidebar.json'), 'utf-8'); - const config = JSON.parse(data); - - marked.setOptions({ - renderer: new marked.Renderer(), - highlight: function(code, language) { - const validLanguage = hljs.getLanguage(language) ? language : 'ts'; - - return hljs.highlight(validLanguage, code).value; - }, - pedantic: false, - gfm: true, - breaks: false, - sanitize: false, - smartLists: true, - smartypants: false, - xhtml: false - }); - - const pages = await Promise.all( - config.links.map(async(filenameOrObject: any): Promise => { - const filename: string = isString(filenameOrObject) ? filenameOrObject : filenameOrObject.filename; - const newFilename = filename.replace('.md', '.html'); - const url = isString(filenameOrObject) ? `/${newFilename}` : filenameOrObject.path; - - const path = join(__dirname, 'pages', filename); - const file = await fs.readFile(path, 'utf-8'); - const content = frontMatter(file); - - const attributes = content.attributes as any; - - return { - body: marked(content.body), - description: attributes.description || 'Esix is a slick ORM for MongoDB.', - filename: newFilename, - title: attributes.title, - url: url - }; - }) - ); - - return { - pages - }; -} - -async function generateSitemap(siteData: SiteData, buildConfig: BuildConfig): Promise { - console.log(`Generating Sitemap.`); - - const template = await getTemplate('sitemap.hbs'); - - const d = Date.now(); - const ye = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(d) - const mo = new Intl.DateTimeFormat('en', { month: 'short' }).format(d) - const da = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(d) - - const modifiedAt = `${da}-${mo}-${ye}`; - - const html = template({ - urls: siteData.pages.map(page => ({ - modifiedAt, - url: `https://esix.netlify.app${page.url}` - })) - }); - const outputPath = join(buildConfig.outputPath, 'sitemap.xml'); - - await fs.writeFile(outputPath, html); -} - -(async () => { - const siteData = await loadSiteData(); - - const buildConfig = { - outputPath: join(__dirname, 'dist') - }; - - if (!FS.existsSync(buildConfig.outputPath)) { - await fs.mkdir(buildConfig.outputPath); - } - - await Promise.all( - siteData.pages.map(page => createPage(page, siteData, buildConfig)) - ); - - await copyPublicFiles(buildConfig.outputPath); - - await generateSitemap(siteData, buildConfig); -})(); diff --git a/docs/index.tsx b/docs/index.tsx new file mode 100644 index 0000000..e69de29 diff --git a/docs/page.hbs b/docs/page.hbs deleted file mode 100644 index 988bf95..0000000 --- a/docs/page.hbs +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - {{ title }} - - - - - - - - - - - - - - - - - - - - - - - - - - {{#if analyticsId}} - - - - {{/if}} - - - - -
- - -
- {{{ content }}} -
-
- - - diff --git a/docs/pages/configuration.md b/docs/pages/configuration.md deleted file mode 100644 index 85e3f83..0000000 --- a/docs/pages/configuration.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -description: How to configure Esix ORM. -title: Configuration ---- - -# Configuration - -To make it easy to add Esix to your project and to be able to change your application's configuration between your local, test, and production environment, Esix is configured with environment variables. - -## Connecting to the Database - -These options define how Esix will connect to your database. - -`DB_ADAPTER` - -The adapter is used to handle the MongoDB connection. Can be either `default` or `mock` where `default` uses the [offical MongoDB package](https://www.npmjs.com/package/mongodb) and `mock` uses [mongo-mock](https://github.com/williamkapke/mongo-mock) which is great for testing. - -`DB_URL` - -The URL of the database. Defaults to `mongodb://127.0.0.1:27017/`. - -`DB_POOL_SIZE` - -The size of the connection pool. Defaults to `10`. - -`DB_DATABASE` - -The name of the database to connect to. Defaults to ``. - -If you want to create a configuration file for your local environment you can use the [dotenv package](https://www.npmjs.com/package/dotenv) but you should make sure you don't commit any secrets to GitHub. diff --git a/docs/pages/configuration.mdx b/docs/pages/configuration.mdx index 85e3f83..95ad68b 100644 --- a/docs/pages/configuration.mdx +++ b/docs/pages/configuration.mdx @@ -3,8 +3,6 @@ description: How to configure Esix ORM. title: Configuration --- -# Configuration - To make it easy to add Esix to your project and to be able to change your application's configuration between your local, test, and production environment, Esix is configured with environment variables. ## Connecting to the Database diff --git a/docs/pages/inserting-and-updating-models.md b/docs/pages/creating-and-updating-data.mdx similarity index 95% rename from docs/pages/inserting-and-updating-models.md rename to docs/pages/creating-and-updating-data.mdx index ea8196f..d65512e 100644 --- a/docs/pages/inserting-and-updating-models.md +++ b/docs/pages/creating-and-updating-data.mdx @@ -1,9 +1,7 @@ --- -title: Inserting & Updating Models +title: Creating & Updating Data --- -# Inserting & Updating Models - When it comes to adding new models to the database, there are two different ways to go about it. You can either use the `create` method and pass it the attributes you want the model to have, or you can create a new instance of the model and call it's `save` method. ```ts diff --git a/docs/pages/defining-models.md b/docs/pages/defining-models.md deleted file mode 100644 index 79a7f51..0000000 --- a/docs/pages/defining-models.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Defining Models ---- - -# Defining Models - -Esix provides a beautiful, simple ActiveRecord implementation for working with your database. Each collection has a corresponding "Model" which is used to interact with that collection. Models allow you to query for data in your tables, as well as insert new documents into the collection. - -Models are the entry point for working with data in Esix so let's create our first model. - -```ts -import { BaseModel } from 'esix'; - -class BlogPost extends BaseModel { - public title = ''; - public publishedAt = 0; -} -``` - -By defining a model and extending the `BaseModel` class, you get access to all of Esix's functionality and you can use it to [Create, Update](/inserting-and-updating-models) and [Query](/retrieving-models) documents from the database. - -The model will already have `id` property which will be defaulted to an [ObjectId](https://docs.mongodb.com/manual/reference/method/ObjectId/) unless you provide one yourself. - -It also comes with two timestamp properties, `createdAt` and `updatedAt` which will be updated during the model's lifecycle. -When a model is created, the `createdAt` property will be populated with the current timestamp, and every time you update or save your model, the `updatedAt` property will have the current timestamp. - -Both values contain the current time in milliseconds since January 1st, 1970, using JavaScript's [Date.now](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now) function. - -The collection the models act upon is determined by name of the class. The class name is transformed into a dasherized and pluralized version and this is used for all operations against the database. - -For example, if you have a class named `BlogPost`, the collection name will be `blog-posts`. This is due to Esix's strong belief in [Convention over Configuration](https://en.wikipedia.org/wiki/Convention_over_configuration). - diff --git a/docs/pages/defining-models.mdx b/docs/pages/defining-models.mdx index 79a7f51..6aa9b11 100644 --- a/docs/pages/defining-models.mdx +++ b/docs/pages/defining-models.mdx @@ -2,31 +2,34 @@ title: Defining Models --- -# Defining Models +import { Header } from '../doc-gen/site/header.js' -Esix provides a beautiful, simple ActiveRecord implementation for working with your database. Each collection has a corresponding "Model" which is used to interact with that collection. Models allow you to query for data in your tables, as well as insert new documents into the collection. +Esix provides a beautiful, simple, ActiveRecord like interface for working with your database. In code, you create "Models" that maps on to documents in your database. You then use these models to interact with the collections. Models are the entry point for working with data in Esix so let's create our first model. ```ts -import { BaseModel } from 'esix'; +import { BaseModel } from 'esix' class BlogPost extends BaseModel { - public title = ''; - public publishedAt = 0; + public title = '' + public publishedAt = 0 } + ``` -By defining a model and extending the `BaseModel` class, you get access to all of Esix's functionality and you can use it to [Create, Update](/inserting-and-updating-models) and [Query](/retrieving-models) documents from the database. +By defining a model and extending the `BaseModel` class, you get access to all of Esix's functionality and you can use it to [Create, Update](/creating-and-updating-data) and [Query](/reading-data) documents from the database. + +The model will have an `id` property which will be assinged an [ObjectId](https://docs.mongodb.com/manual/reference/method/ObjectId/). -The model will already have `id` property which will be defaulted to an [ObjectId](https://docs.mongodb.com/manual/reference/method/ObjectId/) unless you provide one yourself. +
-It also comes with two timestamp properties, `createdAt` and `updatedAt` which will be updated during the model's lifecycle. -When a model is created, the `createdAt` property will be populated with the current timestamp, and every time you update or save your model, the `updatedAt` property will have the current timestamp. +We keep track of changes to your data during the models lifecycle. When a model is created, the `createdAt` property will be populated with the current timestamp. Every time you update or save your model, the `updatedAt` property will have the current timestamp. Both values contain the current time in milliseconds since January 1st, 1970, using JavaScript's [Date.now](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now) function. -The collection the models act upon is determined by name of the class. The class name is transformed into a dasherized and pluralized version and this is used for all operations against the database. +
-For example, if you have a class named `BlogPost`, the collection name will be `blog-posts`. This is due to Esix's strong belief in [Convention over Configuration](https://en.wikipedia.org/wiki/Convention_over_configuration). +The collection the models act upon is determined by the name of the class. The class name is transformed into a dasherized and pluralized version. That name is used for all operations against the database. +For example, if you have a class named `BlogPost`, the collection name will be `blog-posts`. This is due to Esix's strong belief in [Convention over Configuration](https://en.wikipedia.org/wiki/Convention_over_configuration). diff --git a/docs/pages/deleting-models.md b/docs/pages/deleting-data.mdx similarity index 94% rename from docs/pages/deleting-models.md rename to docs/pages/deleting-data.mdx index a61dd0f..bfdb036 100644 --- a/docs/pages/deleting-models.md +++ b/docs/pages/deleting-data.mdx @@ -1,9 +1,7 @@ --- -title: Deleting Models +title: Deleting Data --- -# Deleting Models - Once your data is no longer needed, Esix provides two ways of removing models from the database. You can either use an instance of a model to delete that model or you can create a query to remove multiple models. ## Deleting a Single Model @@ -29,4 +27,3 @@ await Jobs .limit(12) .delete(); ``` - diff --git a/docs/pages/deleting-models.mdx b/docs/pages/deleting-models.mdx deleted file mode 100644 index a61dd0f..0000000 --- a/docs/pages/deleting-models.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Deleting Models ---- - -# Deleting Models - -Once your data is no longer needed, Esix provides two ways of removing models from the database. You can either use an instance of a model to delete that model or you can create a query to remove multiple models. - -## Deleting a Single Model - -If you have a single model you want to delete, you can use the `delete` method on the instance. - -Keep in mind that the data is instantly removed and won't be recoverable. - -```ts -const post = await BlogPost.find('5f5a4c36493d53b6caa8410e'); - -await post.delete(); - -``` - -## Deleting Multiple Models - -If you want to remove models in bulk, you can use the normal methods available on the QueryBuilder to create a matching selection. - -```ts -await Jobs - .where('completed', true) - .limit(12) - .delete(); -``` - diff --git a/docs/pages/getting-started.mdx b/docs/pages/getting-started.mdx deleted file mode 100644 index 1c8b440..0000000 --- a/docs/pages/getting-started.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Getting Started ---- - -# Esix is a slick ORM for MongoDB. - -Inspired by ActiveRecord and Eloquent, Esix is a great way to work with your database in TypeScript. 🥧 - -Esix uses a [Convention over Configuration](https://en.wikipedia.org/wiki/Convention_over_configuration) approach where you define your models as normal TypeScript classes and with minimal boilerplate. - -## Install Esix - -Add the package using your favorite package manager. - -**Yarn** -```sh -yarn add esix mongodb -``` - -**NPM** -```sh -npm install esix mongodb -``` - -## Getting Started - -First off, you'll need to define your model. - -```ts -import { baseModel } from 'esix'; - -export default class Book extends BaseModel { - public isbn = ''; - public title = ''; -} -``` - -The base model comes with id and timestamp fields so you don't have to worry about those things. - -Now you are ready to create some data! - -```ts -import Book from './book'; - -async function createBooks(): Promise { - await Book.create({ - isbn: '978-0525536291', - title: 'The Vanishing Half' - }); - await Book.create({ - isbn: '978-0525521143', - title: 'The Glass Hotel' - }); -} -``` - -Then you can easily query your models. - -```ts -import { Request, Response } from 'express'; -import Book from './book'; - -async function showBook(request: Request, response: Response): Promise { - const book = await Book.find(request.params.id); - - response.json({ - book - }); -} -``` diff --git a/docs/pages/index.md b/docs/pages/index.md deleted file mode 100644 index 1c8b440..0000000 --- a/docs/pages/index.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Getting Started ---- - -# Esix is a slick ORM for MongoDB. - -Inspired by ActiveRecord and Eloquent, Esix is a great way to work with your database in TypeScript. 🥧 - -Esix uses a [Convention over Configuration](https://en.wikipedia.org/wiki/Convention_over_configuration) approach where you define your models as normal TypeScript classes and with minimal boilerplate. - -## Install Esix - -Add the package using your favorite package manager. - -**Yarn** -```sh -yarn add esix mongodb -``` - -**NPM** -```sh -npm install esix mongodb -``` - -## Getting Started - -First off, you'll need to define your model. - -```ts -import { baseModel } from 'esix'; - -export default class Book extends BaseModel { - public isbn = ''; - public title = ''; -} -``` - -The base model comes with id and timestamp fields so you don't have to worry about those things. - -Now you are ready to create some data! - -```ts -import Book from './book'; - -async function createBooks(): Promise { - await Book.create({ - isbn: '978-0525536291', - title: 'The Vanishing Half' - }); - await Book.create({ - isbn: '978-0525521143', - title: 'The Glass Hotel' - }); -} -``` - -Then you can easily query your models. - -```ts -import { Request, Response } from 'express'; -import Book from './book'; - -async function showBook(request: Request, response: Response): Promise { - const book = await Book.find(request.params.id); - - response.json({ - book - }); -} -``` diff --git a/docs/pages/index.mdx b/docs/pages/index.mdx new file mode 100644 index 0000000..698cb78 --- /dev/null +++ b/docs/pages/index.mdx @@ -0,0 +1,79 @@ +--- +title: Getting Started +--- + +import { Code } from '../doc-gen/site/code.tsx' +import { Header } from '../doc-gen/site/header.js' + +Esix is the most productive way to interact with your Mongo Database in TypeScript. 🚀 + +Inspired by ActiveRecord and Eloquent, you define models as normal Typescript classes and these classes are used to query your database. + +
+ +Add the package using your favorite package manager. + +**Yarn** + + +yarn add esix mongodb + + +**NPM** + +```sh +npm install esix mongodb + +``` + +
+ +First off, you'll need to create a class for your model. This class will extend the `BaseModel` class provided by Esix. + +```ts +import { BaseModel } from 'esix' + +export default class Book extends BaseModel { + public isbn = '' + public title = '' +} + +``` + +The base model comes with id and timestamp fields so you don't have to worry about those things. + +Let's continue and create some data! + +```ts +import Book from './book.js' + +async function createBooks(): Promise { + await Book.create({ + isbn: '978-0525536291', + title: 'The Vanishing Half' + }) + + await Book.create({ + isbn: '978-0525521143', + title: 'The Glass Hotel' + }) +} + +``` + +Now that we have a couple of books in our database, we can query them using the same model class. + +```ts +import { Request, Response } from 'express' + +import Book from './book' + +async function showBook(request: Request, response: Response): Promise { + const book = await Book.find(request.params.id) + + response.json({ + book + }) +} + +``` diff --git a/docs/pages/inserting-and-updating-models.mdx b/docs/pages/inserting-and-updating-models.mdx deleted file mode 100644 index ea8196f..0000000 --- a/docs/pages/inserting-and-updating-models.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Inserting & Updating Models ---- - -# Inserting & Updating Models - -When it comes to adding new models to the database, there are two different ways to go about it. You can either use the `create` method and pass it the attributes you want the model to have, or you can create a new instance of the model and call it's `save` method. - -```ts -// Using the create method. -const firstPost = await BlogPost.create({ title: 'My First Blog Post!' }); - -// Using the save method. -const secondPost = new BlogPost(); - -secondPost.title = 'My Second Blog Post!'; - -await secondPost.save(); -``` - -If the model doesn't have an Id, a new [ObjectId](https://docs.mongodb.com/manual/reference/method/ObjectId/) will be created and assigned to it. - -When inserting a new model, the `createdAt` property will be filled with the current timestamp if it's not present. - -If you want to update an existing model, you can also use the `save` method to persist your changes. - -```ts -const product = await Product.find('5f5a474b32fa462a5724ff7d'); - -product.price = 14.99; - -await product.save(); -``` - -When you call `save` on an already existing model, the `updatedAt` field will be filled with the current timestamp. - -Both the timestamp properties contain the current time in milliseconds since January 1st, 1970, using JavaScript's [Date.now](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now) method. diff --git a/docs/pages/reading-data.mdx b/docs/pages/reading-data.mdx new file mode 100644 index 0000000..55f3dbf --- /dev/null +++ b/docs/pages/reading-data.mdx @@ -0,0 +1,128 @@ +--- +title: Reading Data +--- + +import { ExampleComponent } from '../doc-gen/site/example.tsx' +import { Header } from '../doc-gen/site/header.js' + +Once you have your models defined, you can use them to query the database for them. You can think of each +Eloquent model as a powerful [query builder](/api/classes/querybuilder.html) allowing you to fluently +query the documents associated with the model. + +If you know what you are looking for, data can be queried straight from the model using the built-in +finder methods. + +
+ +To get all the documents from the collection, you can use the `all` method. + + + +
+ +If you just need to retrieve a single document, you can use the `find` method. It will return a single +model instance matching the given id. + + + +
+ +The `find` method returns the first model matching the `_id` property of the document. If you are looking +for a model matching a different property, you can use the `findBy` method. + + + +
+ +As we mentioned, at the hearth of Esix is a query builder. This means that you can build complex queries +using different filter methods. You can use the `where` method to define your query and execute it with +the `get` method. + +
+ +The `where` method allows you to filter the results of your query by a given property. You can chain +multiple `where` methods to build more complex queries. + + + +
+ +If you have an array of possible values, you can use the `whereIn` method to filter the results of your +query. + + + +
+ +If you are only interested in the first result of your query, you can use the `first` method. + + + +
+ +The `get` method will execute the query and return an array of model instances. + + + +
+ +When you are only interested in certain properties of the model, the `pluck` method is your friend. You +can pass it the name of the property you want to retrieve and it will return an array of values. + + + +You can also pass multiple properties to the `pluck` method and it will return an array of objects. + + + +
+ +If you only want to retrieve a certain number of results, you can use the `limit` method. + + + +
+ +If you want to sort the results of your query, you can use the `orderBy` method. You can pass it the +name of the property you want to sort by and the direction of the sort. + + + +
+ +Esix also provides a set of aggregate functions that you can use together with the query builder. Instead +of returning a model instance, these methods will return the result of the aggregate function. + +
+ +The `average` method will return the average value of a given property. + + + +
+ +The `count` method will return the number of documents matching the query. + + + +
+ +The `sum` method will return the sum of a given property. + +
+ +The `max` method will return the maximum value of a given property. + + + +
+ +The `min` method will return the minimum value of a given property. + + + +
+ +The `percentile` method will return the value at the given percentile of a given property. + + diff --git a/docs/pages/retrieving-models.md b/docs/pages/retrieving-models.md deleted file mode 100644 index 4aca8f9..0000000 --- a/docs/pages/retrieving-models.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Retrieving Models ---- - -# Retrieving Models - -Once you have your models defined, you can use them to query the database for them. You can think of each Eloquent model as a powerful [query builder](/api/classes/querybuilder.html) allowing you to fluently query the documents associated with the model. - -If you are looking for a single model you can use the `find` method to get an instance of a model matching the given id. - -```ts -const book = await Book.find(22); - -console.log(book.title); -``` - -You can also get all the models in the collection. - -```ts -const flights = await Flight.all(); - -flights.forEach(flight => { - console.log(flight.name); -}); -``` - -When you are working with multiple models, you can use methods like `where` which returns an instance of a `QueryBuilder`. The Query Builder can be used to filter, sort, and limit your searches. - -```ts -const blogPosts = await BlogPost - .where('status', 'published') - .where('categoryId', 4) - .orderBy('publishedAt', 'desc') - .limit(12) - .get(); - -blogPosts.forEach(post => console.log(post.title)); -``` - -You can find out more about the different methods available by consulting the API documentation for [BaseModel](/api/classes/basemodel.html) and [QueryBuilder](/api/classes/querybuilder.html). - -## Aggregate Functions - -Once you are happy with your query, you can use the aggregate functions available in Esix to perform calculations on the data set. The supported aggregates are `average`, `count`, `max`, `min`, `percentile`, and `sum`. - -```ts -await Product.where('category', 'lamps').average('price'); - -await Product.where('category', 'lamps').count(); - -await Product.where('category', 'lamps').max('price'); - -await Product.where('category', 'lamps').min('price'); - -await Product.where('category', 'lamps').percentile('price', 50); - -await Product.where('category', 'lamps').sum('price'); -``` diff --git a/docs/pages/retrieving-models.mdx b/docs/pages/retrieving-models.mdx deleted file mode 100644 index 4aca8f9..0000000 --- a/docs/pages/retrieving-models.mdx +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Retrieving Models ---- - -# Retrieving Models - -Once you have your models defined, you can use them to query the database for them. You can think of each Eloquent model as a powerful [query builder](/api/classes/querybuilder.html) allowing you to fluently query the documents associated with the model. - -If you are looking for a single model you can use the `find` method to get an instance of a model matching the given id. - -```ts -const book = await Book.find(22); - -console.log(book.title); -``` - -You can also get all the models in the collection. - -```ts -const flights = await Flight.all(); - -flights.forEach(flight => { - console.log(flight.name); -}); -``` - -When you are working with multiple models, you can use methods like `where` which returns an instance of a `QueryBuilder`. The Query Builder can be used to filter, sort, and limit your searches. - -```ts -const blogPosts = await BlogPost - .where('status', 'published') - .where('categoryId', 4) - .orderBy('publishedAt', 'desc') - .limit(12) - .get(); - -blogPosts.forEach(post => console.log(post.title)); -``` - -You can find out more about the different methods available by consulting the API documentation for [BaseModel](/api/classes/basemodel.html) and [QueryBuilder](/api/classes/querybuilder.html). - -## Aggregate Functions - -Once you are happy with your query, you can use the aggregate functions available in Esix to perform calculations on the data set. The supported aggregates are `average`, `count`, `max`, `min`, `percentile`, and `sum`. - -```ts -await Product.where('category', 'lamps').average('price'); - -await Product.where('category', 'lamps').count(); - -await Product.where('category', 'lamps').max('price'); - -await Product.where('category', 'lamps').min('price'); - -await Product.where('category', 'lamps').percentile('price', 50); - -await Product.where('category', 'lamps').sum('price'); -``` diff --git a/docs/public/browserconfig.xml b/docs/public/browserconfig.xml deleted file mode 100644 index c554148..0000000 --- a/docs/public/browserconfig.xml +++ /dev/null @@ -1,2 +0,0 @@ - -#ffffff \ No newline at end of file diff --git a/docs/public/images/android-icon-144x144.png b/docs/public/images/android-icon-144x144.png deleted file mode 100644 index d3e51ff4380b29ec208946083f2e8e443f1b6b1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10968 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 diff --git a/docs/public/images/android-icon-192x192.png b/docs/public/images/android-icon-192x192.png deleted file mode 100644 index 9548a4e630443bcf478e8f6baa19247492ec31b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13227 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%0AE3K%6rx!v{mv&xNWeOp5Gx>j6%E=^y;lj#Hz`16 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 PZ~(HBN)nY~hJpVBs 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 diff --git a/docs/public/images/android-icon-72x72.png b/docs/public/images/android-icon-72x72.png deleted file mode 100644 index 468555feeb975a4a7cb8b29f17cdf9c18096bd1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4937 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 QsRBSlRad22$>!yM0cZCt1poj5 diff --git a/docs/public/images/android-icon-96x96.png b/docs/public/images/android-icon-96x96.png deleted file mode 100644 index 028d6a2c4ed4d4568e5c41dcb3a20d112a9cf011..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6748 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 diff --git a/docs/public/images/apple-icon-144x144.png b/docs/public/images/apple-icon-144x144.png deleted file mode 100644 index d3e51ff4380b29ec208946083f2e8e443f1b6b1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10968 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 diff --git a/docs/public/images/apple-icon-152x152.png b/docs/public/images/apple-icon-152x152.png deleted file mode 100644 index 2ec24f103f7a8532ead21628525d25a53cb5a21e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11621 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 X{TN@@W9ol-(*SvCC8=r&aPa>E1##J7 diff --git a/docs/public/images/apple-icon-180x180.png b/docs/public/images/apple-icon-180x180.png deleted file mode 100644 index 3d25bda076ac61f6fa9c030ccc85d0a219dc852b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14282 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 z 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 diff --git a/docs/public/images/apple-icon-72x72.png b/docs/public/images/apple-icon-72x72.png deleted file mode 100644 index 468555feeb975a4a7cb8b29f17cdf9c18096bd1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4937 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 QsRBSlRad22$>!yM0cZCt1poj5 diff --git a/docs/public/images/apple-icon-76x76.png b/docs/public/images/apple-icon-76x76.png deleted file mode 100644 index 30047512fd8cb0bf962d0e620cb3a14317112215..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5246 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 diff --git a/docs/public/images/favicon-16x16.png b/docs/public/images/favicon-16x16.png deleted file mode 100644 index f61cda8d0cfa06036d0741ef21afc84ae8018f2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1396 zcmZ{h3rtg27{?DF1x137sAy)=W|6qf(%aGkZ4^f-kAg*BV*?#<+uoL1+OqZ{k%UK$ zG9(zcg&CHaEHPwk4rLe}ju}P^I4BQ!4W?ju2=Wl*Re4!pUqLr!vXk$;zVrM4zjN=o z6cHZmy6wO=gpjK+L=Xk@4qJD2fblThEgGgRa(|IOLgiOnthgiW?Q~JWd~~bjoiW%@ zB_UBFgfcu3%DI5hGNf`w5lX`l8c#xqSA@{M)N7TIM?v>(#EFR}u3i~p zR0bQALZd3?filpb6jZC?|4@b+ZTXE5t^>dXy$M*aOJF=BsD`j@0S46u6KXsIR*(#< zv5gx^0ATTtEiB*&0#xfhugUeKLQtIo0F(wvupz~E2O|_xhZ?mfYqb%z7i3L$i~HN_ zC(Ye6=I+^!hRM6d16c_TLuSj`+S+jc%WT{PCi$9&3-i{+1?y#Pt0JKKVsg{eABQ{-9w{*8o)mDtu{W{WGH_=!<-qSgg zooE{Fvn(yHSY}@>Em%jN&g;ddvTNr4N3(;yb6w3ZDoO@aLZdFCmW-;?gw?>id{^NY z57RL+D%|$&Z<_NVKM$u9KlM#b-wbyvn6rGblVV+QnvHNOGY=e|;U5opuk`1wCtpUd z7JfOu%XzTeIl$C*YzWkL;;>)=%5yvz0-LR=A#pl{Tz1*IUHg+PDwP@9r{)*k&{MAzVFt5 z`s?1}mQ$`G3LWpOEgmZDykogn&_s1rQT%8+Mf*4pN9u`;6BIznW;j zeP_0bdMuOT;qYUAXxWYN@dIU#?E~KRpm;kfmMWLqb02*FEJ?Ck?M zEddi^VJwV}ap_DfhUvv)b9ijl2N=e~FzlNHhW`ju8mU5d?*9e;wbwI25M-;M)5yql zTuUIK3YQZiT&|EPsotJGp1yQ0m4z|cbc{o1vZ#?vZ)!40rt%n!^z?L3g^h*|w5LWZ z@6DYAL*#CAj7d&YiFrJMMv|r?)Fh7=0jLf!OV)m4yv3~7+^BF2NnWB+1WcXQyM5ER*{(TsR zuha(V?!nlM~$`%tihl|O)FfW|t2?|fRU)9o88dN~Sz;MAWe$x5B0qz-9 A$N&HU diff --git a/docs/public/images/favicon-32x32.png b/docs/public/images/favicon-32x32.png deleted file mode 100644 index 3a4780e69d0e0fce6dad651c848c91227e251c81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2248 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 diff --git a/docs/public/images/ms-icon-150x150.png b/docs/public/images/ms-icon-150x150.png deleted file mode 100644 index a3218905acf32060e5695763a0db55117eaa45d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11440 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 !-`fh(cy6IIv??yflRI>j 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 R3g8=F$Ve(k6pI=D{9hItS0w-d diff --git a/docs/public/images/ms-icon-70x70.png b/docs/public/images/ms-icon-70x70.png deleted file mode 100644 index a9baacf52a65db1009e1e6a58d3943dd23e3aa00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4872 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 - - {{#each urls}} - - {{url}} - {{modifiedAt}} - - {{/each}} - diff --git a/docs/styles.css b/docs/styles.css deleted file mode 100644 index 36bd91d..0000000 --- a/docs/styles.css +++ /dev/null @@ -1,140 +0,0 @@ -body { - color: #4A5568; - font-family: 'Open Sans', sans-serif; - font-size: 16px; - padding: 0; - margin: 0; - - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -h1, h2, h3, h4, h5, h6 { - color: #4A5568; - font-family: 'Montserrat', sans-serif; - font-weight: 300; - margin: 0; - margin-bottom: 1rem; -} - -h1 { - font-size: 1.5rem; -} - -h2 { - font-size: 1.35rem; -} - -h3 { - font-size: 1.2rem; -} - -.container { - display: flex; - flex-direction: column-reverse; -} - -nav { - overflow: auto hidden; - padding: 2rem; - text-align: center; -} - -nav .logo { - height: auto; - margin-bottom: 2rem; - width: 8rem; -} - -nav ul { - list-style: none; - margin: 0; - padding: 0; -} - -nav ul li { - margin-bottom: 0.45rem; -} - -nav ul li a { - color: #4A5568; - font-size: 0.8rem; - text-decoration: none; -} - -nav ul li a:hover { - text-decoration: underline; -} - -.content { - border-bottom: solid 1px #EDF2F7; - line-height: 2; - max-width: 720px; - padding: 1.5rem 2rem; -} - -.content p, .content pre, .content img, .content iframe, .content h2, .content h3, .content h4 { - margin-top: 2rem; - max-width: 100%; -} - -.content a { - color: #6B46C1; - padding-bottom: 12rem; - text-decoration: none; -} - -.content a:hover { - text-decoration: underline; -} - -.content a:visited { - color: #553C9A; - text-decoration: none; -} - -.content pre { - background: #282C34; - border: solid 1px #5d6679; - box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); - color: #DCD6B0; - font-size: 0.75rem; - margin: 2rem 0; - overflow-x: auto; - padding: 0.75rem; - word-break: break-all; -} - -code { - font-family: 'Source Code Pro', source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; -} - -p code { - background: hsl(210 18% 95% / 1); - color: #C53030; - font-size: 0.8rem; - padding: .25rem .4rem; -} - -@media only screen and (min-device-width: 768px) { - .container { - flex-direction: row; - } - - nav { - border-right: solid 1px #EDF2F7; - min-height: 100vh; - padding: 2rem 4rem 2rem 2rem; - text-align: left; - } - - .content { - border: none; - padding: 2rem 4rem 12rem 4rem; - } - - .content pre { - font-size: 0.875rem; - padding: 1.25rem; - } -} diff --git a/example-lib/index.ts b/example-lib/index.ts new file mode 100644 index 0000000..0a7fc51 --- /dev/null +++ b/example-lib/index.ts @@ -0,0 +1,117 @@ +import fs from 'fs' +import lodash from 'lodash' +import { basename, resolve } from 'path' +import ts from 'typescript' +import { pathToFileURL } from 'url' + +const { get } = lodash + +export type Example = { + code: () => Promise + dataset: Record + output: any + name: string + text: string +} + +export async function loadExamples(examplesDirectoryPath: string): Promise { + const files = await listFilesInDirectory(examplesDirectoryPath) + + const exampleFiles = files.filter(path => path.endsWith('.ts')) + + const promises = exampleFiles.map(loadExample) + const examples = await Promise.all(promises) + + return examples +} + +async function loadExample(path: string): Promise { + const name = basename(path, '.ts') + + const source = await fs.promises.readFile(path, 'utf8') + + const node = ts.createSourceFile( + `${ name }.ts`, + source, + ts.ScriptTarget.Latest + ) + + const [ exportNode ] = findNodes(node, { kind: ts.SyntaxKind.ExportAssignment }) + const [ codeNode ] = findNodes(exportNode, { + kind: ts.SyntaxKind.PropertyAssignment, + 'name.escapedText': 'code' + }) + const [ functionNode ] = findNodes(codeNode, { kind: ts.SyntaxKind.ArrowFunction }) + + const method = functionNode.getFullText(node) + const code = method.slice(7) + + const url = pathToFileURL(path) + + const { default: config } = (await import(url.toString())) + + const example: Example = { + code: config.code, + dataset: config.dataset, + output: config.output, + name, + text: code + } + + return example +} + +function findNodes(root: ts.Node, filter: Record = {}, nodes: ts.Node[] = []): ts.Node[] { + const matchesFilter = (n: ts.Node): boolean => { + for (const [key, value] of Object.entries(filter)) { + const v = get(n, key) + + if (v !== value) { + return false + } + } + + return true + } + + if (matchesFilter(root)) { + return [ + ...nodes, + root + ] + } + + let children: ts.Node[] = [] + + root.forEachChild(child => { + const c = findNodes(child, filter, nodes) + + children = [ + ...children, + ...c + ] + }) + + return [ + ...nodes, + ...children + ] +} + +async function listFilesInDirectory(base: string, recursive = false): Promise { + const entries = await fs.promises.readdir(base, { withFileTypes: true }) + + const files = await Promise.all( + entries.map((entry: fs.Dirent): any => { + const path = resolve(base, entry.name) + + if (!recursive) { + return path + } + + return entry.isDirectory() ? listFilesInDirectory(path) : path + }) + ) + + return files.flat() +} diff --git a/package.json b/package.json index 0fbfeb8..3b95666 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "scripts": { "build": "tsc", "apidocs:build": "typedoc --ignoreCompilerErrors --options typedoc.json --out docs/dist/api src/", - "docs:build": "ts-node ./docs/index.ts", + "docs:build": "ts-node ./doc-gen/cli.ts docs", + "docs:dev": "nodemon --exec node --loader ts-node/esm --watch doc-gen --watch docs --ext ts,mdx,tsx ./doc-gen/cli.ts docs", "docs:serve": "serve docs/dist", "lint": "eslint ./src --ext .ts", "prepublish": "yarn build", @@ -25,7 +26,7 @@ ], "peerDependencies": { "mongo-mock": "^4.0.0", - "mongodb": "^3.5.9" + "mongodb": "^4.0" }, "dependencies": { "change-case": "^4.1.1", @@ -34,31 +35,48 @@ "reflect-metadata": "^0.1.13" }, "devDependencies": { + "@mdx-js/mdx": "^2.1.5", "@types/change-case": "^2.3.1", "@types/handlebars": "^4.1.0", "@types/highlight.js": "^9.12.4", "@types/jest": "^26.0.4", + "@types/lodash": "^4.14.186", "@types/marked": "^1.1.0", "@types/mongodb": "^3.5.25", "@types/node": "^14.0.22", "@types/pluralize": "^0.0.29", + "@types/react": "^18.0.23", + "@types/react-dom": "^18.0.7", + "@types/rimraf": "^3.0.2", "@types/sinon": "^9.0.10", + "@types/styled-components": "^5.1.26", "@types/uuid": "^8.0.0", "@typescript-eslint/eslint-plugin": "^3.6.0", "@typescript-eslint/parser": "^3.6.0", "cpy": "^8.1.1", "eslint": "^7.4.0", "front-matter": "^4.0.2", + "gray-matter": "^4.0.3", "handlebars": "^4.7.6", - "highlight.js": "^10.1.1", + "highlight.js": "11.6", "jest": "^26.1.0", + "lodash": "^4.17.21", "marked": "^2.0.0", "mongo-mock": "^4.0.0", - "mongodb": "^3.5.9", + "mongodb": "4.11", + "nodemon": "^2.0.20", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-is": "^18.2.0", + "rehype-highlight": "^6.0.0", + "remark-frontmatter": "^4.0.1", + "rimraf": "^3.0.2", "serve": "^11.3.2", "sinon": "^9.2.4", + "styled-components": "^5.3.6", "ts-jest": "^26.1.1", - "ts-node": "^8.10.2", + "ts-node": "^10.9", + "ts-node-dev": "^2.0.0", "typedoc": "^0.19.1", "typescript": "^4.8.4", "uuid": "^8.2.0" diff --git a/src/aggregates.spec.ts b/src/aggregates.spec.ts index 2e1f149..0fe771e 100644 --- a/src/aggregates.spec.ts +++ b/src/aggregates.spec.ts @@ -3,6 +3,7 @@ import mongodb from 'mongo-mock'; import { BaseModel } from './index.js'; import { connectionHandler } from './connection-handler.js'; +import { randomDatabaseName } from './tests/index.js'; mongodb.max_delay = 1; @@ -16,7 +17,7 @@ describe('Aggregate Functions', () => { beforeEach(() => { Object.assign(process.env, { 'DB_ADAPTER': 'mock', - 'DB_DATABASE': `test-${ createUuid() }` + 'DB_DATABASE': randomDatabaseName() }); }); diff --git a/src/connection-handler.ts b/src/connection-handler.ts index e795c7c..dce0ba9 100644 --- a/src/connection-handler.ts +++ b/src/connection-handler.ts @@ -1,3 +1,4 @@ +// @ts-ignore import MongoMock from 'mongo-mock'; import { Db, MongoClient } from 'mongodb'; @@ -51,9 +52,7 @@ class ConnectionHandler { const adapter = adapters[adapterName]; const client = await adapter.connect(url, { - poolSize, - useNewUrlParser: true, - useUnifiedTopology: true + maxPoolSize: poolSize }); return client; diff --git a/src/integration-test.spec.ts b/src/integration-test.spec.ts index 8ad0fa9..394923f 100644 --- a/src/integration-test.spec.ts +++ b/src/integration-test.spec.ts @@ -4,6 +4,7 @@ import { MongoClient } from 'mongodb'; import { BaseModel } from './index.js'; import { connectionHandler } from './connection-handler.js'; +import { randomDatabaseName } from './tests/index.js'; mongodb.max_delay = 1; @@ -36,7 +37,7 @@ describe('Integration', () => { beforeEach(() => { Object.assign(process.env, { 'DB_ADAPTER': 'mock', - 'DB_DATABASE': `test-${ createUuid() }` + 'DB_DATABASE': randomDatabaseName() }); }); @@ -98,6 +99,7 @@ describe('Integration', () => { const collection = await db.collection('blog-posts'); await collection.insertOne({ + //@ts-ignore _id: 'my-id', title: 'Why Custom IDs makes your code fail.' }); @@ -249,7 +251,7 @@ describe('Ordering', () => { beforeEach(async() => { Object.assign(process.env, { 'DB_ADAPTER': 'mock', - 'DB_DATABASE': `test-${ createUuid() }` + 'DB_DATABASE': randomDatabaseName() }); await Product.create({ name: 'Widget 1', price: 79.99, categoryId: 1 }); @@ -307,7 +309,7 @@ describe('Relationships', () => { beforeEach(() => { Object.assign(process.env, { 'DB_ADAPTER': 'mock', - 'DB_DATABASE': `test-${ createUuid() }` + 'DB_DATABASE': randomDatabaseName() }); }); @@ -354,7 +356,7 @@ describe('Deletion', () => { beforeEach(async() => { Object.assign(process.env, { 'DB_ADAPTER': 'mock', - 'DB_DATABASE': `test-${ createUuid() }` + 'DB_DATABASE': randomDatabaseName() }); }); @@ -431,7 +433,7 @@ describe('Documentation', () => { beforeEach(() => { Object.assign(process.env, { 'DB_ADAPTER': 'mock', - 'DB_DATABASE': `test-${ createUuid() }` + 'DB_DATABASE': randomDatabaseName() }); }); diff --git a/src/tests/index.ts b/src/tests/index.ts new file mode 100644 index 0000000..cae2fb3 --- /dev/null +++ b/src/tests/index.ts @@ -0,0 +1,14 @@ +export function randomDatabaseName(): string { + const length = 18; + const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'.split(''); + + let name = 'test-'; + + for (let i = 0; i < length; i++) { + const index = Math.floor(Math.random() * characters.length); + + name += characters[index]; + } + + return name; +} diff --git a/tsconfig.json b/tsconfig.json index 4ab06eb..616ec4c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,12 +4,14 @@ /* Basic Options */ // "incremental": true, /* Enable incremental compilation */ - "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ + "target": "ES6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ "module": "NodeNext", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ - // "lib": [], /* Specify library files to be included in the compilation. */ + "lib": [ + "ES2019" + ], /* Specify library files to be included in the compilation. */ // "allowJs": true, /* Allow javascript files to be compiled. */ // "checkJs": true, /* Report errors in .js files. */ - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ + "jsx": "react", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ "declaration": true, /* Generates corresponding '.d.ts' file. */ "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ // "sourceMap": true, /* Generates corresponding '.map' file. */ @@ -41,13 +43,13 @@ // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ /* Module Resolution Options */ - "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + "moduleResolution": "NodeNext", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ // "typeRoots": [], /* List of folders to include type definitions from. */ // "types": [], /* Type declaration files to be included in compilation. */ - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ @@ -64,7 +66,11 @@ /* Advanced Options */ "skipLibCheck": true, /* Skip type checking of declaration files. */ - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + "forceConsistentCasingInFileNames": true, /* Disallow inconsistently-cased references to the same file. */ + "resolveJsonModule": true + }, + "ts-node": { + "esm": true }, "include": [ "index.d.ts", diff --git a/yarn.lock b/yarn.lock index 27ccbc7..f7011be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,696 @@ # yarn lockfile v1 +"@aws-crypto/ie11-detection@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz#9c39f4a5558196636031a933ec1b4792de959d6a" + integrity sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz#741c9024df55ec59b51e5b1f5d806a4852699fb5" + integrity sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A== + dependencies: + "@aws-crypto/ie11-detection" "^2.0.0" + "@aws-crypto/sha256-js" "^2.0.0" + "@aws-crypto/supports-web-crypto" "^2.0.0" + "@aws-crypto/util" "^2.0.0" + "@aws-sdk/types" "^3.1.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz#f1f936039bdebd0b9e2dd834d65afdc2aac4efcb" + integrity sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig== + dependencies: + "@aws-crypto/util" "^2.0.0" + "@aws-sdk/types" "^3.1.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-2.0.2.tgz#c81e5d378b8a74ff1671b58632779986e50f4c99" + integrity sha512-iXLdKH19qPmIC73fVCrHWCSYjN/sxaAvZ3jNNyw6FclmHyjLKg0f69WlC9KTnyElxCR5MO9SKaG00VwlJwyAkQ== + dependencies: + "@aws-crypto/util" "^2.0.2" + "@aws-sdk/types" "^3.110.0" + tslib "^1.11.1" + +"@aws-crypto/supports-web-crypto@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz#9f02aafad8789cac9c0ab5faaebb1ab8aa841338" + integrity sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/util@^2.0.0", "@aws-crypto/util@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-2.0.2.tgz#adf5ff5dfbc7713082f897f1d01e551ce0edb9c0" + integrity sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA== + dependencies: + "@aws-sdk/types" "^3.110.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-sdk/abort-controller@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.198.0.tgz#fab7d030b165e2a3926d33d09b12cabf5159a7ac" + integrity sha512-kmK1fNJ5nkBH23wOrAdxWcVtG/NNCaX66cxr90jnbGvSAeNRi5nLLqlmQOyZ0RRg+tpNCec+N/qqfxAmmD3NdQ== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/client-cognito-identity@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.199.0.tgz#2fbe46bac614074f084bfe950f7f754eff3c6f65" + integrity sha512-F7VvJkaSYBBiAAtlrWO6Hq5GbqARMerihtlFvQra2Uy0bSX/okNgefurjjW1Gijh4xk6brWPO+46GD9OpZXtcQ== + dependencies: + "@aws-crypto/sha256-browser" "2.0.0" + "@aws-crypto/sha256-js" "2.0.0" + "@aws-sdk/client-sts" "3.199.0" + "@aws-sdk/config-resolver" "3.198.0" + "@aws-sdk/credential-provider-node" "3.199.0" + "@aws-sdk/fetch-http-handler" "3.199.0" + "@aws-sdk/hash-node" "3.198.0" + "@aws-sdk/invalid-dependency" "3.198.0" + "@aws-sdk/middleware-content-length" "3.199.0" + "@aws-sdk/middleware-endpoint" "3.198.0" + "@aws-sdk/middleware-host-header" "3.198.0" + "@aws-sdk/middleware-logger" "3.198.0" + "@aws-sdk/middleware-recursion-detection" "3.198.0" + "@aws-sdk/middleware-retry" "3.198.0" + "@aws-sdk/middleware-serde" "3.198.0" + "@aws-sdk/middleware-signing" "3.198.0" + "@aws-sdk/middleware-stack" "3.198.0" + "@aws-sdk/middleware-user-agent" "3.198.0" + "@aws-sdk/node-config-provider" "3.198.0" + "@aws-sdk/node-http-handler" "3.199.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/smithy-client" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/url-parser" "3.198.0" + "@aws-sdk/util-base64-browser" "3.188.0" + "@aws-sdk/util-base64-node" "3.188.0" + "@aws-sdk/util-body-length-browser" "3.188.0" + "@aws-sdk/util-body-length-node" "3.188.0" + "@aws-sdk/util-defaults-mode-browser" "3.198.0" + "@aws-sdk/util-defaults-mode-node" "3.198.0" + "@aws-sdk/util-endpoints" "3.198.0" + "@aws-sdk/util-user-agent-browser" "3.198.0" + "@aws-sdk/util-user-agent-node" "3.198.0" + "@aws-sdk/util-utf8-browser" "3.188.0" + "@aws-sdk/util-utf8-node" "3.199.0" + tslib "^2.3.1" + +"@aws-sdk/client-sso@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.199.0.tgz#b5da43b3240a135baeb668cbc5521198d794d1f6" + integrity sha512-xRTI39cLcCU1lGlSaE2arCPzRwUY16Oq46fGoe+9pwalDL3oKeE6uq/idTxPzPZdZFhzpLUVc0QdfwGDYhJpXg== + dependencies: + "@aws-crypto/sha256-browser" "2.0.0" + "@aws-crypto/sha256-js" "2.0.0" + "@aws-sdk/config-resolver" "3.198.0" + "@aws-sdk/fetch-http-handler" "3.199.0" + "@aws-sdk/hash-node" "3.198.0" + "@aws-sdk/invalid-dependency" "3.198.0" + "@aws-sdk/middleware-content-length" "3.199.0" + "@aws-sdk/middleware-endpoint" "3.198.0" + "@aws-sdk/middleware-host-header" "3.198.0" + "@aws-sdk/middleware-logger" "3.198.0" + "@aws-sdk/middleware-recursion-detection" "3.198.0" + "@aws-sdk/middleware-retry" "3.198.0" + "@aws-sdk/middleware-serde" "3.198.0" + "@aws-sdk/middleware-stack" "3.198.0" + "@aws-sdk/middleware-user-agent" "3.198.0" + "@aws-sdk/node-config-provider" "3.198.0" + "@aws-sdk/node-http-handler" "3.199.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/smithy-client" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/url-parser" "3.198.0" + "@aws-sdk/util-base64-browser" "3.188.0" + "@aws-sdk/util-base64-node" "3.188.0" + "@aws-sdk/util-body-length-browser" "3.188.0" + "@aws-sdk/util-body-length-node" "3.188.0" + "@aws-sdk/util-defaults-mode-browser" "3.198.0" + "@aws-sdk/util-defaults-mode-node" "3.198.0" + "@aws-sdk/util-endpoints" "3.198.0" + "@aws-sdk/util-user-agent-browser" "3.198.0" + "@aws-sdk/util-user-agent-node" "3.198.0" + "@aws-sdk/util-utf8-browser" "3.188.0" + "@aws-sdk/util-utf8-node" "3.199.0" + tslib "^2.3.1" + +"@aws-sdk/client-sts@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.199.0.tgz#fef0f786b8e27085b5a94a4d9ea95b70ce751d7b" + integrity sha512-ly7kLi/KFRr9RrvTVVlDAXlROkInTMRy4BL02Ugw7brSPysUJabzdlDB5gxC+jbeq8qpai/vCybePf6lgrcvFw== + dependencies: + "@aws-crypto/sha256-browser" "2.0.0" + "@aws-crypto/sha256-js" "2.0.0" + "@aws-sdk/config-resolver" "3.198.0" + "@aws-sdk/credential-provider-node" "3.199.0" + "@aws-sdk/fetch-http-handler" "3.199.0" + "@aws-sdk/hash-node" "3.198.0" + "@aws-sdk/invalid-dependency" "3.198.0" + "@aws-sdk/middleware-content-length" "3.199.0" + "@aws-sdk/middleware-endpoint" "3.198.0" + "@aws-sdk/middleware-host-header" "3.198.0" + "@aws-sdk/middleware-logger" "3.198.0" + "@aws-sdk/middleware-recursion-detection" "3.198.0" + "@aws-sdk/middleware-retry" "3.198.0" + "@aws-sdk/middleware-sdk-sts" "3.199.0" + "@aws-sdk/middleware-serde" "3.198.0" + "@aws-sdk/middleware-signing" "3.198.0" + "@aws-sdk/middleware-stack" "3.198.0" + "@aws-sdk/middleware-user-agent" "3.198.0" + "@aws-sdk/node-config-provider" "3.198.0" + "@aws-sdk/node-http-handler" "3.199.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/smithy-client" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/url-parser" "3.198.0" + "@aws-sdk/util-base64-browser" "3.188.0" + "@aws-sdk/util-base64-node" "3.188.0" + "@aws-sdk/util-body-length-browser" "3.188.0" + "@aws-sdk/util-body-length-node" "3.188.0" + "@aws-sdk/util-defaults-mode-browser" "3.198.0" + "@aws-sdk/util-defaults-mode-node" "3.198.0" + "@aws-sdk/util-endpoints" "3.198.0" + "@aws-sdk/util-user-agent-browser" "3.198.0" + "@aws-sdk/util-user-agent-node" "3.198.0" + "@aws-sdk/util-utf8-browser" "3.188.0" + "@aws-sdk/util-utf8-node" "3.199.0" + fast-xml-parser "4.0.11" + tslib "^2.3.1" + +"@aws-sdk/config-resolver@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.198.0.tgz#25b2efc2d7de6e05d7ad7b1e8f2fb2055d0bed19" + integrity sha512-CxpbkTOfOYZLWcNgcZqooSIlLnixzHVz6skDgxOfeN2vohNOgt8hwU0Dmif3sC4AeyeV0CBm7ew9tg/WzsBxhg== + dependencies: + "@aws-sdk/signature-v4" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-config-provider" "3.188.0" + "@aws-sdk/util-middleware" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-cognito-identity@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.199.0.tgz#a8640247c47ab8d6f6b783b5053bd17a2df44b62" + integrity sha512-vhdvaCq9Q/LPvAdTN9HFnsR713iDb1qI7yTmnGzJYym1J9a2pR4YQvZr1pRyXbn176ORkgEiPMNSoDw8CiCRlg== + dependencies: + "@aws-sdk/client-cognito-identity" "3.199.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-env@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.198.0.tgz#f88ae32587bc6d3dfa9fdb569cfe6055c8551966" + integrity sha512-Psui5iNdbHrHNF14vejORMtSEaH7EOt51pQcfmP1jk8Tinf+KMMMdbOqyzL4LHYwLTLH9Cr6m6UGrJXdmFiIZA== + dependencies: + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-imds@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.198.0.tgz#5ea1121c415ea2a3929bf1b028c1fd66a5df1008" + integrity sha512-p2xMCo3whCnXd5/dH738rAVURXhlppjRNDv0sCkDcVtr3exn4s5x5ednFM8K0zNo/hsqjqFbK3jT4W72bgHphw== + dependencies: + "@aws-sdk/node-config-provider" "3.198.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/url-parser" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-ini@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.199.0.tgz#3f5e4128fe4f0adb330bbd0ebe9572123e050fe6" + integrity sha512-6m3WtK+oKGyo7iCHjORwmHN4wUp4F9j79dSedEf0EYxDbHpH9yMnEE6hYV11GdmM+/i8x8DYA45apAZo8gCIcA== + dependencies: + "@aws-sdk/credential-provider-env" "3.198.0" + "@aws-sdk/credential-provider-imds" "3.198.0" + "@aws-sdk/credential-provider-sso" "3.199.0" + "@aws-sdk/credential-provider-web-identity" "3.198.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/shared-ini-file-loader" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-node@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.199.0.tgz#8ed8eac18c24f0611da6efdde2bb4e1f484631c2" + integrity sha512-pgJhOnTHj+ZZkcN9v7R+m2VnkQi4vvyA7N6k3EDWMQ8tdo48ofwObORkzA4gPX+TPuIjpYa1lU03dpY4zuzJKQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.198.0" + "@aws-sdk/credential-provider-imds" "3.198.0" + "@aws-sdk/credential-provider-ini" "3.199.0" + "@aws-sdk/credential-provider-process" "3.198.0" + "@aws-sdk/credential-provider-sso" "3.199.0" + "@aws-sdk/credential-provider-web-identity" "3.198.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/shared-ini-file-loader" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-process@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.198.0.tgz#6b05511c7bb7fc20ecb2c7e017f5f58259ec3bce" + integrity sha512-LWiwKDCui7ILr+6opBzLCCAho9ZOppuEthUdKZx6T7+yD2cQT0caN5PkVUBMtfTu9+DZnHD2bpIL1T2KEaqEUw== + dependencies: + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/shared-ini-file-loader" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-sso@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.199.0.tgz#adc076dd392765909247e38849ab0c28c9555975" + integrity sha512-aMNZkEj/5RN6jSbfkVadjNblExJtHCJGvcnKnzIGfXLgqOFoWGzY+YIHmn/GTgCnpuMbN5hXYXV6w76HwIvWGw== + dependencies: + "@aws-sdk/client-sso" "3.199.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/shared-ini-file-loader" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-web-identity@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.198.0.tgz#9fa7abb93b5d83e80bfacf8c3e46b4f2a862a964" + integrity sha512-D+fhnmqN18P/Roq5oxVq53J3mqS9Oi9IJaIKdrbdK/FibqOyKmTERaLKWkONwG35qExSECOpoEGn7ioUMQgAgQ== + dependencies: + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/credential-providers@^3.186.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.199.0.tgz#93fa329b8868d2d92f1745a7c55ab2f111ed5510" + integrity sha512-PpOgvV7akew9cXrrEEF+h6H/JGURVCPw+UsvN0yjN8oSexwe0sUzKG1AVIrHYiAWkZKIohtsv7NNzBAKvJ4Qmw== + dependencies: + "@aws-sdk/client-cognito-identity" "3.199.0" + "@aws-sdk/client-sso" "3.199.0" + "@aws-sdk/client-sts" "3.199.0" + "@aws-sdk/credential-provider-cognito-identity" "3.199.0" + "@aws-sdk/credential-provider-env" "3.198.0" + "@aws-sdk/credential-provider-imds" "3.198.0" + "@aws-sdk/credential-provider-ini" "3.199.0" + "@aws-sdk/credential-provider-node" "3.199.0" + "@aws-sdk/credential-provider-process" "3.198.0" + "@aws-sdk/credential-provider-sso" "3.199.0" + "@aws-sdk/credential-provider-web-identity" "3.198.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/shared-ini-file-loader" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/fetch-http-handler@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.199.0.tgz#5344bcd6e14866a529c84b08b8dce0ea7043175b" + integrity sha512-o1jRUMoJR/HOhqA2euYIQxzKLkbqBGwMGH3ahm5eqEJ9kCp84c2KsxT/HOEqjvAQi3f3np8VlTPbuscvDKUN4w== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/querystring-builder" "3.199.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-base64-browser" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/hash-node@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.198.0.tgz#f04e617c1546e256269413075f35709af663e953" + integrity sha512-+UTjEEQlvT4+IIwLpN36Qb1DOQHe3zHkvIVe6SjLln+Z/UEK6NhMI0tsJNbiW38WAfwOjJ+otrRBHuD93SBRxQ== + dependencies: + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-buffer-from" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/invalid-dependency@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.198.0.tgz#312e13b2645298f5b5f6477054cccbed036c13e4" + integrity sha512-lbwS+H7WYk/g9/nHoTgt7xkrZCJ/OJuBfsx41RvMxW7zPxJeHYD/PvgPvYOB9lTUBkr7SDCeMoS5PtGdAwVOfg== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/is-array-buffer@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.188.0.tgz#2e969b2e799490e3bbd5008554aa346c58e3a9b6" + integrity sha512-n69N4zJZCNd87Rf4NzufPzhactUeM877Y0Tp/F3KiHqGeTnVjYUa4Lv1vLBjqtfjYb2HWT3NKlYn5yzrhaEwiQ== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/middleware-content-length@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.199.0.tgz#af32c528b891a592126cf87d54453b6f9bb084e4" + integrity sha512-Q76J6xZl36tqS401TGs/NPIu8lYbNG1EtqxM88CWe/u0SH+D4LIR9AMXq9c4PH0ldIMWAGVGbRLLc0/H3rPyBg== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-endpoint@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.198.0.tgz#3327c24919b539d66ad64f52d8e313b3ff48511f" + integrity sha512-J/rQkIXUbFJAlD6LSDVGU4bGbwD/2pvF5N39ePzvaJ8SwV9Y78XER/2fIAERhFNppuYinGdBdMLiPsC6qPT6ZA== + dependencies: + "@aws-sdk/middleware-serde" "3.198.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/signature-v4" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/url-parser" "3.198.0" + "@aws-sdk/util-config-provider" "3.188.0" + "@aws-sdk/util-middleware" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-host-header@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.198.0.tgz#52e684b418253d7bb9696050261dbd5144e0c704" + integrity sha512-keHstrdw0bFzEkUrkMQ9+UxaKu5b1K87cH6guqLf4JBo04CT+2kPRlDSma65XCi2U81zfTnWApk+/SPPFN3otA== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-logger@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.198.0.tgz#cdb9967b05cbe70f8ecdd22d80a8db3aaf4fbc4e" + integrity sha512-IFvNO4MI80FyltPzrEpYHMG47EYXawcD5zTzcbimpeLTpyrLY/zkSJqh5cVFu+NcDWsuD6U1geuvfN+i+2Bg1Q== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-recursion-detection@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.198.0.tgz#d3518dc20b5eaf3cdcae27d9d30973b6dab56a20" + integrity sha512-VHyz5xBJOaLZwdL94XWB04XCA+pwbURy+4ESF66vIY1umWgfanbZPkvw1XlRaQJydOmyIDFqhNG2AzB28WN9iw== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-retry@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.198.0.tgz#f3c6a2b91d54f1dabc8d266cf68589980f75bd87" + integrity sha512-dwv5QJYTPNkmjKcQ0RtClkNumFomECzxjXvSiyjD9Ft6AWHcUeyqJfGKbmP5mFHpezWckK1qcT6cPMVrJilgjw== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/service-error-classification" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-middleware" "3.198.0" + tslib "^2.3.1" + uuid "^8.3.2" + +"@aws-sdk/middleware-sdk-sts@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.199.0.tgz#54c45d70e3093c8bdfae0d4caf7d1c7c1de58494" + integrity sha512-ISM3Lx1AM2IiHpcQPdwHHvnW/dRyC/jGy2fHQvmYxj8x2oIYnEXxk4vA7DFnrYupxwi2yTSp3k8On2+1VgMjiw== + dependencies: + "@aws-sdk/middleware-signing" "3.198.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/signature-v4" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-serde@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.198.0.tgz#64ea41d13ff132512b90670851c5241cd76ee067" + integrity sha512-RlAua2691KCFabp3kjnsd5p+1nQbULTK1Ia/jvlTAyG4tGOeA0x1At6KZoI1LfkN+VjstV5/3b9aOCtcFuxkhA== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-signing@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.198.0.tgz#32249b0c7c4ee58e5fc76d6d293ad942ff4f1dc9" + integrity sha512-HPY9d1c1CUiV6JBVxiiQQgYfmELl1cn6h0TI00EmOAM5/wxUoiYBX2cGWf2NRF9/iBTppZjxwAKMYPIqF5Tkvw== + dependencies: + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/signature-v4" "3.198.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-middleware" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-stack@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.198.0.tgz#6f23319a15fb3a6b4463d13fc8304a55ed32d2f3" + integrity sha512-5mHRjiJFHxziXOiChW3kttQHjgqH5qW9xRIDJepyf+NRJ60L8bZj0t8oGecqVqo27S02+UvrFgOzoRvBbATVFw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/middleware-user-agent@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.198.0.tgz#419984e0f7fd9e96e0152df2eaea9a085b929df0" + integrity sha512-SMteVixqoSazxUN1ROMj+nSf/zgTMRVPaTCKU0iEAtrE7ilp9Xv6FEC7ffm1MM9xIoAZ2eY1eAtY3uN0yxBm4A== + dependencies: + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/node-config-provider@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.198.0.tgz#4d555b4f52b2073a459bf44dae6a0c7c81d629b6" + integrity sha512-W+msdp94ZjR8mJMtGPHjWHsIdsOu3HaVX4x+AQq9cj7+pg/D5CvWw7fnbkUQeG+V8Ia/aqzBNxlUpr/FAeQY/g== + dependencies: + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/shared-ini-file-loader" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/node-http-handler@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.199.0.tgz#5bfd5456d2cd06293a4000ca0e47f89a72d32e84" + integrity sha512-F+6T7MHHm0b3+GVRxEnFCuIyqUQb0b8a3Hne3QFV4cxtnX58O/SSF8KlpuGZwobivdRC/AKDaTdI/eA0PQfegA== + dependencies: + "@aws-sdk/abort-controller" "3.198.0" + "@aws-sdk/protocol-http" "3.198.0" + "@aws-sdk/querystring-builder" "3.199.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/property-provider@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.198.0.tgz#53107614aeadf2e8b703de836df42ca474fc0e12" + integrity sha512-jnQeJgZlk+6YJS2/eFz6pm9+XHzvCB0jTxHBwt2zYwZfcJ98viRQWMYfkY1XsemuQb/uIoHRBRhFXaJSLpXVDQ== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/protocol-http@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.198.0.tgz#4de253f4bbcecf54d6f693d324244d0fb6d31f3f" + integrity sha512-x+Qc+kwYqaZvLJ/820rxoFUIgSnSS/XlUHwmS+CTn7nJ68CeL3dzmae6TVOslpVBLCvoS2CbEpEoBbofOpsbGw== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/querystring-builder@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.199.0.tgz#6b43704a5bba0ea78f91dae2f77812b4d406d675" + integrity sha512-P4MWPzCqtH3sgI9iXXVdYirYVgggtg4uq5MVefnfHW+osZu8ZR+UKJw5ojAFfOCqcnKOU/xJjz185RroOjrzYQ== + dependencies: + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-uri-escape" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/querystring-parser@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.198.0.tgz#1c7d15ad0a74c86513fc80322f2e9cd7d9c5bfcf" + integrity sha512-oMybZYINxNiwSELR7tOwqu+1S7CeEC3g5L4IQXk2wvVx96HEf3sQgLr1wbmV1b7lEnTuH9OrgI5RgDUBVqipdw== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/service-error-classification@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.198.0.tgz#108a5186a0c8d64452427dbf2391bd0f9f534b88" + integrity sha512-bVsWOIYuDtSmwJtPF1pU84x2TL20Pj02C0+/6ua4qLvRatVKFbj1wxWiU/nKvgjiGFX8VWuQUKMzXUYQfYn4nw== + +"@aws-sdk/shared-ini-file-loader@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.198.0.tgz#55eb08391c3707e812b1ac6f65dae397bae97318" + integrity sha512-n3Ykuvtb6f+WQuhcMVumY9VxQwPp8+cMSc5s6YHptkvZkz/cd2wmPhO914gKE/i2MoC/zQsFCXT8Z1YnS7k8sA== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/signature-v4@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.198.0.tgz#73dae5de7328d0e334f57627e9d84cb5a978c9ab" + integrity sha512-8EIyEt7ElTK/tQamYyB16IGwc7EwtLlSVcksaiII780ZtYULnOjogi/UImCYqSejQw+EHhXfbj14HRQT56rqEQ== + dependencies: + "@aws-sdk/is-array-buffer" "3.188.0" + "@aws-sdk/types" "3.198.0" + "@aws-sdk/util-hex-encoding" "3.188.0" + "@aws-sdk/util-middleware" "3.198.0" + "@aws-sdk/util-uri-escape" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/smithy-client@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.198.0.tgz#74a08c43a9cf65b0499d7a48addfac7e1a87f18a" + integrity sha512-IKUzJSoIkxYkYpRdlrh6REtDcW5c87FKeqtMC8VTpaTxrXwnJOqbenp7IwArwOnbXp4aIVmzdxT/nvQrftlgWg== + dependencies: + "@aws-sdk/middleware-stack" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/types@3.198.0", "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.110.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.198.0.tgz#4e4f5df1bf362dfe64e7bdaf37ba614c61618356" + integrity sha512-ljgY9Pgb2CSRrf4IeaNy5gkhTsBae9STKc/mqfScSzvZOvRHu+BOIAGM33fDoCwxD1viKNVJvU1KemiI57Gbvw== + +"@aws-sdk/url-parser@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.198.0.tgz#6694cf6a96b801d34ef60f3ef05ef449a1b9ff4d" + integrity sha512-wm3+OTDWKsMEOlLGvJ+jxCcOXMjgd5qBDVbu2bTiyTahc2poNlM7kKhSwL4I8PkmGZVAqfAlHD4Wj38WecHQPw== + dependencies: + "@aws-sdk/querystring-parser" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/util-base64-browser@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64-browser/-/util-base64-browser-3.188.0.tgz#581c85dc157aff88ca81e42d9c79d87c95db8d03" + integrity sha512-qlH+5NZBLiyKziL335BEPedYxX6j+p7KFRWXvDQox9S+s+gLCayednpK+fteOhBenCcR9fUZOVuAPScy1I8qCg== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-base64-node@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64-node/-/util-base64-node-3.188.0.tgz#1d2413f68c8ad1cca0903fc11d92af88ba70e14d" + integrity sha512-r1dccRsRjKq+OhVRUfqFiW3sGgZBjHbMeHLbrAs9jrOjU2PTQ8PSzAXLvX/9lmp7YjmX17Qvlsg0NCr1tbB9OA== + dependencies: + "@aws-sdk/util-buffer-from" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/util-body-length-browser@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz#e1d949318c10a621b38575a9ef01e39f9857ddb0" + integrity sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-body-length-node@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.188.0.tgz#3fc2a820b9be0efcbdf962d8f980b9000b98ddba" + integrity sha512-XwqP3vxk60MKp4YDdvDeCD6BPOiG2e+/Ou4AofZOy5/toB6NKz2pFNibQIUg2+jc7mPMnGnvOW3MQEgSJ+gu/Q== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-buffer-from@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.188.0.tgz#a062ccd990571df4353990e8b78aebec5a14547d" + integrity sha512-NX1WXZ8TH20IZb4jPFT2CnLKSqZWddGxtfiWxD9M47YOtq/SSQeR82fhqqVjJn4P8w2F5E28f+Du4ntg/sGcxA== + dependencies: + "@aws-sdk/is-array-buffer" "3.188.0" + tslib "^2.3.1" + +"@aws-sdk/util-config-provider@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.188.0.tgz#f7a365e6cbfe728c1224f0b39926636619b669e0" + integrity sha512-LBA7tLbi7v4uvbOJhSnjJrxbcRifKK/1ZVK94JTV2MNSCCyNkFotyEI5UWDl10YKriTIUyf7o5cakpiDZ3O4xg== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-defaults-mode-browser@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.198.0.tgz#4dc4bb9fbbf12b984e4547e81a05f8fcdb03f9a2" + integrity sha512-IG4iVKQdFjdVFMH5KbSUY2l48wL9aCX/qzoCyTPjKkVumvmwnfkt5OCslkNcaqRdvp5o7QL7aHbq0EZ3K7Ya0A== + dependencies: + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/types" "3.198.0" + bowser "^2.11.0" + tslib "^2.3.1" + +"@aws-sdk/util-defaults-mode-node@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.198.0.tgz#22ca9e151e778f32cb62f09b7e7f55d97ad0d09f" + integrity sha512-LBKSKJjEs0D8tjalblDNmq9DWYTDQ1wVUksAIBO2gQU+EZHJwPb9qxyAk32gbnVTOYceZpJ5/vAGT7speDzEyw== + dependencies: + "@aws-sdk/config-resolver" "3.198.0" + "@aws-sdk/credential-provider-imds" "3.198.0" + "@aws-sdk/node-config-provider" "3.198.0" + "@aws-sdk/property-provider" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/util-endpoints@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.198.0.tgz#45e51d3ed56f1a3a4c54d57f3a4eed2f516bb978" + integrity sha512-fpeJNVoe/QsIcGybgJ+D2jZcUFi7d37FlMiZd9eVnS5LyMGDNH8tVS7aPT7dgb0z30/FKMBIKKG6QxDGxFaqjQ== + dependencies: + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/util-hex-encoding@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.188.0.tgz#c2d8b02b952db58acbd5f53718109657c69c460f" + integrity sha512-QyWovTtjQ2RYxqVM+STPh65owSqzuXURnfoof778spyX4iQ4z46wOge1YV2ZtwS8w5LWd9eeVvDrLu5POPYOnA== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.188.0.tgz#0bef2b4d932d1401bd78dc1ddd258b14a3652f96" + integrity sha512-SxobBVLZkkLSawTCfeQnhVX3Azm9O+C2dngZVe1+BqtF8+retUbVTs7OfYeWBlawVkULKF2e781lTzEHBBjCzw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-middleware@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.198.0.tgz#95edefd4b9c8427f671379cf8527de0c31990f5a" + integrity sha512-hEdkuGRWhZdEb1plzkGCN2kT8SqiPrEQHngB+1q7pjFJcKWkYkmaLHGw2zhbg1EVNpcGmj5DzCSWzwoPkpDRsw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-uri-escape@3.188.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.188.0.tgz#6dbd4322f6cdc3252a75c6f729e1082369c468c0" + integrity sha512-4Y6AYZMT483Tiuq8dxz5WHIiPNdSFPGrl6tRTo2Oi2FcwypwmFhqgEGcqxeXDUJktvaCBxeA08DLr/AemVhPCg== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-user-agent-browser@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.198.0.tgz#ecbd157ad62a314f5a8dfea997931dc65a0b620f" + integrity sha512-XIwaaKtrEsxsayk1yUNjx15AZenP6YRaRDa3f6dhGO+D6OOXP+0S38O5lakyDDGW7nkwkmXa2NIv/OPHPYJ+jQ== + dependencies: + "@aws-sdk/types" "3.198.0" + bowser "^2.11.0" + tslib "^2.3.1" + +"@aws-sdk/util-user-agent-node@3.198.0": + version "3.198.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.198.0.tgz#488de6a2d3c67c6d7589e9fbe806732c23b690c1" + integrity sha512-21bi3pNO7jvo3l9LtMJyR48ERN69PuBqMnwnjsDVqyIFBbnZr/JR5rWQx7jdZ0iUt6mRlgZ17xHXlGUGMCxznA== + dependencies: + "@aws-sdk/node-config-provider" "3.198.0" + "@aws-sdk/types" "3.198.0" + tslib "^2.3.1" + +"@aws-sdk/util-utf8-browser@3.188.0", "@aws-sdk/util-utf8-browser@^3.0.0": + version "3.188.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz#484762bd600401350e148277731d6744a4a92225" + integrity sha512-jt627x0+jE+Ydr9NwkFstg3cUvgWh56qdaqAMDsqgRlKD21md/6G226z/Qxl7lb1VEW2LlmCx43ai/37Qwcj2Q== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-utf8-node@3.199.0": + version "3.199.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-node/-/util-utf8-node-3.199.0.tgz#38f59c280097c6a7f1cc3d78a935641c036dee28" + integrity sha512-Kk3qCdGbe5k0PUE8EBgMsRxNstvDCoWStYWjNwsHWuc/hJitSf44PColzXw6xxHqH1sY+6LcgIaMwJZ5C4bB6w== + dependencies: + "@aws-sdk/util-buffer-from" "3.188.0" + tslib "^2.3.1" + "@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" @@ -16,6 +706,13 @@ dependencies: "@babel/highlight" "^7.12.13" +"@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + "@babel/compat-data@^7.13.15": version "7.14.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919" @@ -51,6 +748,22 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.19.6": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.6.tgz#9e481a3fe9ca6261c972645ae3904ec0f9b34a1d" + integrity sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA== + dependencies: + "@babel/types" "^7.19.4" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + dependencies: + "@babel/types" "^7.18.6" + "@babel/helper-compilation-targets@^7.13.16": version "7.13.16" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" @@ -61,6 +774,11 @@ browserslist "^4.14.5" semver "^6.3.0" +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + "@babel/helper-function-name@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" @@ -70,6 +788,14 @@ "@babel/template" "^7.12.13" "@babel/types" "^7.14.2" +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + "@babel/helper-get-function-arity@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" @@ -77,6 +803,13 @@ dependencies: "@babel/types" "^7.12.13" +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + "@babel/helper-member-expression-to-functions@^7.13.12": version "7.13.12" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" @@ -84,6 +817,13 @@ dependencies: "@babel/types" "^7.13.12" +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + "@babel/helper-module-imports@^7.13.12": version "7.13.12" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" @@ -141,11 +881,28 @@ dependencies: "@babel/types" "^7.12.13" +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + "@babel/helper-validator-identifier@^7.14.0": version "7.14.0" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + "@babel/helper-validator-option@^7.12.17": version "7.12.17" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" @@ -169,11 +926,25 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3": version "7.14.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298" integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ== +"@babel/parser@^7.18.10", "@babel/parser@^7.19.6": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.6.tgz#b923430cb94f58a7eae8facbffa9efd19130e7f8" + integrity sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA== + "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -267,6 +1038,15 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" +"@babel/template@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" + "@babel/traverse@^7.1.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" @@ -281,6 +1061,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.4.5": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.6.tgz#7b4c865611df6d99cb131eec2e8ac71656a490dc" + integrity sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.19.6" + "@babel/types" "^7.19.4" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3" @@ -289,6 +1085,15 @@ "@babel/helper-validator-identifier" "^7.14.0" to-fast-properties "^2.0.0" +"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" + integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -302,6 +1107,35 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@emotion/is-prop-valid@^1.1.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz#7f2d35c97891669f7e276eb71c83376a5dc44c83" + integrity sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg== + dependencies: + "@emotion/memoize" "^0.8.0" + +"@emotion/memoize@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" + integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== + +"@emotion/stylis@^0.8.4": + version "0.8.5" + resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" + integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== + +"@emotion/unitless@^0.7.4": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + "@eslint/eslintrc@^0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14" @@ -504,6 +1338,69 @@ "@types/yargs" "^15.0.0" chalk "^4.0.0" +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@mdx-js/mdx@^2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-2.1.5.tgz#577937349fd555154382c2f805f5f52834a64903" + integrity sha512-zEG0lt+Bl/r5U6e0TOS7qDbsXICtemfAPquxWFsMbdzrvlWaqMGemLl+sjVpqlyaaiCiGVQBSGdCk0t1qXjkQg== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/mdx" "^2.0.0" + estree-util-build-jsx "^2.0.0" + estree-util-is-identifier-name "^2.0.0" + estree-util-to-js "^1.1.0" + estree-walker "^3.0.0" + hast-util-to-estree "^2.0.0" + markdown-extensions "^1.0.0" + periscopic "^3.0.0" + remark-mdx "^2.0.0" + remark-parse "^10.0.0" + remark-rehype "^10.0.0" + unified "^10.0.0" + unist-util-position-from-estree "^1.0.0" + unist-util-stringify-position "^3.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -545,6 +1442,33 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@types/acorn@^4.0.0": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" + integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== + dependencies: + "@types/estree" "*" + "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": version "7.1.14" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" @@ -592,11 +1516,38 @@ dependencies: change-case "*" +"@types/debug@^4.0.0": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" + "@types/eslint-visitor-keys@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== +"@types/estree-jsx@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.0.tgz#7bfc979ab9f692b492017df42520f7f765e98df1" + integrity sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ== + dependencies: + "@types/estree" "*" + +"@types/estree@*", "@types/estree@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + +"@types/glob@*": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.0.0.tgz#321607e9cbaec54f687a0792b2d1d370739455d2" + integrity sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + "@types/glob@^7.1.1": version "7.1.3" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" @@ -619,11 +1570,26 @@ dependencies: handlebars "*" +"@types/hast@^2.0.0": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" + integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== + dependencies: + "@types/unist" "*" + "@types/highlight.js@^9.12.4": version "9.12.4" resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.12.4.tgz#8c3496bd1b50cc04aeefd691140aa571d4dbfa34" integrity sha512-t2szdkwmg2JJyuCM20e8kR2X59WCE5Zkl4bzm1u1Oukjm79zpbiAv+QjnwLnuuV0WHEcX2NgUItu0pAMKuOPww== +"@types/hoist-non-react-statics@*": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" + integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.3" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" @@ -656,11 +1622,28 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== +"@types/lodash@^4.14.186": + version "4.14.186" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.186.tgz#862e5514dd7bd66ada6c70ee5fce844b06c8ee97" + integrity sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw== + "@types/marked@^1.1.0": version "1.2.2" resolved "https://registry.yarnpkg.com/@types/marked/-/marked-1.2.2.tgz#1f858a0e690247ecf3b2eef576f98f86e8d960d4" integrity sha512-wLfw1hnuuDYrFz97IzJja0pdVsC0oedtS4QsKH1/inyW9qkLQbXgMUqEQT0MVtUBx3twjWeInUfjQbhBVLECXw== +"@types/mdast@^3.0.0": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" + integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + dependencies: + "@types/unist" "*" + +"@types/mdx@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.3.tgz#43fd32414f17fcbeced3578109a6edd877a2d96e" + integrity sha512-IgHxcT3RC8LzFLhKwP3gbMPeaK7BM9eBH46OdapPA7yvuIUJ8H6zHZV53J8hGZcTSnt95jANt+rTBNUUc22ACQ== + "@types/minimatch@*": version "3.0.4" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" @@ -674,6 +1657,11 @@ "@types/bson" "*" "@types/node" "*" +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + "@types/node@*": version "15.3.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-15.3.0.tgz#d6fed7d6bc6854306da3dea1af9f874b00783e26" @@ -699,6 +1687,40 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" integrity sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA== +"@types/prop-types@*": + version "15.7.5" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" + integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== + +"@types/react-dom@^18.0.7": + version "18.0.7" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.7.tgz#ee7cf8ec4e6977e3f0a7b1d38bd89c75aa2aec28" + integrity sha512-HaXc+BbqAZE1RdsK3tC8SbkFy6UL2xF76lT9rQs5JkPrJg3rWA3Ou/Lhw3YJQzEDkBpmJ79nBsfnd05WrBd2QQ== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^18.0.23": + version "18.0.23" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.23.tgz#4190ecd58b99fa79fe2e67832bdcb287e5f893e4" + integrity sha512-R1wTULtCiJkudAN2DJGoYYySbGtOdzZyUWAACYinKdiQC8auxso4kLDUhQ7AJ2kh3F6A6z4v69U6tNY39hihVQ== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/rimraf@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.2.tgz#a63d175b331748e5220ad48c901d7bbf1f44eef8" + integrity sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ== + dependencies: + "@types/glob" "*" + "@types/node" "*" + +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + "@types/sinon@^9.0.10": version "9.0.11" resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-9.0.11.tgz#7af202dda5253a847b511c929d8b6dda170562eb" @@ -716,11 +1738,48 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== +"@types/strip-bom@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" + integrity sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ== + +"@types/strip-json-comments@0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" + integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== + +"@types/styled-components@^5.1.26": + version "5.1.26" + resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.26.tgz#5627e6812ee96d755028a98dae61d28e57c233af" + integrity sha512-KuKJ9Z6xb93uJiIyxo/+ksS7yLjS1KzG6iv5i78dhVg/X3u5t1H7juRWqVmodIdz6wGVaIApo1u01kmFRdJHVw== + dependencies: + "@types/hoist-non-react-statics" "*" + "@types/react" "*" + csstype "^3.0.2" + +"@types/unist@*", "@types/unist@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" + integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== + "@types/uuid@^8.0.0": version "8.3.0" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== +"@types/webidl-conversions@*": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7" + integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog== + +"@types/whatwg-url@^8.2.1": + version "8.2.2" + resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63" + integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA== + dependencies: + "@types/node" "*" + "@types/webidl-conversions" "*" + "@types/yargs-parser@*": version "20.2.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" @@ -803,6 +1862,11 @@ abab@^2.0.3, abab@^2.0.5: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + accepts@~1.3.5: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -819,6 +1883,11 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" +acorn-jsx@^5.0.0: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + acorn-jsx@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" @@ -829,11 +1898,21 @@ acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + acorn@^7.1.1, acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.0.0, acorn@^8.4.1: + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + acorn@^8.1.0: version "8.2.4" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0" @@ -936,6 +2015,14 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + arch@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" @@ -1017,6 +2104,11 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +astring@^1.8.0: + version "1.8.3" + resolved "https://registry.yarnpkg.com/astring/-/astring-1.8.3.tgz#1a0ae738c7cc558f8e5ddc8e3120636f5cebcb85" + integrity sha512-sRpyiNrx2dEYIMmUXprS8nlpRg2Drs8m9ElX9vVEXaCB4XEAJhKfs7IcX0IwShjuOAjLR6wzIrgoptz1n19i1A== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1077,6 +2169,22 @@ babel-plugin-jest-hoist@^26.6.2: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" +"babel-plugin-styled-components@>= 1.12.0": + version "2.0.7" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.7.tgz#c81ef34b713f9da2b7d3f5550df0d1e19e798086" + integrity sha512-i7YhvPgVqRKfoQ66toiZ06jPNA3p6ierpfUuEWxNF+fV27Uv5gxBkf8KZLHUCc1nFA9j6+80pYoIpqCeyW3/bA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-module-imports" "^7.16.0" + babel-plugin-syntax-jsx "^6.18.0" + lodash "^4.17.11" + picomatch "^2.3.0" + +babel-plugin-syntax-jsx@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + integrity sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw== + babel-preset-current-node-syntax@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" @@ -1103,11 +2211,21 @@ babel-preset-jest@^26.6.2: babel-plugin-jest-hoist "^26.6.2" babel-preset-current-node-syntax "^1.0.0" +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -1128,13 +2246,15 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -bl@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/bl/-/bl-2.2.1.tgz#8c11a7b730655c5d56898cdc871224f40fd901d5" - integrity sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g== - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== boxen@1.3.0: version "1.3.0" @@ -1173,7 +2293,7 @@ braces@^2.3.1: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -1215,16 +2335,26 @@ bson-objectid@^1.2.5: resolved "https://registry.yarnpkg.com/bson-objectid/-/bson-objectid-1.3.1.tgz#11e4ce4c3419161fd388113781bb62c1dfbce34b" integrity sha512-eQBNQXsisEAXlwiSy8zRNZdW2xDBJaEVkTPbodYR9hGxxtE548Qq7ilYOd8WAQ86xF7NRUdiWSQ1pa/TkKiE2A== -bson@^1.1.4: - version "1.1.6" - resolved "https://registry.yarnpkg.com/bson/-/bson-1.1.6.tgz#fb819be9a60cd677e0853aee4ca712a785d6618a" - integrity sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg== +bson@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/bson/-/bson-4.7.0.tgz#7874a60091ffc7a45c5dd2973b5cad7cded9718a" + integrity sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA== + dependencies: + buffer "^5.6.0" buffer-from@1.x, buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -1286,6 +2416,11 @@ camelcase@^6.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== +camelize@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" + integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== + caniuse-lite@^1.0.30001219: version "1.0.30001228" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa" @@ -1312,6 +2447,11 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + chalk@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" @@ -1361,6 +2501,41 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + +chokidar@^3.5.1, chokidar@^3.5.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" @@ -1467,6 +2642,11 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +comma-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz#d4c25abb679b7751c880be623c1179780fe1dd98" + integrity sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg== + component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -1523,7 +2703,7 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-util-is@1.0.2, core-util-is@~1.0.0: +core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= @@ -1553,6 +2733,11 @@ cpy@^8.1.1: p-filter "^2.1.0" p-map "^3.0.0" +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -1582,6 +2767,20 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== + +css-to-react-native@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756" + integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + cssom@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" @@ -1599,6 +2798,11 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" +csstype@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" + integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -1622,6 +2826,20 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" @@ -1639,6 +2857,13 @@ decimal.js@^10.2.1: resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -1705,10 +2930,15 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -denque@^1.4.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.0.tgz#773de0686ff2d8ec2ff92914316a47b73b1c73de" - integrity sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ== +denque@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== detect-newline@^3.0.0: version "3.1.0" @@ -1725,6 +2955,11 @@ diff@^4.0.1, diff@^4.0.2: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + dir-glob@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" @@ -1754,6 +2989,13 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" +dynamic-dedupe@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz#06e44c223f5e4e94d78ef9db23a6515ce2f962a1" + integrity sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ== + dependencies: + xtend "^4.0.0" + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -1931,6 +3173,49 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== +estree-util-attach-comments@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/estree-util-attach-comments/-/estree-util-attach-comments-2.1.0.tgz#47d69900588bcbc6bf58c3798803ec5f1f3008de" + integrity sha512-rJz6I4L0GaXYtHpoMScgDIwM0/Vwbu5shbMeER596rB2D1EWF6+Gj0e0UKzJPZrpoOc87+Q2kgVFHfjAymIqmw== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-build-jsx@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/estree-util-build-jsx/-/estree-util-build-jsx-2.2.0.tgz#d4307bbeee28c14eb4d63b75c9aad28fa61d84f5" + integrity sha512-apsfRxF9uLrqosApvHVtYZjISPvTJ+lBiIydpC+9wE6cF6ssbhnjyQLqaIjgzGxvC2Hbmec1M7g91PoBayYoQQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + estree-util-is-identifier-name "^2.0.0" + estree-walker "^3.0.0" + +estree-util-is-identifier-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.0.1.tgz#cf07867f42705892718d9d89eb2d85eaa8f0fcb5" + integrity sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ== + +estree-util-to-js@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/estree-util-to-js/-/estree-util-to-js-1.1.0.tgz#3bd9bb86354063537cc3d81259be2f0d4c3af39f" + integrity sha512-490lbfCcpLk+ofK6HCgqDfYs4KAfq6QVvDw3+Bm1YoKRgiOjKiKYGAVQE1uwh7zVxBgWhqp4FDtp5SqunpUk1A== + dependencies: + "@types/estree-jsx" "^1.0.0" + astring "^1.8.0" + source-map "^0.7.0" + +estree-util-visit@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-1.2.0.tgz#aa0311a9c2f2aa56e9ae5e8b9d87eac14e4ec8f8" + integrity sha512-wdsoqhWueuJKsh5hqLw3j8lwFqNStm92VcwtAOAny8g/KS/l5Y8RISjR4k5W6skCj3Nirag/WUCMS0Nfy3sgsg== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/unist" "^2.0.0" + +estree-walker@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.1.tgz#c2a9fb4a30232f5039b7c030b37ead691932debd" + integrity sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -2040,7 +3325,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@~3.0.2: +extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -2108,6 +3393,20 @@ fast-url-parser@1.1.3: dependencies: punycode "^1.3.2" +fast-xml-parser@4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.0.11.tgz#42332a9aca544520631c8919e6ea871c0185a985" + integrity sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA== + dependencies: + strnum "^1.0.5" + +fault@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" + integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== + dependencies: + format "^0.2.0" + fb-watchman@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" @@ -2179,6 +3478,11 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" @@ -2208,7 +3512,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^2.1.2: +fsevents@^2.1.2, fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -2286,7 +3590,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0: +glob-parent@^5.0.0, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -2348,6 +3652,16 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -2438,6 +3752,49 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hast-util-is-element@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-2.1.2.tgz#fc0b0dc7cef3895e839b8d66979d57b0338c68f3" + integrity sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + +hast-util-to-estree@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-2.1.0.tgz#aeac70aad0102ae309570907b3f56a08231d5323" + integrity sha512-Vwch1etMRmm89xGgz+voWXvVHba2iiMdGMKmaMfYt35rbVtFDq8JNwwAIvi8zHMkO6Gvqo9oTMwJTmzVRfXh4g== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + comma-separated-tokens "^2.0.0" + estree-util-attach-comments "^2.0.0" + estree-util-is-identifier-name "^2.0.0" + hast-util-whitespace "^2.0.0" + mdast-util-mdx-expression "^1.0.0" + mdast-util-mdxjs-esm "^1.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.3.0" + unist-util-position "^4.0.0" + zwitch "^2.0.0" + +hast-util-to-text@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/hast-util-to-text/-/hast-util-to-text-3.1.1.tgz#b7699a75f7a61af6e0befb67660cd78460d96dc6" + integrity sha512-7S3mOBxACy8syL45hCn3J7rHqYaXkxRfsX6LXEU5Shz4nt4GxdjtMUtG+T6G/ZLUHd7kslFAf14kAN71bz30xA== + dependencies: + "@types/hast" "^2.0.0" + hast-util-is-element "^2.0.0" + unist-util-find-after "^4.0.0" + +hast-util-whitespace@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz#4fc1086467cc1ef5ba20673cb6b03cec3a970f1c" + integrity sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg== + header-case@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" @@ -2446,11 +3803,23 @@ header-case@^2.0.4: capital-case "^1.0.4" tslib "^2.0.3" -highlight.js@^10.1.1, highlight.js@^10.2.0: +highlight.js@11.6, highlight.js@~11.6.0: + version "11.6.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.6.0.tgz#a50e9da05763f1bb0c1322c8f4f755242cff3f5a" + integrity sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw== + +highlight.js@^10.2.0: version "10.7.2" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.2.tgz#89319b861edc66c48854ed1e6da21ea89f847360" integrity sha512-oFLl873u4usRM9K63j4ME9u3etNF0PLiJhSQ8rdfuL51Wn3zkD6drf9ZW0dOzjnZI22YYG24z30JcmfCZjMgYg== +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" @@ -2489,6 +3858,16 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== + ignore@^4.0.3, ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -2528,7 +3907,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@~2.0.3: +inherits@2: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2538,11 +3917,21 @@ ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + interpret@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -2557,10 +3946,23 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + +is-arguments@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== dependencies: call-bind "^1.0.0" @@ -2569,11 +3971,23 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -2588,6 +4002,13 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -2607,6 +4028,11 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -2676,6 +4102,18 @@ is-glob@^4.0.0, is-glob@^4.0.1: dependencies: is-extglob "^2.1.1" +is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -2688,6 +4126,11 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -2700,6 +4143,13 @@ is-potential-custom-element-name@^1.0.0: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== +is-reference@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.0.tgz#b1380c03d96ddf7089709781e3208fceb0c92cd6" + integrity sha512-Eo1W3wUoHWoCoVM4GVl/a+K0IgiqE5aIo4kJABFyMum1ZORlPkC+UC357sSQUL5w5QCE5kCC9upl75b7+7CY/Q== + dependencies: + "@types/estree" "*" + is-regex@^1.0.4: version "1.1.3" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" @@ -2740,7 +4190,7 @@ isarray@0.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= -isarray@1.0.0, isarray@~1.0.0: +isarray@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -3181,7 +4631,7 @@ jest@^26.1.0: import-local "^3.0.2" jest-cli "^26.6.3" -js-tokens@^4.0.0: +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== @@ -3331,6 +4781,11 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +kleur@^4.0.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -3379,11 +4834,23 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@4.x, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: +lodash@4.x, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +longest-streak@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d" + integrity sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg== + +loose-envify@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -3391,6 +4858,15 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" +lowlight@^2.0.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-2.7.0.tgz#2d3f267aa3006bb20473db5363f9941ffd7bab11" + integrity sha512-RRdrHalFfjpxL91ITTX7KhJYH3QmX5bW9Uie2D2E5GPIR3XBYDYhScBjE291ewFZkStz/k2PN9KC+8deNLiI3Q== + dependencies: + "@types/hast" "^2.0.0" + fault "^2.0.0" + highlight.js "~11.6.0" + lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -3442,6 +4918,11 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +markdown-extensions@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-1.1.1.tgz#fea03b539faeaee9b4ef02a3769b455b189f7fc3" + integrity sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q== + marked@^1.1.1: version "1.2.9" resolved "https://registry.yarnpkg.com/marked/-/marked-1.2.9.tgz#53786f8b05d4c01a2a5a76b7d1ec9943d29d72dc" @@ -3452,6 +4933,120 @@ marked@^2.0.0: resolved "https://registry.yarnpkg.com/marked/-/marked-2.0.3.tgz#3551c4958c4da36897bda2a16812ef1399c8d6b0" integrity sha512-5otztIIcJfPc2qGTN8cVtOJEjNJZ0jwa46INMagrYfk0EvqtRuEHLsEe0LrFS0/q+ZRKT0+kXK7P2T1AN5lWRA== +mdast-util-definitions@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz#2c1d684b28e53f84938bb06317944bee8efa79db" + integrity sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + +mdast-util-from-markdown@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz#84df2924ccc6c995dec1e2368b2b208ad0a76268" + integrity sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-frontmatter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.0.tgz#ef12469379782e4a0fd995fed60cc3b871e6c819" + integrity sha512-7itKvp0arEVNpCktOET/eLFAYaZ+0cNjVtFtIPxgQ5tV+3i+D4SDDTjTzPWl44LT59PC+xdx+glNTawBdF98Mw== + dependencies: + micromark-extension-frontmatter "^1.0.0" + +mdast-util-mdx-expression@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.1.tgz#2224cf0b5b150093704a3c225bd529d2de21f50f" + integrity sha512-TTb6cKyTA1RD+1su1iStZ5PAv3rFfOUKcoU5EstUpv/IZo63uDX03R8+jXjMEhcobXnNOiG6/ccekvVl4eV1zQ== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-mdx-jsx@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.0.tgz#029f5a9c38485dbb5cf482059557ee7d788f1947" + integrity sha512-KzgzfWMhdteDkrY4mQtyvTU5bc/W4ppxhe9SzelO6QUUiwLAM+Et2Dnjjprik74a336kHdo0zKm7Tp+n6FFeRg== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + ccount "^2.0.0" + mdast-util-to-markdown "^1.3.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-remove-position "^4.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + +mdast-util-mdx@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-2.0.0.tgz#dd4f6c993cf27da32725e50a04874f595b7b63fb" + integrity sha512-M09lW0CcBT1VrJUaF/PYxemxxHa7SLDHdSn94Q9FhxjCQfuW7nMAWKWimTmA3OyDMSTH981NN1csW1X+HPSluw== + dependencies: + mdast-util-mdx-expression "^1.0.0" + mdast-util-mdx-jsx "^2.0.0" + mdast-util-mdxjs-esm "^1.0.0" + +mdast-util-mdxjs-esm@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.0.tgz#137345ef827169aeeeb6069277cd3e090830ce9a" + integrity sha512-7N5ihsOkAEGjFotIX9p/YPdl4TqUoMxL4ajNz7PbT89BqsdWJuBC9rvgt6wpbwTZqWWR0jKWqQbwsOWDBUZv4g== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-to-hast@^12.1.0: + version "12.2.4" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.2.4.tgz#34c1ef2b6cf01c27b3e3504e2c977c76f722e7e1" + integrity sha512-a21xoxSef1l8VhHxS1Dnyioz6grrJkoaCUgGzMD/7dWHvboYX3VW53esRUfB5tgTyz4Yos1n25SPcj35dJqmAg== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-definitions "^5.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" + unist-builder "^3.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + +mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz#38b6cdc8dc417de642a469c4fc2abdf8c931bd1e" + integrity sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + longest-streak "^3.0.0" + mdast-util-to-string "^3.0.0" + micromark-util-decode-string "^1.0.0" + unist-util-visit "^4.0.0" + zwitch "^2.0.0" + +mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9" + integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== + memory-pager@^1.0.2: version "1.5.0" resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" @@ -3467,6 +5062,300 @@ merge2@^1.2.3: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz#edff4c72e5993d93724a3c206970f5a15b0585ad" + integrity sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark-extension-frontmatter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.0.0.tgz#612498e6dad87c132c95e25f0918e7cc0cd535f6" + integrity sha512-EXjmRnupoX6yYuUJSQhrQ9ggK0iQtQlpi6xeJzVD5xscyAI+giqco5fdymayZhJMbIFecjnE2yz85S9NzIgQpg== + dependencies: + fault "^2.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-extension-mdx-expression@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.3.tgz#cd3843573921bf55afcfff4ae0cd2e857a16dcfa" + integrity sha512-TjYtjEMszWze51NJCZmhv7MEBcgYRgb3tJeMAJ+HQCAaZHHRBaDCccqQzGizR/H4ODefP44wRTgOn2vE5I6nZA== + dependencies: + micromark-factory-mdx-expression "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-events-to-acorn "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-mdx-jsx@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.3.tgz#9f196be5f65eb09d2a49b237a7b3398bba2999be" + integrity sha512-VfA369RdqUISF0qGgv2FfV7gGjHDfn9+Qfiv5hEwpyr1xscRj/CiVRkU7rywGFCO7JwJ5L0e7CJz60lY52+qOA== + dependencies: + "@types/acorn" "^4.0.0" + estree-util-is-identifier-name "^2.0.0" + micromark-factory-mdx-expression "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-extension-mdx-md@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.0.tgz#382f5df9ee3706dd120b51782a211f31f4760d22" + integrity sha512-xaRAMoSkKdqZXDAoSgp20Azm0aRQKGOl0RrS81yGu8Hr/JhMsBmfs4wR7m9kgVUIO36cMUQjNyiyDKPrsv8gOw== + dependencies: + micromark-util-types "^1.0.0" + +micromark-extension-mdxjs-esm@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.3.tgz#630d9dc9db2c2fd470cac8c1e7a824851267404d" + integrity sha512-2N13ol4KMoxb85rdDwTAC6uzs8lMX0zeqpcyx7FhS7PxXomOnLactu8WI8iBNXW8AVyea3KIJd/1CKnUmwrK9A== + dependencies: + micromark-core-commonmark "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-events-to-acorn "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-position-from-estree "^1.1.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-extension-mdxjs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.0.tgz#772644e12fc8299a33e50f59c5aa15727f6689dd" + integrity sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ== + dependencies: + acorn "^8.0.0" + acorn-jsx "^5.0.0" + micromark-extension-mdx-expression "^1.0.0" + micromark-extension-mdx-jsx "^1.0.0" + micromark-extension-mdx-md "^1.0.0" + micromark-extension-mdxjs-esm "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz#fef1cb59ad4997c496f887b6977aa3034a5a277e" + integrity sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz#6be2551fa8d13542fcbbac478258fb7a20047137" + integrity sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-mdx-expression@^1.0.0: + version "1.0.6" + resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.6.tgz#917e17d16e6e9c2551f3a862e6a9ebdd22056476" + integrity sha512-WRQIc78FV7KrCfjsEf/sETopbYjElh3xAmNpLkd1ODPqxEngP42eVRGbiPEQWpRV27LzqW+XVTvQAMIIRLPnNA== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-events-to-acorn "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-position-from-estree "^1.0.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-factory-space@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz#cebff49968f2b9616c0fcb239e96685cb9497633" + integrity sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz#7e09287c3748ff1693930f176e1c4a328382494f" + integrity sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-whitespace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz#e991e043ad376c1ba52f4e49858ce0794678621c" + integrity sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.1.0.tgz#d97c54d5742a0d9611a68ca0cd4124331f264d86" + integrity sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz#5b40d83f3d53b84c4c6bce30ed4257e9a4c79d06" + integrity sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz#cbd7b447cb79ee6997dd274a46fc4eb806460a20" + integrity sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz#91418e1e74fb893e3628b8d496085639124ff3d5" + integrity sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz#dcc85f13b5bd93ff8d2868c3dba28039d490b946" + integrity sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz#942252ab7a76dec2dbf089cc32505ee2bc3acf02" + integrity sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz#2c1c22d3800870ad770ece5686ebca5920353383" + integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== + +micromark-util-events-to-acorn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.0.tgz#65785cb77299d791bfefdc6a5213ab57ceead115" + integrity sha512-WWp3bf7xT9MppNuw3yPjpnOxa8cj5ACivEzXJKu0WwnjBYfzaBvIAT9KfeyI0Qkll+bfQtfftSwdgTH6QhTOKw== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + estree-util-visit "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + vfile-location "^4.0.0" + vfile-message "^3.0.0" + +micromark-util-html-tag-name@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz#eb227118befd51f48858e879b7a419fc0df20497" + integrity sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA== + +micromark-util-normalize-identifier@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz#4a3539cb8db954bbec5203952bfe8cedadae7828" + integrity sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz#a7c363f49a0162e931960c44f3127ab58f031d88" + integrity sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz#f12e07a85106b902645e0364feb07cf253a85aee" + integrity sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz#ff6f1af6ac836f8bfdbf9b02f40431760ad89105" + integrity sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz#b90344db62042ce454f351cf0bebcc0a6da4920e" + integrity sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.2.tgz#f4220fdb319205812f99c40f8c87a9be83eded20" + integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== + +micromark@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.1.0.tgz#eeba0fe0ac1c9aaef675157b52c166f125e89f62" + integrity sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -3530,11 +5419,23 @@ minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -3543,7 +5444,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@1.x: +mkdirp@1.x, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== @@ -3568,18 +5469,31 @@ mongo-mock@^4.0.0: object-assign-deep "^0.4.0" sift "^11.1.8" -mongodb@^3.5.9: - version "3.6.6" - resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-3.6.6.tgz#92e3658f45424c34add3003e3046c1535c534449" - integrity sha512-WlirMiuV1UPbej5JeCMqE93JRfZ/ZzqE7nJTwP85XzjAF4rRSeq2bGCb1cjfoHLOF06+HxADaPGqT0g3SbVT1w== +mongodb-connection-string-url@^2.5.4: + version "2.5.4" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz#1ee2496f4c4eae64f63c4b2d512aebc89996160a" + integrity sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w== dependencies: - bl "^2.2.1" - bson "^1.1.4" - denque "^1.4.1" - optional-require "^1.0.2" - safe-buffer "^5.1.2" + "@types/whatwg-url" "^8.2.1" + whatwg-url "^11.0.0" + +mongodb@4.11: + version "4.11.0" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.11.0.tgz#d28fdc7509f24d0d274f456529441fa3e570415c" + integrity sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg== + dependencies: + bson "^4.7.0" + denque "^2.1.0" + mongodb-connection-string-url "^2.5.4" + socks "^2.7.1" optionalDependencies: - saslprep "^1.0.0" + "@aws-sdk/credential-providers" "^3.186.0" + saslprep "^1.0.3" + +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== ms@2.0.0: version "2.0.0" @@ -3591,6 +5505,11 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -3679,6 +5598,29 @@ node-releases@^1.1.71: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== +nodemon@^2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.20.tgz#e3537de768a492e8d74da5c5813cb0c7486fc701" + integrity sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw== + dependencies: + chokidar "^3.5.2" + debug "^3.2.7" + ignore-by-default "^1.0.1" + minimatch "^3.1.2" + pstree.remy "^1.1.8" + semver "^5.7.1" + simple-update-notifier "^1.0.7" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.5" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== + dependencies: + abbrev "1" + normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -3696,7 +5638,7 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -3785,11 +5727,6 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -optional-require@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/optional-require/-/optional-require-1.0.3.tgz#275b8e9df1dc6a17ad155369c2422a440f89cb07" - integrity sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA== - optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -3898,6 +5835,20 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-entities@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.0.tgz#f67c856d4e3fe19b1a445c3fabe78dcdc1053eeb" + integrity sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ== + dependencies: + "@types/unist" "^2.0.0" + character-entities "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + parse-json@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -3969,6 +5920,11 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + path-to-regexp@2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45" @@ -3998,11 +5954,24 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +periscopic@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.0.4.tgz#b3fbed0d1bc844976b977173ca2cd4a0ef4fa8d1" + integrity sha512-SFx68DxCv0Iyo6APZuw/AKewkkThGwssmU0QWtTlvov3VAtPX+QJ4CadwSaz8nrT5jPIuxdvJWB4PnD2KNDxQg== + dependencies: + estree-walker "^3.0.0" + is-reference "^3.0.0" + picomatch@^2.0.4, picomatch@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== +picomatch@^2.2.1, picomatch@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" @@ -4037,6 +6006,11 @@ posix-character-classes@^0.1.0: resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= +postcss-value-parser@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -4057,11 +6031,6 @@ pretty-format@^26.0.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - progress@^2.0.0, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -4075,6 +6044,11 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" +property-information@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.1.1.tgz#5ca85510a3019726cb9afed4197b7b8ac5926a22" + integrity sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w== + pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -4085,6 +6059,11 @@ psl@^1.1.28, psl@^1.1.33: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== +pstree.remy@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + pump@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" @@ -4123,11 +6102,36 @@ rc@^1.0.1, rc@^1.1.6: minimist "^1.2.0" strip-json-comments "~2.0.1" +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + react-is@^17.0.1: version "17.0.2" resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== +react-is@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" @@ -4147,18 +6151,12 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -readable-stream@^2.3.5: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 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" + picomatch "^2.2.1" rechoir@^0.6.2: version "0.6.2" @@ -4208,6 +6206,54 @@ registry-url@3.1.0: dependencies: rc "^1.0.1" +rehype-highlight@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/rehype-highlight/-/rehype-highlight-6.0.0.tgz#8097219d8813b51f4c2b6d92db27dac6cbc9a641" + integrity sha512-q7UtlFicLhetp7K48ZgZiJgchYscMma7XjzX7t23bqEJF8m6/s+viXQEe4oHjrATTIZpX7RG8CKD7BlNZoh9gw== + dependencies: + "@types/hast" "^2.0.0" + hast-util-to-text "^3.0.0" + lowlight "^2.0.0" + unified "^10.0.0" + unist-util-visit "^4.0.0" + +remark-frontmatter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz#84560f7ccef114ef076d3d3735be6d69f8922309" + integrity sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-frontmatter "^1.0.0" + micromark-extension-frontmatter "^1.0.0" + unified "^10.0.0" + +remark-mdx@^2.0.0: + version "2.1.5" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-2.1.5.tgz#69b19ec42d30a289e0663c3fc7656ebdca0a8d8e" + integrity sha512-A8vw5s+BgOa968Irt8BO7DfWJTE0Fe7Ge3hX8zzDB1DnwMZTNdK6qF2IcFao+/7nzk1vSysKcFp+3ku4vhMpaQ== + dependencies: + mdast-util-mdx "^2.0.0" + micromark-extension-mdxjs "^1.0.0" + +remark-parse@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" + integrity sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" + +remark-rehype@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" + integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-hast "^12.1.0" + unified "^10.0.0" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -4302,6 +6348,15 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= +resolve@^1.0.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^1.1.6, resolve@^1.10.0, resolve@^1.18.1: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" @@ -4315,6 +6370,13 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +rimraf@^2.6.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -4327,12 +6389,19 @@ rsvp@^4.8.4: resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +sade@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2: +safe-buffer@^5.0.1, safe-buffer@^5.1.2: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -4364,7 +6433,7 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -saslprep@^1.0.0: +saslprep@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== @@ -4378,7 +6447,22 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -"semver@2 || 3 || 4 || 5", semver@^5.5.0: +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -4395,6 +6479,11 @@ semver@^6.0.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + sentence-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" @@ -4448,6 +6537,11 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -4496,6 +6590,13 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +simple-update-notifier@^1.0.7: + version "1.1.0" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" + integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== + dependencies: + semver "~7.0.0" + sinon@^9.2.4: version "9.2.4" resolved "https://registry.yarnpkg.com/sinon/-/sinon-9.2.4.tgz#e55af4d3b174a4443a8762fa8421c2976683752b" @@ -4532,6 +6633,11 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + snake-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" @@ -4570,6 +6676,14 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" +socks@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + source-map-resolve@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" @@ -4581,7 +6695,15 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.17, source-map-support@^0.5.6: +source-map-support@^0.5.12: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@^0.5.6: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -4604,11 +6726,21 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@^0.7.0: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + source-map@^0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +space-separated-tokens@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz#43193cec4fb858a2ce934b7f98b7f2c18107098b" + integrity sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw== + sparse-bitfield@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" @@ -4714,12 +6846,13 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== +stringify-entities@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.3.tgz#cfabd7039d22ad30f3cc435b0ca2c1574fc88ef8" + integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== dependencies: - safe-buffer "~5.1.0" + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" strip-ansi@^4.0.0: version "4.0.0" @@ -4735,6 +6868,16 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + strip-bom@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" @@ -4750,17 +6893,45 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-json-comments@^2.0.0, strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== -supports-color@^5.3.0: +style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" + +styled-components@^5.3.6: + version "5.3.6" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.6.tgz#27753c8c27c650bee9358e343fc927966bfd00d1" + integrity sha512-hGTZquGAaTqhGWldX7hhfzjnIYBZ0IXQXkCYdvF1Sq3DsUaLx6+NTHC5Jj1ooM2F68sBiVz3lvhfwQs/S3l6qg== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/traverse" "^7.4.5" + "@emotion/is-prop-valid" "^1.1.0" + "@emotion/stylis" "^0.8.4" + "@emotion/unitless" "^0.7.4" + babel-plugin-styled-components ">= 1.12.0" + css-to-react-native "^3.0.0" + hoist-non-react-statics "^3.0.0" + shallowequal "^1.1.0" + supports-color "^5.5.0" + +supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -4782,6 +6953,11 @@ supports-hyperlinks@^2.0.0: has-flag "^4.0.0" supports-color "^7.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -4875,6 +7051,13 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== + dependencies: + nopt "~1.0.10" + tough-cookie@^2.3.3, tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -4899,6 +7082,28 @@ tr46@^2.0.2: dependencies: punycode "^2.1.1" +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +trough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" + integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + ts-jest@^26.1.1: version "26.5.6" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.6.tgz#c32e0746425274e1dfe333f43cd3c800e014ec35" @@ -4915,18 +7120,52 @@ ts-jest@^26.1.1: semver "7.x" yargs-parser "20.x" -ts-node@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" - integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA== - dependencies: +ts-node-dev@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ts-node-dev/-/ts-node-dev-2.0.0.tgz#bdd53e17ab3b5d822ef519928dc6b4a7e0f13065" + integrity sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w== + dependencies: + chokidar "^3.5.1" + dynamic-dedupe "^0.3.0" + minimist "^1.2.6" + mkdirp "^1.0.4" + resolve "^1.0.0" + rimraf "^2.6.1" + source-map-support "^0.5.12" + tree-kill "^1.2.2" + ts-node "^10.4.0" + tsconfig "^7.0.0" + +ts-node@^10.4.0, ts-node@^10.9: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" arg "^4.1.0" + create-require "^1.1.0" diff "^4.0.1" make-error "^1.1.1" - source-map-support "^0.5.17" + v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tslib@^1.8.1: +tsconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" + integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== + dependencies: + "@types/strip-bom" "^3.0.0" + "@types/strip-json-comments" "0.0.30" + strip-bom "^3.0.0" + strip-json-comments "^2.0.0" + +tslib@^1.11.1, tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -4936,6 +7175,11 @@ tslib@^2.0.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w== +tslib@^2.3.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + tsutils@^3.17.1: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -5033,6 +7277,24 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.6.tgz#6815ac7fdd155d03c83e2362bb717e5b39b74013" integrity sha512-rRprLwl8RVaS+Qvx3Wh5hPfPBn9++G6xkGlUupya0s5aDmNjI7z3lnRLB3u7sN4OmbB0pWgzhM9BEJyiWAwtAA== +undefsafe@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" + integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== + +unified@^10.0.0: + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + union-value@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" @@ -5043,6 +7305,77 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" +unist-builder@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-3.0.0.tgz#728baca4767c0e784e1e64bb44b5a5a753021a04" + integrity sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-find-after@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-find-after/-/unist-util-find-after-4.0.0.tgz#1101cebf5fed88ae3c6f3fa676e86fd5772a4f32" + integrity sha512-gfpsxKQde7atVF30n5Gff2fQhAc4/HTOV4CvkXpTg9wRfQhZWdXitpyXHWB6YcYgnsxLx+4gGHeVjCTAAp9sjw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-generated@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.0.tgz#86fafb77eb6ce9bfa6b663c3f5ad4f8e56a60113" + integrity sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw== + +unist-util-is@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.1.1.tgz#e8aece0b102fa9bc097b0fef8f870c496d4a6236" + integrity sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ== + +unist-util-position-from-estree@^1.0.0, unist-util-position-from-estree@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.1.tgz#96f4d543dfb0428edc01ebb928570b602d280c4c" + integrity sha512-xtoY50b5+7IH8tFbkw64gisG9tMSpxDjhX9TmaJJae/XuxQ9R/Kc8Nv1eOsf43Gt4KV/LkriMy9mptDr7XLcaw== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-position@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.3.tgz#5290547b014f6222dff95c48d5c3c13a88fadd07" + integrity sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-remove-position@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-4.0.1.tgz#d5b46a7304ac114c8d91990ece085ca7c2c135c8" + integrity sha512-0yDkppiIhDlPrfHELgB+NLQD5mfjup3a8UYclHruTJWmY74je8g+CIFr79x5f6AkmzSwlvKLbs63hC0meOMowQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + +unist-util-stringify-position@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz#5c6aa07c90b1deffd9153be170dce628a869a447" + integrity sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-visit-parents@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz#868f353e6fce6bf8fa875b251b0f4fec3be709bb" + integrity sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad" + integrity sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -5100,21 +7433,31 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.2.0, uuid@^8.3.0: +uuid@^8.2.0, uuid@^8.3.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + v8-compile-cache@^2.0.3: version "2.3.0" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" @@ -5151,6 +7494,32 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vfile-location@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.0.1.tgz#06f2b9244a3565bef91f099359486a08b10d3a95" + integrity sha512-JDxPlTbZrZCQXogGheBHjbRWjESSPEak770XwWPfw5mTc1v1nWGLB/apzZxsx8a0SJVfF8HK8ql8RD308vXRUw== + dependencies: + "@types/unist" "^2.0.0" + vfile "^5.0.0" + +vfile-message@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.2.tgz#a2908f64d9e557315ec9d7ea3a910f658ac05f7d" + integrity sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + +vfile@^5.0.0: + version "5.3.5" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.5.tgz#ec2e206b1414f561c85b7972bb1eeda8ab47ee61" + integrity sha512-U1ho2ga33eZ8y8pkbQLH54uKqGhFJ6GYIHnnG5AhRpAh3OWjkrRHKa/KogbmQn8We+c0KVV3rTOgR9V/WowbXQ== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -5182,6 +7551,11 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" @@ -5194,6 +7568,14 @@ whatwg-mimetype@^2.3.0: resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + whatwg-url@^8.0.0, whatwg-url@^8.5.0: version "8.5.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.5.0.tgz#7752b8464fc0903fec89aa9846fc9efe07351fd3" @@ -5278,6 +7660,11 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" @@ -5327,3 +7714,8 @@ yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +zwitch@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.2.tgz#91f8d0e901ffa3d66599756dde7f57b17c95dce1" + integrity sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA== From 8db2fc98c875718fe20e53670ca6b89d562dbe70 Mon Sep 17 00:00:00 2001 From: Christoffer Artmann Date: Sun, 21 May 2023 11:51:41 +0200 Subject: [PATCH 6/6] WIP --- doc-gen/site/example.tsx | 13 ++++++++- doc-gen/site/global-styles.tsx | 6 ++-- docs/examples/create-pojo.ts | 23 +++++++++++++++ docs/examples/create.ts | 17 ++++++++++++ docs/examples/models/post.ts | 6 ++++ docs/examples/posts.json | 3 ++ docs/pages/creating-and-updating-data.mdx | 34 ++++++++++------------- 7 files changed, 80 insertions(+), 22 deletions(-) create mode 100644 docs/examples/create-pojo.ts create mode 100644 docs/examples/create.ts create mode 100644 docs/examples/models/post.ts create mode 100644 docs/examples/posts.json diff --git a/doc-gen/site/example.tsx b/doc-gen/site/example.tsx index 9f3c790..f78b22b 100644 --- a/doc-gen/site/example.tsx +++ b/doc-gen/site/example.tsx @@ -26,7 +26,8 @@ export function ExampleComponent({ name }: ExampleProps): ReactElement | null { if (isNumber(example.output) || isString(example.output)) { return ( -{ text } +{ text + '\n' } + { `// => ${ example.output }` } ) @@ -34,6 +35,16 @@ export function ExampleComponent({ name }: ExampleProps): ReactElement | null { // The Array check has to come before the Object one as an Array is also an Object. if (Array.isArray(example.output)) { + if (!isObject(example.output[0])) { + return ( + +{ text + '\n' } + +{ `// => [ ${ example.output.map(v => `'${ v }'`).join(', ') } ]` } + + ) + } + return ( <> diff --git a/doc-gen/site/global-styles.tsx b/doc-gen/site/global-styles.tsx index f67ba3a..75bb70d 100644 --- a/doc-gen/site/global-styles.tsx +++ b/doc-gen/site/global-styles.tsx @@ -26,6 +26,7 @@ export const GlobalStyle = createGlobalStyle` h1 { font-size: 1.875rem; + margin-bottom: 0.75rem; } h2 { @@ -42,9 +43,10 @@ export const GlobalStyle = createGlobalStyle` font-family: 'Source Code Pro', source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; } - .content p, .content pre, .content img, .content iframe, .content h2, .content h3, .content h4 { + .content p, .content pre, .content img, .content iframe { height: auto; - margin-top: 1rem; + margin: 0; + margin-bottom: 1.25rem; max-width: 100%; } diff --git a/docs/examples/create-pojo.ts b/docs/examples/create-pojo.ts new file mode 100644 index 0000000..3583e82 --- /dev/null +++ b/docs/examples/create-pojo.ts @@ -0,0 +1,23 @@ +import Post from './models/post.js' +import posts from './posts.json' assert { type: 'json' } + +export default { + code: async (): Promise => { + const post = new Post() + + post.title = 'Creating & Updating Data' + post.slug = 'creating-and-updating-data' + + await post.save() + + return post +}, + dataset: posts, + output: { + id: '63ee98b7357e3e41a307ec29', + createdAt: 1676572245568, + slug: 'creating-and-updating-data', + title: 'Creating & Updating Data', + updatedAt: null + } +} diff --git a/docs/examples/create.ts b/docs/examples/create.ts new file mode 100644 index 0000000..1e5dae2 --- /dev/null +++ b/docs/examples/create.ts @@ -0,0 +1,17 @@ +import Post from './models/post.js' +import posts from './posts.json' assert { type: 'json' } + +export default { + code: () => Post.create({ + slug: 'creating-and-updating-data', + title: 'Creating & Updating Data' +}), + dataset: posts, + output: { + id: '63ee98a9fb4581fb77e47311', + createdAt: 1676572245568, + slug: 'creating-and-updating-data', + title: 'Creating & Updating Data', + updatedAt: null + } +} diff --git a/docs/examples/models/post.ts b/docs/examples/models/post.ts new file mode 100644 index 0000000..647ba9a --- /dev/null +++ b/docs/examples/models/post.ts @@ -0,0 +1,6 @@ +import { BaseModel } from '../../../src/index.js' + +export default class Post extends BaseModel { + public title = '' + public slug = '' +} diff --git a/docs/examples/posts.json b/docs/examples/posts.json new file mode 100644 index 0000000..646ea8b --- /dev/null +++ b/docs/examples/posts.json @@ -0,0 +1,3 @@ +{ + "posts": [] +} diff --git a/docs/pages/creating-and-updating-data.mdx b/docs/pages/creating-and-updating-data.mdx index d65512e..076e479 100644 --- a/docs/pages/creating-and-updating-data.mdx +++ b/docs/pages/creating-and-updating-data.mdx @@ -2,34 +2,30 @@ title: Creating & Updating Data --- -When it comes to adding new models to the database, there are two different ways to go about it. You can either use the `create` method and pass it the attributes you want the model to have, or you can create a new instance of the model and call it's `save` method. +import { ExampleComponent } from '../doc-gen/site/example.tsx' +import { Header } from '../doc-gen/site/header.js' -```ts -// Using the create method. -const firstPost = await BlogPost.create({ title: 'My First Blog Post!' }); +When it comes to adding new models to the database, there are two different ways to go about it. You can either use +the `create` method and pass it the attributes you want the model to have. -// Using the save method. -const secondPost = new BlogPost(); + -secondPost.title = 'My Second Blog Post!'; +Esix models are just normal TypeScript classes, so you can create a new instance of the model and call the `save` method on it. -await secondPost.save(); -``` + -If the model doesn't have an Id, a new [ObjectId](https://docs.mongodb.com/manual/reference/method/ObjectId/) will be created and assigned to it. +

-When inserting a new model, the `createdAt` property will be filled with the current timestamp if it's not present. +When you create a new instance of a model, we'll automatically generate an [ObjectId](https://docs.mongodb.com/manual/reference/method/ObjectId/) +for you and assign it to the `id` property. If you already have an ID you want to use, you can pass it to the `create` method. -If you want to update an existing model, you can also use the `save` method to persist your changes. +MongoDB normally uses the `_id` property for documents, Esix does as well but we've aliased it to `id` for convenience. -```ts -const product = await Product.find('5f5a474b32fa462a5724ff7d'); +
-product.price = 14.99; - -await product.save(); -``` +When creating a new model, the `createdAt` property will be filled with the current timestamp if it's not present. When you call `save` on an already existing model, the `updatedAt` field will be filled with the current timestamp. -Both the timestamp properties contain the current time in milliseconds since January 1st, 1970, using JavaScript's [Date.now](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now) method. +Both the timestamp properties contain the current time in milliseconds since January 1st, 1970, using JavaScript's +[Date.now](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now) method.