diff --git a/.eslintrc.json b/.eslintrc.json
index b8a9d23..5efa523 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,52 +1,10 @@
{
- "extends": "eslint:recommended",
+ "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
+ "parser": "@typescript-eslint/parser",
+ "plugins": ["@typescript-eslint"],
"root": true,
- "env": {
- "node": true
- },
- "globals": {
- "Map": true,
- "Promise": true
- },
- "parserOptions": {
- "ecmaVersion": 13,
- "sourceType": "module"
- },
- "plugins": [ "node" ],
"rules": {
- "no-console": 0,
- "arrow-parens": [ "error", "always" ],
- "no-var": "error",
- "prefer-const": "error",
- "array-bracket-spacing": [ "error", "never" ],
- "comma-dangle": [ "error", "never" ],
- "computed-property-spacing": [ "error", "never" ],
- "eol-last": "error",
- "eqeqeq": [ "error", "smart" ],
- "indent": [ "error", 4, { "SwitchCase": 1 } ],
- "no-confusing-arrow": [ "error", { "allowParens": false } ],
- "no-extend-native": "error",
- "no-mixed-spaces-and-tabs": "error",
- "func-call-spacing": [ "error", "never" ],
- "no-trailing-spaces": "error",
- "no-unused-vars": "error",
- "no-use-before-define": [ "error", "nofunc" ],
- "object-curly-spacing": [ "error", "always" ],
- "prefer-arrow-callback": "error",
- "quotes": [ "error", "single", "avoid-escape" ],
- "semi": [ "error", "always" ],
- "space-infix-ops": "error",
- "spaced-comment": [ "error", "always" ],
- "keyword-spacing": [ "error", { "before": true, "after": true } ],
- "template-curly-spacing": [ "error", "never" ],
- "semi-spacing": "error",
- "strict": "error",
- "node/no-missing-require": "error",
- "valid-jsdoc": ["error", {
- "requireParamDescription": false,
- "requireReturnDescription": false,
- "requireReturnType": false,
- "requireReturn": false
- }]
+ "@typescript-eslint/ban-ts-comment": 1,
+ "@typescript-eslint/no-explicit-any": 1
}
}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 352a0ba..b9812df 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -9,13 +9,13 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Get tag
id: tag
uses: dawidd6/action-get-tag@v1
- - uses: actions/setup-node@v1
+ - uses: actions/setup-node@v4
with:
node-version: 18
registry-url: https://registry.npmjs.org/
@@ -23,6 +23,9 @@ jobs:
- name: npm install
run: npm install
+ - name: npm build
+ run: npm run build
+
- name: npm publish
run: npm publish
env:
diff --git a/.gitignore b/.gitignore
index 6704566..af61c5f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+docs/
+
# Logs
logs
*.log
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c14dce6..838cc8b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,10 @@
## Version History
+### v10.0.0
+
+- :rocket: Very rough support for Typescript based routes
+
### v9.4.0
- :rocket: Add support for `private` key which will hide endpoint in swagger
diff --git a/LICENSE b/LICENSE
index a60574f..d59b0e8 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2021 OpenAddresses
+Copyright (c) 2024 OpenAddresses
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index f04d960..1ba9f43 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
Batch-Schema
-Express Plugin for JSON Schema based routes
+Express Plugin for [TypeBox](https://github.com/sinclairzx81/typebox) Request and Response Validation
## Installation
@@ -11,13 +11,14 @@ npm i @openaddresses/batch-schema
## Example Usage
```js
-const path = require('path');
-const express = require('express');
-const { Schema } = require('@openaddresses/batch-schema');
+import express from 'express';
+import Schema from '@openaddresses/batch-schema';
+import { Type } from '@sinclair/typebox';
const app = express();
const schema = new Schema(express.Router(), {
- schemas: path.resolve(__dirname, 'schemas')
+ logging: true, // Enable Morgan Logging
+ limit: 50 // Body size for parsing JSON
});
app.use('/api', schema.router);
@@ -26,22 +27,25 @@ server();
async function server() {
await schema.post('/api/:param1/:param2', {
- ':param1': 'integer',
- ':param2': 'string',
- query: 'query-json-schema.json',
- body: 'body-json-schema.json',
- res: 'result-body-json-schema.json'
+ query: Type.Object({
+ example: Type.Optional(Type.Uppercase(Type.String()))
+ }),
+ params: Type.Object({
+ param1: Type.String(),
+ param2: Type.Number(),
+ }),
+ body: Type.Object({
+ username: Type.String(),
+ password: Type.String(),
+ }),
+ res: Type.Object({
+ token: Type.String()
+ }),
}, (req, res) => {
return res.json({
- note: 'I only return if the request meets the query & body schemas'
+ token: 'I only return if the request meets the query & body schemas'
});
});
-
- // Handle Unmatched Routes
- schema.not_found();
-
- // Handle Validation Errors => JSON Middleware
- schema.error();
}
```
diff --git a/docs/assets/anchor.js b/docs/assets/anchor.js
deleted file mode 100644
index 1f573dc..0000000
--- a/docs/assets/anchor.js
+++ /dev/null
@@ -1,350 +0,0 @@
-/*!
- * AnchorJS - v4.0.0 - 2017-06-02
- * https://github.com/bryanbraun/anchorjs
- * Copyright (c) 2017 Bryan Braun; Licensed MIT
- */
-/* eslint-env amd, node */
-
-// https://github.com/umdjs/umd/blob/master/templates/returnExports.js
-(function (root, factory) {
- 'use strict';
- if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define([], factory);
- } else if (typeof module === 'object' && module.exports) {
- // Node. Does not work with strict CommonJS, but
- // only CommonJS-like environments that support module.exports,
- // like Node.
- module.exports = factory();
- } else {
- // Browser globals (root is window)
- root.AnchorJS = factory();
- root.anchors = new root.AnchorJS();
- }
-})(this, function () {
- 'use strict';
- function AnchorJS(options) {
- this.options = options || {};
- this.elements = [];
-
- /**
- * Assigns options to the internal options object, and provides defaults.
- * @param {Object} opts - Options object
- */
- function _applyRemainingDefaultOptions(opts) {
- opts.icon = opts.hasOwnProperty('icon') ? opts.icon : '\ue9cb'; // Accepts characters (and also URLs?), like '#', '¶', '❡', or '§'.
- opts.visible = opts.hasOwnProperty('visible') ? opts.visible : 'hover'; // Also accepts 'always' & 'touch'
- opts.placement = opts.hasOwnProperty('placement')
- ? opts.placement
- : 'right'; // Also accepts 'left'
- opts.class = opts.hasOwnProperty('class') ? opts.class : ''; // Accepts any class name.
- // Using Math.floor here will ensure the value is Number-cast and an integer.
- opts.truncate = opts.hasOwnProperty('truncate')
- ? Math.floor(opts.truncate)
- : 64; // Accepts any value that can be typecast to a number.
- }
-
- _applyRemainingDefaultOptions(this.options);
-
- /**
- * Checks to see if this device supports touch. Uses criteria pulled from Modernizr:
- * https://github.com/Modernizr/Modernizr/blob/da22eb27631fc4957f67607fe6042e85c0a84656/feature-detects/touchevents.js#L40
- * @returns {Boolean} - true if the current device supports touch.
- */
- this.isTouchDevice = function () {
- return !!(
- 'ontouchstart' in window ||
- (window.DocumentTouch && document instanceof DocumentTouch)
- );
- };
-
- /**
- * Add anchor links to page elements.
- * @param {String|Array|Nodelist} selector - A CSS selector for targeting the elements you wish to add anchor links
- * to. Also accepts an array or nodeList containing the relavant elements.
- * @returns {this} - The AnchorJS object
- */
- this.add = function (selector) {
- var elements,
- elsWithIds,
- idList,
- elementID,
- i,
- index,
- count,
- tidyText,
- newTidyText,
- readableID,
- anchor,
- visibleOptionToUse,
- indexesToDrop = [];
-
- // We reapply options here because somebody may have overwritten the default options object when setting options.
- // For example, this overwrites all options but visible:
- //
- // anchors.options = { visible: 'always'; }
- _applyRemainingDefaultOptions(this.options);
-
- visibleOptionToUse = this.options.visible;
- if (visibleOptionToUse === 'touch') {
- visibleOptionToUse = this.isTouchDevice() ? 'always' : 'hover';
- }
-
- // Provide a sensible default selector, if none is given.
- if (!selector) {
- selector = 'h2, h3, h4, h5, h6';
- }
-
- elements = _getElements(selector);
-
- if (elements.length === 0) {
- return this;
- }
-
- _addBaselineStyles();
-
- // We produce a list of existing IDs so we don't generate a duplicate.
- elsWithIds = document.querySelectorAll('[id]');
- idList = [].map.call(elsWithIds, function assign(el) {
- return el.id;
- });
-
- for (i = 0; i < elements.length; i++) {
- if (this.hasAnchorJSLink(elements[i])) {
- indexesToDrop.push(i);
- continue;
- }
-
- if (elements[i].hasAttribute('id')) {
- elementID = elements[i].getAttribute('id');
- } else if (elements[i].hasAttribute('data-anchor-id')) {
- elementID = elements[i].getAttribute('data-anchor-id');
- } else {
- tidyText = this.urlify(elements[i].textContent);
-
- // Compare our generated ID to existing IDs (and increment it if needed)
- // before we add it to the page.
- newTidyText = tidyText;
- count = 0;
- do {
- if (index !== undefined) {
- newTidyText = tidyText + '-' + count;
- }
-
- index = idList.indexOf(newTidyText);
- count += 1;
- } while (index !== -1);
- index = undefined;
- idList.push(newTidyText);
-
- elements[i].setAttribute('id', newTidyText);
- elementID = newTidyText;
- }
-
- readableID = elementID.replace(/-/g, ' ');
-
- // The following code builds the following DOM structure in a more effiecient (albeit opaque) way.
- // ' ';
- anchor = document.createElement('a');
- anchor.className = 'anchorjs-link ' + this.options.class;
- anchor.href = '#' + elementID;
- anchor.setAttribute('aria-label', 'Anchor link for: ' + readableID);
- anchor.setAttribute('data-anchorjs-icon', this.options.icon);
-
- if (visibleOptionToUse === 'always') {
- anchor.style.opacity = '1';
- }
-
- if (this.options.icon === '\ue9cb') {
- anchor.style.font = '1em/1 anchorjs-icons';
-
- // We set lineHeight = 1 here because the `anchorjs-icons` font family could otherwise affect the
- // height of the heading. This isn't the case for icons with `placement: left`, so we restore
- // line-height: inherit in that case, ensuring they remain positioned correctly. For more info,
- // see https://github.com/bryanbraun/anchorjs/issues/39.
- if (this.options.placement === 'left') {
- anchor.style.lineHeight = 'inherit';
- }
- }
-
- if (this.options.placement === 'left') {
- anchor.style.position = 'absolute';
- anchor.style.marginLeft = '-1em';
- anchor.style.paddingRight = '0.5em';
- elements[i].insertBefore(anchor, elements[i].firstChild);
- } else {
- // if the option provided is `right` (or anything else).
- anchor.style.paddingLeft = '0.375em';
- elements[i].appendChild(anchor);
- }
- }
-
- for (i = 0; i < indexesToDrop.length; i++) {
- elements.splice(indexesToDrop[i] - i, 1);
- }
- this.elements = this.elements.concat(elements);
-
- return this;
- };
-
- /**
- * Removes all anchorjs-links from elements targed by the selector.
- * @param {String|Array|Nodelist} selector - A CSS selector string targeting elements with anchor links,
- * OR a nodeList / array containing the DOM elements.
- * @returns {this} - The AnchorJS object
- */
- this.remove = function (selector) {
- var index,
- domAnchor,
- elements = _getElements(selector);
-
- for (var i = 0; i < elements.length; i++) {
- domAnchor = elements[i].querySelector('.anchorjs-link');
- if (domAnchor) {
- // Drop the element from our main list, if it's in there.
- index = this.elements.indexOf(elements[i]);
- if (index !== -1) {
- this.elements.splice(index, 1);
- }
- // Remove the anchor from the DOM.
- elements[i].removeChild(domAnchor);
- }
- }
- return this;
- };
-
- /**
- * Removes all anchorjs links. Mostly used for tests.
- */
- this.removeAll = function () {
- this.remove(this.elements);
- };
-
- /**
- * Urlify - Refine text so it makes a good ID.
- *
- * To do this, we remove apostrophes, replace nonsafe characters with hyphens,
- * remove extra hyphens, truncate, trim hyphens, and make lowercase.
- *
- * @param {String} text - Any text. Usually pulled from the webpage element we are linking to.
- * @returns {String} - hyphen-delimited text for use in IDs and URLs.
- */
- this.urlify = function (text) {
- // Regex for finding the nonsafe URL characters (many need escaping): & +$,:;=?@"#{}|^~[`%!'<>]./()*\
- var nonsafeChars = /[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\]/g,
- urlText;
-
- // The reason we include this _applyRemainingDefaultOptions is so urlify can be called independently,
- // even after setting options. This can be useful for tests or other applications.
- if (!this.options.truncate) {
- _applyRemainingDefaultOptions(this.options);
- }
-
- // Note: we trim hyphens after truncating because truncating can cause dangling hyphens.
- // Example string: // " ⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
- urlText = text
- .trim() // "⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
- .replace(/\'/gi, '') // "⚡⚡ Dont forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
- .replace(nonsafeChars, '-') // "⚡⚡-Dont-forget--URL-fragments-should-be-i18n-friendly--hyphenated--short--and-clean-"
- .replace(/-{2,}/g, '-') // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-short-and-clean-"
- .substring(0, this.options.truncate) // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-"
- .replace(/^-+|-+$/gm, '') // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated"
- .toLowerCase(); // "⚡⚡-dont-forget-url-fragments-should-be-i18n-friendly-hyphenated"
-
- return urlText;
- };
-
- /**
- * Determines if this element already has an AnchorJS link on it.
- * Uses this technique: http://stackoverflow.com/a/5898748/1154642
- * @param {HTMLElemnt} el - a DOM node
- * @returns {Boolean} true/false
- */
- this.hasAnchorJSLink = function (el) {
- var hasLeftAnchor =
- el.firstChild &&
- (' ' + el.firstChild.className + ' ').indexOf(' anchorjs-link ') > -1,
- hasRightAnchor =
- el.lastChild &&
- (' ' + el.lastChild.className + ' ').indexOf(' anchorjs-link ') > -1;
-
- return hasLeftAnchor || hasRightAnchor || false;
- };
-
- /**
- * Turns a selector, nodeList, or array of elements into an array of elements (so we can use array methods).
- * It also throws errors on any other inputs. Used to handle inputs to .add and .remove.
- * @param {String|Array|Nodelist} input - A CSS selector string targeting elements with anchor links,
- * OR a nodeList / array containing the DOM elements.
- * @returns {Array} - An array containing the elements we want.
- */
- function _getElements(input) {
- var elements;
- if (typeof input === 'string' || input instanceof String) {
- // See https://davidwalsh.name/nodelist-array for the technique transforming nodeList -> Array.
- elements = [].slice.call(document.querySelectorAll(input));
- // I checked the 'input instanceof NodeList' test in IE9 and modern browsers and it worked for me.
- } else if (Array.isArray(input) || input instanceof NodeList) {
- elements = [].slice.call(input);
- } else {
- throw new Error('The selector provided to AnchorJS was invalid.');
- }
- return elements;
- }
-
- /**
- * _addBaselineStyles
- * Adds baseline styles to the page, used by all AnchorJS links irregardless of configuration.
- */
- function _addBaselineStyles() {
- // We don't want to add global baseline styles if they've been added before.
- if (document.head.querySelector('style.anchorjs') !== null) {
- return;
- }
-
- var style = document.createElement('style'),
- linkRule =
- ' .anchorjs-link {' +
- ' opacity: 0;' +
- ' text-decoration: none;' +
- ' -webkit-font-smoothing: antialiased;' +
- ' -moz-osx-font-smoothing: grayscale;' +
- ' }',
- hoverRule =
- ' *:hover > .anchorjs-link,' +
- ' .anchorjs-link:focus {' +
- ' opacity: 1;' +
- ' }',
- anchorjsLinkFontFace =
- ' @font-face {' +
- ' font-family: "anchorjs-icons";' + // Icon from icomoon; 10px wide & 10px tall; 2 empty below & 4 above
- ' src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype");' +
- ' }',
- pseudoElContent =
- ' [data-anchorjs-icon]::after {' +
- ' content: attr(data-anchorjs-icon);' +
- ' }',
- firstStyleEl;
-
- style.className = 'anchorjs';
- style.appendChild(document.createTextNode('')); // Necessary for Webkit.
-
- // We place it in the head with the other style tags, if possible, so as to
- // not look out of place. We insert before the others so these styles can be
- // overridden if necessary.
- firstStyleEl = document.head.querySelector('[rel="stylesheet"], style');
- if (firstStyleEl === undefined) {
- document.head.appendChild(style);
- } else {
- document.head.insertBefore(style, firstStyleEl);
- }
-
- style.sheet.insertRule(linkRule, style.sheet.cssRules.length);
- style.sheet.insertRule(hoverRule, style.sheet.cssRules.length);
- style.sheet.insertRule(pseudoElContent, style.sheet.cssRules.length);
- style.sheet.insertRule(anchorjsLinkFontFace, style.sheet.cssRules.length);
- }
- }
-
- return AnchorJS;
-});
diff --git a/docs/assets/bass-addons.css b/docs/assets/bass-addons.css
deleted file mode 100644
index c27e96d..0000000
--- a/docs/assets/bass-addons.css
+++ /dev/null
@@ -1,12 +0,0 @@
-.input {
- font-family: inherit;
- display: block;
- width: 100%;
- height: 2rem;
- padding: .5rem;
- margin-bottom: 1rem;
- border: 1px solid #ccc;
- font-size: .875rem;
- border-radius: 3px;
- box-sizing: border-box;
-}
diff --git a/docs/assets/bass.css b/docs/assets/bass.css
deleted file mode 100644
index 2d860c5..0000000
--- a/docs/assets/bass.css
+++ /dev/null
@@ -1,544 +0,0 @@
-/*! Basscss | http://basscss.com | MIT License */
-
-.h1{ font-size: 2rem }
-.h2{ font-size: 1.5rem }
-.h3{ font-size: 1.25rem }
-.h4{ font-size: 1rem }
-.h5{ font-size: .875rem }
-.h6{ font-size: .75rem }
-
-.font-family-inherit{ font-family:inherit }
-.font-size-inherit{ font-size:inherit }
-.text-decoration-none{ text-decoration:none }
-
-.bold{ font-weight: bold; font-weight: bold }
-.regular{ font-weight:normal }
-.italic{ font-style:italic }
-.caps{ text-transform:uppercase; letter-spacing: .2em; }
-
-.left-align{ text-align:left }
-.center{ text-align:center }
-.right-align{ text-align:right }
-.justify{ text-align:justify }
-
-.nowrap{ white-space:nowrap }
-.break-word{ word-wrap:break-word }
-
-.line-height-1{ line-height: 1 }
-.line-height-2{ line-height: 1.125 }
-.line-height-3{ line-height: 1.25 }
-.line-height-4{ line-height: 1.5 }
-
-.list-style-none{ list-style:none }
-.underline{ text-decoration:underline }
-
-.truncate{
- max-width:100%;
- overflow:hidden;
- text-overflow:ellipsis;
- white-space:nowrap;
-}
-
-.list-reset{
- list-style:none;
- padding-left:0;
-}
-
-.inline{ display:inline }
-.block{ display:block }
-.inline-block{ display:inline-block }
-.table{ display:table }
-.table-cell{ display:table-cell }
-
-.overflow-hidden{ overflow:hidden }
-.overflow-scroll{ overflow:scroll }
-.overflow-auto{ overflow:auto }
-
-.clearfix:before,
-.clearfix:after{
- content:" ";
- display:table
-}
-.clearfix:after{ clear:both }
-
-.left{ float:left }
-.right{ float:right }
-
-.fit{ max-width:100% }
-
-.max-width-1{ max-width: 24rem }
-.max-width-2{ max-width: 32rem }
-.max-width-3{ max-width: 48rem }
-.max-width-4{ max-width: 64rem }
-
-.border-box{ box-sizing:border-box }
-
-.align-baseline{ vertical-align:baseline }
-.align-top{ vertical-align:top }
-.align-middle{ vertical-align:middle }
-.align-bottom{ vertical-align:bottom }
-
-.m0{ margin:0 }
-.mt0{ margin-top:0 }
-.mr0{ margin-right:0 }
-.mb0{ margin-bottom:0 }
-.ml0{ margin-left:0 }
-.mx0{ margin-left:0; margin-right:0 }
-.my0{ margin-top:0; margin-bottom:0 }
-
-.m1{ margin: .5rem }
-.mt1{ margin-top: .5rem }
-.mr1{ margin-right: .5rem }
-.mb1{ margin-bottom: .5rem }
-.ml1{ margin-left: .5rem }
-.mx1{ margin-left: .5rem; margin-right: .5rem }
-.my1{ margin-top: .5rem; margin-bottom: .5rem }
-
-.m2{ margin: 1rem }
-.mt2{ margin-top: 1rem }
-.mr2{ margin-right: 1rem }
-.mb2{ margin-bottom: 1rem }
-.ml2{ margin-left: 1rem }
-.mx2{ margin-left: 1rem; margin-right: 1rem }
-.my2{ margin-top: 1rem; margin-bottom: 1rem }
-
-.m3{ margin: 2rem }
-.mt3{ margin-top: 2rem }
-.mr3{ margin-right: 2rem }
-.mb3{ margin-bottom: 2rem }
-.ml3{ margin-left: 2rem }
-.mx3{ margin-left: 2rem; margin-right: 2rem }
-.my3{ margin-top: 2rem; margin-bottom: 2rem }
-
-.m4{ margin: 4rem }
-.mt4{ margin-top: 4rem }
-.mr4{ margin-right: 4rem }
-.mb4{ margin-bottom: 4rem }
-.ml4{ margin-left: 4rem }
-.mx4{ margin-left: 4rem; margin-right: 4rem }
-.my4{ margin-top: 4rem; margin-bottom: 4rem }
-
-.mxn1{ margin-left: -.5rem; margin-right: -.5rem; }
-.mxn2{ margin-left: -1rem; margin-right: -1rem; }
-.mxn3{ margin-left: -2rem; margin-right: -2rem; }
-.mxn4{ margin-left: -4rem; margin-right: -4rem; }
-
-.ml-auto{ margin-left:auto }
-.mr-auto{ margin-right:auto }
-.mx-auto{ margin-left:auto; margin-right:auto; }
-
-.p0{ padding:0 }
-.pt0{ padding-top:0 }
-.pr0{ padding-right:0 }
-.pb0{ padding-bottom:0 }
-.pl0{ padding-left:0 }
-.px0{ padding-left:0; padding-right:0 }
-.py0{ padding-top:0; padding-bottom:0 }
-
-.p1{ padding: .5rem }
-.pt1{ padding-top: .5rem }
-.pr1{ padding-right: .5rem }
-.pb1{ padding-bottom: .5rem }
-.pl1{ padding-left: .5rem }
-.py1{ padding-top: .5rem; padding-bottom: .5rem }
-.px1{ padding-left: .5rem; padding-right: .5rem }
-
-.p2{ padding: 1rem }
-.pt2{ padding-top: 1rem }
-.pr2{ padding-right: 1rem }
-.pb2{ padding-bottom: 1rem }
-.pl2{ padding-left: 1rem }
-.py2{ padding-top: 1rem; padding-bottom: 1rem }
-.px2{ padding-left: 1rem; padding-right: 1rem }
-
-.p3{ padding: 2rem }
-.pt3{ padding-top: 2rem }
-.pr3{ padding-right: 2rem }
-.pb3{ padding-bottom: 2rem }
-.pl3{ padding-left: 2rem }
-.py3{ padding-top: 2rem; padding-bottom: 2rem }
-.px3{ padding-left: 2rem; padding-right: 2rem }
-
-.p4{ padding: 4rem }
-.pt4{ padding-top: 4rem }
-.pr4{ padding-right: 4rem }
-.pb4{ padding-bottom: 4rem }
-.pl4{ padding-left: 4rem }
-.py4{ padding-top: 4rem; padding-bottom: 4rem }
-.px4{ padding-left: 4rem; padding-right: 4rem }
-
-.col{
- float:left;
- box-sizing:border-box;
-}
-
-.col-right{
- float:right;
- box-sizing:border-box;
-}
-
-.col-1{
- width:8.33333%;
-}
-
-.col-2{
- width:16.66667%;
-}
-
-.col-3{
- width:25%;
-}
-
-.col-4{
- width:33.33333%;
-}
-
-.col-5{
- width:41.66667%;
-}
-
-.col-6{
- width:50%;
-}
-
-.col-7{
- width:58.33333%;
-}
-
-.col-8{
- width:66.66667%;
-}
-
-.col-9{
- width:75%;
-}
-
-.col-10{
- width:83.33333%;
-}
-
-.col-11{
- width:91.66667%;
-}
-
-.col-12{
- width:100%;
-}
-@media (min-width: 40em){
-
- .sm-col{
- float:left;
- box-sizing:border-box;
- }
-
- .sm-col-right{
- float:right;
- box-sizing:border-box;
- }
-
- .sm-col-1{
- width:8.33333%;
- }
-
- .sm-col-2{
- width:16.66667%;
- }
-
- .sm-col-3{
- width:25%;
- }
-
- .sm-col-4{
- width:33.33333%;
- }
-
- .sm-col-5{
- width:41.66667%;
- }
-
- .sm-col-6{
- width:50%;
- }
-
- .sm-col-7{
- width:58.33333%;
- }
-
- .sm-col-8{
- width:66.66667%;
- }
-
- .sm-col-9{
- width:75%;
- }
-
- .sm-col-10{
- width:83.33333%;
- }
-
- .sm-col-11{
- width:91.66667%;
- }
-
- .sm-col-12{
- width:100%;
- }
-
-}
-@media (min-width: 52em){
-
- .md-col{
- float:left;
- box-sizing:border-box;
- }
-
- .md-col-right{
- float:right;
- box-sizing:border-box;
- }
-
- .md-col-1{
- width:8.33333%;
- }
-
- .md-col-2{
- width:16.66667%;
- }
-
- .md-col-3{
- width:25%;
- }
-
- .md-col-4{
- width:33.33333%;
- }
-
- .md-col-5{
- width:41.66667%;
- }
-
- .md-col-6{
- width:50%;
- }
-
- .md-col-7{
- width:58.33333%;
- }
-
- .md-col-8{
- width:66.66667%;
- }
-
- .md-col-9{
- width:75%;
- }
-
- .md-col-10{
- width:83.33333%;
- }
-
- .md-col-11{
- width:91.66667%;
- }
-
- .md-col-12{
- width:100%;
- }
-
-}
-@media (min-width: 64em){
-
- .lg-col{
- float:left;
- box-sizing:border-box;
- }
-
- .lg-col-right{
- float:right;
- box-sizing:border-box;
- }
-
- .lg-col-1{
- width:8.33333%;
- }
-
- .lg-col-2{
- width:16.66667%;
- }
-
- .lg-col-3{
- width:25%;
- }
-
- .lg-col-4{
- width:33.33333%;
- }
-
- .lg-col-5{
- width:41.66667%;
- }
-
- .lg-col-6{
- width:50%;
- }
-
- .lg-col-7{
- width:58.33333%;
- }
-
- .lg-col-8{
- width:66.66667%;
- }
-
- .lg-col-9{
- width:75%;
- }
-
- .lg-col-10{
- width:83.33333%;
- }
-
- .lg-col-11{
- width:91.66667%;
- }
-
- .lg-col-12{
- width:100%;
- }
-
-}
-.flex{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex }
-
-@media (min-width: 40em){
- .sm-flex{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex }
-}
-
-@media (min-width: 52em){
- .md-flex{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex }
-}
-
-@media (min-width: 64em){
- .lg-flex{ display:-webkit-box; display:-webkit-flex; display:-ms-flexbox; display:flex }
-}
-
-.flex-column{ -webkit-box-orient:vertical; -webkit-box-direction:normal; -webkit-flex-direction:column; -ms-flex-direction:column; flex-direction:column }
-.flex-wrap{ -webkit-flex-wrap:wrap; -ms-flex-wrap:wrap; flex-wrap:wrap }
-
-.items-start{ -webkit-box-align:start; -webkit-align-items:flex-start; -ms-flex-align:start; -ms-grid-row-align:flex-start; align-items:flex-start }
-.items-end{ -webkit-box-align:end; -webkit-align-items:flex-end; -ms-flex-align:end; -ms-grid-row-align:flex-end; align-items:flex-end }
-.items-center{ -webkit-box-align:center; -webkit-align-items:center; -ms-flex-align:center; -ms-grid-row-align:center; align-items:center }
-.items-baseline{ -webkit-box-align:baseline; -webkit-align-items:baseline; -ms-flex-align:baseline; -ms-grid-row-align:baseline; align-items:baseline }
-.items-stretch{ -webkit-box-align:stretch; -webkit-align-items:stretch; -ms-flex-align:stretch; -ms-grid-row-align:stretch; align-items:stretch }
-
-.self-start{ -webkit-align-self:flex-start; -ms-flex-item-align:start; align-self:flex-start }
-.self-end{ -webkit-align-self:flex-end; -ms-flex-item-align:end; align-self:flex-end }
-.self-center{ -webkit-align-self:center; -ms-flex-item-align:center; align-self:center }
-.self-baseline{ -webkit-align-self:baseline; -ms-flex-item-align:baseline; align-self:baseline }
-.self-stretch{ -webkit-align-self:stretch; -ms-flex-item-align:stretch; align-self:stretch }
-
-.justify-start{ -webkit-box-pack:start; -webkit-justify-content:flex-start; -ms-flex-pack:start; justify-content:flex-start }
-.justify-end{ -webkit-box-pack:end; -webkit-justify-content:flex-end; -ms-flex-pack:end; justify-content:flex-end }
-.justify-center{ -webkit-box-pack:center; -webkit-justify-content:center; -ms-flex-pack:center; justify-content:center }
-.justify-between{ -webkit-box-pack:justify; -webkit-justify-content:space-between; -ms-flex-pack:justify; justify-content:space-between }
-.justify-around{ -webkit-justify-content:space-around; -ms-flex-pack:distribute; justify-content:space-around }
-
-.content-start{ -webkit-align-content:flex-start; -ms-flex-line-pack:start; align-content:flex-start }
-.content-end{ -webkit-align-content:flex-end; -ms-flex-line-pack:end; align-content:flex-end }
-.content-center{ -webkit-align-content:center; -ms-flex-line-pack:center; align-content:center }
-.content-between{ -webkit-align-content:space-between; -ms-flex-line-pack:justify; align-content:space-between }
-.content-around{ -webkit-align-content:space-around; -ms-flex-line-pack:distribute; align-content:space-around }
-.content-stretch{ -webkit-align-content:stretch; -ms-flex-line-pack:stretch; align-content:stretch }
-.flex-auto{
- -webkit-box-flex:1;
- -webkit-flex:1 1 auto;
- -ms-flex:1 1 auto;
- flex:1 1 auto;
- min-width:0;
- min-height:0;
-}
-.flex-none{ -webkit-box-flex:0; -webkit-flex:none; -ms-flex:none; flex:none }
-.fs0{ flex-shrink: 0 }
-
-.order-0{ -webkit-box-ordinal-group:1; -webkit-order:0; -ms-flex-order:0; order:0 }
-.order-1{ -webkit-box-ordinal-group:2; -webkit-order:1; -ms-flex-order:1; order:1 }
-.order-2{ -webkit-box-ordinal-group:3; -webkit-order:2; -ms-flex-order:2; order:2 }
-.order-3{ -webkit-box-ordinal-group:4; -webkit-order:3; -ms-flex-order:3; order:3 }
-.order-last{ -webkit-box-ordinal-group:100000; -webkit-order:99999; -ms-flex-order:99999; order:99999 }
-
-.relative{ position:relative }
-.absolute{ position:absolute }
-.fixed{ position:fixed }
-
-.top-0{ top:0 }
-.right-0{ right:0 }
-.bottom-0{ bottom:0 }
-.left-0{ left:0 }
-
-.z1{ z-index: 1 }
-.z2{ z-index: 2 }
-.z3{ z-index: 3 }
-.z4{ z-index: 4 }
-
-.border{
- border-style:solid;
- border-width: 1px;
-}
-
-.border-top{
- border-top-style:solid;
- border-top-width: 1px;
-}
-
-.border-right{
- border-right-style:solid;
- border-right-width: 1px;
-}
-
-.border-bottom{
- border-bottom-style:solid;
- border-bottom-width: 1px;
-}
-
-.border-left{
- border-left-style:solid;
- border-left-width: 1px;
-}
-
-.border-none{ border:0 }
-
-.rounded{ border-radius: 3px }
-.circle{ border-radius:50% }
-
-.rounded-top{ border-radius: 3px 3px 0 0 }
-.rounded-right{ border-radius: 0 3px 3px 0 }
-.rounded-bottom{ border-radius: 0 0 3px 3px }
-.rounded-left{ border-radius: 3px 0 0 3px }
-
-.not-rounded{ border-radius:0 }
-
-.hide{
- position:absolute !important;
- height:1px;
- width:1px;
- overflow:hidden;
- clip:rect(1px, 1px, 1px, 1px);
-}
-
-@media (max-width: 40em){
- .xs-hide{ display:none !important }
-}
-
-@media (min-width: 40em) and (max-width: 52em){
- .sm-hide{ display:none !important }
-}
-
-@media (min-width: 52em) and (max-width: 64em){
- .md-hide{ display:none !important }
-}
-
-@media (min-width: 64em){
- .lg-hide{ display:none !important }
-}
-
-.display-none{ display:none !important }
-
diff --git a/docs/assets/fonts/EOT/SourceCodePro-Bold.eot b/docs/assets/fonts/EOT/SourceCodePro-Bold.eot
deleted file mode 100755
index d24cc39..0000000
Binary files a/docs/assets/fonts/EOT/SourceCodePro-Bold.eot and /dev/null differ
diff --git a/docs/assets/fonts/EOT/SourceCodePro-Regular.eot b/docs/assets/fonts/EOT/SourceCodePro-Regular.eot
deleted file mode 100755
index 09e9473..0000000
Binary files a/docs/assets/fonts/EOT/SourceCodePro-Regular.eot and /dev/null differ
diff --git a/docs/assets/fonts/LICENSE.txt b/docs/assets/fonts/LICENSE.txt
deleted file mode 100755
index d154618..0000000
--- a/docs/assets/fonts/LICENSE.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-
-This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/docs/assets/fonts/OTF/SourceCodePro-Bold.otf b/docs/assets/fonts/OTF/SourceCodePro-Bold.otf
deleted file mode 100755
index f4e576c..0000000
Binary files a/docs/assets/fonts/OTF/SourceCodePro-Bold.otf and /dev/null differ
diff --git a/docs/assets/fonts/OTF/SourceCodePro-Regular.otf b/docs/assets/fonts/OTF/SourceCodePro-Regular.otf
deleted file mode 100755
index 4e3b9d0..0000000
Binary files a/docs/assets/fonts/OTF/SourceCodePro-Regular.otf and /dev/null differ
diff --git a/docs/assets/fonts/TTF/SourceCodePro-Bold.ttf b/docs/assets/fonts/TTF/SourceCodePro-Bold.ttf
deleted file mode 100755
index e0c576f..0000000
Binary files a/docs/assets/fonts/TTF/SourceCodePro-Bold.ttf and /dev/null differ
diff --git a/docs/assets/fonts/TTF/SourceCodePro-Regular.ttf b/docs/assets/fonts/TTF/SourceCodePro-Regular.ttf
deleted file mode 100755
index 437f472..0000000
Binary files a/docs/assets/fonts/TTF/SourceCodePro-Regular.ttf and /dev/null differ
diff --git a/docs/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff b/docs/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff
deleted file mode 100755
index cf96099..0000000
Binary files a/docs/assets/fonts/WOFF/OTF/SourceCodePro-Bold.otf.woff and /dev/null differ
diff --git a/docs/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff b/docs/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff
deleted file mode 100755
index 395436e..0000000
Binary files a/docs/assets/fonts/WOFF/OTF/SourceCodePro-Regular.otf.woff and /dev/null differ
diff --git a/docs/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff b/docs/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff
deleted file mode 100755
index c65ba84..0000000
Binary files a/docs/assets/fonts/WOFF/TTF/SourceCodePro-Bold.ttf.woff and /dev/null differ
diff --git a/docs/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff b/docs/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff
deleted file mode 100755
index 0af792a..0000000
Binary files a/docs/assets/fonts/WOFF/TTF/SourceCodePro-Regular.ttf.woff and /dev/null differ
diff --git a/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 b/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2
deleted file mode 100755
index cbe3835..0000000
Binary files a/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Bold.otf.woff2 and /dev/null differ
diff --git a/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 b/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2
deleted file mode 100755
index 65cd591..0000000
Binary files a/docs/assets/fonts/WOFF2/OTF/SourceCodePro-Regular.otf.woff2 and /dev/null differ
diff --git a/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 b/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2
deleted file mode 100755
index b78d523..0000000
Binary files a/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Bold.ttf.woff2 and /dev/null differ
diff --git a/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 b/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2
deleted file mode 100755
index 18d2199..0000000
Binary files a/docs/assets/fonts/WOFF2/TTF/SourceCodePro-Regular.ttf.woff2 and /dev/null differ
diff --git a/docs/assets/fonts/source-code-pro.css b/docs/assets/fonts/source-code-pro.css
deleted file mode 100755
index 3abb4f0..0000000
--- a/docs/assets/fonts/source-code-pro.css
+++ /dev/null
@@ -1,23 +0,0 @@
-@font-face{
- font-family: 'Source Code Pro';
- font-weight: 400;
- font-style: normal;
- font-stretch: normal;
- src: url('EOT/SourceCodePro-Regular.eot') format('embedded-opentype'),
- url('WOFF2/TTF/SourceCodePro-Regular.ttf.woff2') format('woff2'),
- url('WOFF/OTF/SourceCodePro-Regular.otf.woff') format('woff'),
- url('OTF/SourceCodePro-Regular.otf') format('opentype'),
- url('TTF/SourceCodePro-Regular.ttf') format('truetype');
-}
-
-@font-face{
- font-family: 'Source Code Pro';
- font-weight: 700;
- font-style: normal;
- font-stretch: normal;
- src: url('EOT/SourceCodePro-Bold.eot') format('embedded-opentype'),
- url('WOFF2/TTF/SourceCodePro-Bold.ttf.woff2') format('woff2'),
- url('WOFF/OTF/SourceCodePro-Bold.otf.woff') format('woff'),
- url('OTF/SourceCodePro-Bold.otf') format('opentype'),
- url('TTF/SourceCodePro-Bold.ttf') format('truetype');
-}
diff --git a/docs/assets/github.css b/docs/assets/github.css
deleted file mode 100644
index 8852abb..0000000
--- a/docs/assets/github.css
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
-
-github.com style (c) Vasily Polovnyov
-
-*/
-
-.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
- color: #333;
- background: #f8f8f8;
- -webkit-text-size-adjust: none;
-}
-
-.hljs-comment,
-.diff .hljs-header,
-.hljs-javadoc {
- color: #998;
- font-style: italic;
-}
-
-.hljs-keyword,
-.css .rule .hljs-keyword,
-.hljs-winutils,
-.nginx .hljs-title,
-.hljs-subst,
-.hljs-request,
-.hljs-status {
- color: #1184CE;
-}
-
-.hljs-number,
-.hljs-hexcolor,
-.ruby .hljs-constant {
- color: #ed225d;
-}
-
-.hljs-string,
-.hljs-tag .hljs-value,
-.hljs-phpdoc,
-.hljs-dartdoc,
-.tex .hljs-formula {
- color: #ed225d;
-}
-
-.hljs-title,
-.hljs-id,
-.scss .hljs-preprocessor {
- color: #900;
- font-weight: bold;
-}
-
-.hljs-list .hljs-keyword,
-.hljs-subst {
- font-weight: normal;
-}
-
-.hljs-class .hljs-title,
-.hljs-type,
-.vhdl .hljs-literal,
-.tex .hljs-command {
- color: #458;
- font-weight: bold;
-}
-
-.hljs-tag,
-.hljs-tag .hljs-title,
-.hljs-rules .hljs-property,
-.django .hljs-tag .hljs-keyword {
- color: #000080;
- font-weight: normal;
-}
-
-.hljs-attribute,
-.hljs-variable,
-.lisp .hljs-body {
- color: #008080;
-}
-
-.hljs-regexp {
- color: #009926;
-}
-
-.hljs-symbol,
-.ruby .hljs-symbol .hljs-string,
-.lisp .hljs-keyword,
-.clojure .hljs-keyword,
-.scheme .hljs-keyword,
-.tex .hljs-special,
-.hljs-prompt {
- color: #990073;
-}
-
-.hljs-built_in {
- color: #0086b3;
-}
-
-.hljs-preprocessor,
-.hljs-pragma,
-.hljs-pi,
-.hljs-doctype,
-.hljs-shebang,
-.hljs-cdata {
- color: #999;
- font-weight: bold;
-}
-
-.hljs-deletion {
- background: #fdd;
-}
-
-.hljs-addition {
- background: #dfd;
-}
-
-.diff .hljs-change {
- background: #0086b3;
-}
-
-.hljs-chunk {
- color: #aaa;
-}
diff --git a/docs/assets/site.js b/docs/assets/site.js
deleted file mode 100644
index a624be7..0000000
--- a/docs/assets/site.js
+++ /dev/null
@@ -1,168 +0,0 @@
-/* global anchors */
-
-// add anchor links to headers
-anchors.options.placement = 'left';
-anchors.add('h3');
-
-// Filter UI
-var tocElements = document.getElementById('toc').getElementsByTagName('li');
-
-document.getElementById('filter-input').addEventListener('keyup', function (e) {
- var i, element, children;
-
- // enter key
- if (e.keyCode === 13) {
- // go to the first displayed item in the toc
- for (i = 0; i < tocElements.length; i++) {
- element = tocElements[i];
- if (!element.classList.contains('display-none')) {
- location.replace(element.firstChild.href);
- return e.preventDefault();
- }
- }
- }
-
- var match = function () {
- return true;
- };
-
- var value = this.value.toLowerCase();
-
- if (!value.match(/^\s*$/)) {
- match = function (element) {
- var html = element.firstChild.innerHTML;
- return html && html.toLowerCase().indexOf(value) !== -1;
- };
- }
-
- for (i = 0; i < tocElements.length; i++) {
- element = tocElements[i];
- children = Array.from(element.getElementsByTagName('li'));
- if (match(element) || children.some(match)) {
- element.classList.remove('display-none');
- } else {
- element.classList.add('display-none');
- }
- }
-});
-
-var items = document.getElementsByClassName('toggle-sibling');
-for (var j = 0; j < items.length; j++) {
- items[j].addEventListener('click', toggleSibling);
-}
-
-function toggleSibling() {
- var stepSibling = this.parentNode.getElementsByClassName('toggle-target')[0];
- var icon = this.getElementsByClassName('icon')[0];
- var klass = 'display-none';
- if (stepSibling.classList.contains(klass)) {
- stepSibling.classList.remove(klass);
- icon.innerHTML = '▾';
- } else {
- stepSibling.classList.add(klass);
- icon.innerHTML = '▸';
- }
-}
-
-function showHashTarget(targetId) {
- if (targetId) {
- var hashTarget = document.getElementById(targetId);
- // new target is hidden
- if (
- hashTarget &&
- hashTarget.offsetHeight === 0 &&
- hashTarget.parentNode.parentNode.classList.contains('display-none')
- ) {
- hashTarget.parentNode.parentNode.classList.remove('display-none');
- }
- }
-}
-
-function scrollIntoView(targetId) {
- // Only scroll to element if we don't have a stored scroll position.
- if (targetId && !history.state) {
- var hashTarget = document.getElementById(targetId);
- if (hashTarget) {
- hashTarget.scrollIntoView();
- }
- }
-}
-
-function gotoCurrentTarget() {
- showHashTarget(location.hash.substring(1));
- scrollIntoView(location.hash.substring(1));
-}
-
-window.addEventListener('hashchange', gotoCurrentTarget);
-gotoCurrentTarget();
-
-var toclinks = document.getElementsByClassName('pre-open');
-for (var k = 0; k < toclinks.length; k++) {
- toclinks[k].addEventListener('mousedown', preOpen, false);
-}
-
-function preOpen() {
- showHashTarget(this.hash.substring(1));
-}
-
-var split_left = document.querySelector('#split-left');
-var split_right = document.querySelector('#split-right');
-var split_parent = split_left.parentNode;
-var cw_with_sb = split_left.clientWidth;
-split_left.style.overflow = 'hidden';
-var cw_without_sb = split_left.clientWidth;
-split_left.style.overflow = '';
-
-Split(['#split-left', '#split-right'], {
- elementStyle: function (dimension, size, gutterSize) {
- return {
- 'flex-basis': 'calc(' + size + '% - ' + gutterSize + 'px)'
- };
- },
- gutterStyle: function (dimension, gutterSize) {
- return {
- 'flex-basis': gutterSize + 'px'
- };
- },
- gutterSize: 20,
- sizes: [33, 67]
-});
-
-// Chrome doesn't remember scroll position properly so do it ourselves.
-// Also works on Firefox and Edge.
-
-function updateState() {
- history.replaceState(
- {
- left_top: split_left.scrollTop,
- right_top: split_right.scrollTop
- },
- document.title
- );
-}
-
-function loadState(ev) {
- if (ev) {
- // Edge doesn't replace change history.state on popstate.
- history.replaceState(ev.state, document.title);
- }
- if (history.state) {
- split_left.scrollTop = history.state.left_top;
- split_right.scrollTop = history.state.right_top;
- }
-}
-
-window.addEventListener('load', function () {
- // Restore after Firefox scrolls to hash.
- setTimeout(function () {
- loadState();
- // Update with initial scroll position.
- updateState();
- // Update scroll positions only after we've loaded because Firefox
- // emits an initial scroll event with 0.
- split_left.addEventListener('scroll', updateState);
- split_right.addEventListener('scroll', updateState);
- }, 1);
-});
-
-window.addEventListener('popstate', loadState);
diff --git a/docs/assets/split.css b/docs/assets/split.css
deleted file mode 100644
index 2d7779e..0000000
--- a/docs/assets/split.css
+++ /dev/null
@@ -1,15 +0,0 @@
-.gutter {
- background-color: #f5f5f5;
- background-repeat: no-repeat;
- background-position: 50%;
-}
-
-.gutter.gutter-vertical {
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFAQMAAABo7865AAAABlBMVEVHcEzMzMzyAv2sAAAAAXRSTlMAQObYZgAAABBJREFUeF5jOAMEEAIEEFwAn3kMwcB6I2AAAAAASUVORK5CYII=');
- cursor: ns-resize;
-}
-
-.gutter.gutter-horizontal {
- background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==');
- cursor: ew-resize;
-}
diff --git a/docs/assets/split.js b/docs/assets/split.js
deleted file mode 100644
index 71f9a60..0000000
--- a/docs/assets/split.js
+++ /dev/null
@@ -1,782 +0,0 @@
-/*! Split.js - v1.5.11 */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.Split = factory());
-}(this, (function () { 'use strict';
-
- // The programming goals of Split.js are to deliver readable, understandable and
- // maintainable code, while at the same time manually optimizing for tiny minified file size,
- // browser compatibility without additional requirements, graceful fallback (IE8 is supported)
- // and very few assumptions about the user's page layout.
- var global = window;
- var document = global.document;
-
- // Save a couple long function names that are used frequently.
- // This optimization saves around 400 bytes.
- var addEventListener = 'addEventListener';
- var removeEventListener = 'removeEventListener';
- var getBoundingClientRect = 'getBoundingClientRect';
- var gutterStartDragging = '_a';
- var aGutterSize = '_b';
- var bGutterSize = '_c';
- var HORIZONTAL = 'horizontal';
- var NOOP = function () { return false; };
-
- // Figure out if we're in IE8 or not. IE8 will still render correctly,
- // but will be static instead of draggable.
- var isIE8 = global.attachEvent && !global[addEventListener];
-
- // Helper function determines which prefixes of CSS calc we need.
- // We only need to do this once on startup, when this anonymous function is called.
- //
- // Tests -webkit, -moz and -o prefixes. Modified from StackOverflow:
- // http://stackoverflow.com/questions/16625140/js-feature-detection-to-detect-the-usage-of-webkit-calc-over-calc/16625167#16625167
- var calc = (['', '-webkit-', '-moz-', '-o-']
- .filter(function (prefix) {
- var el = document.createElement('div');
- el.style.cssText = "width:" + prefix + "calc(9px)";
-
- return !!el.style.length
- })
- .shift()) + "calc";
-
- // Helper function checks if its argument is a string-like type
- var isString = function (v) { return typeof v === 'string' || v instanceof String; };
-
- // Helper function allows elements and string selectors to be used
- // interchangeably. In either case an element is returned. This allows us to
- // do `Split([elem1, elem2])` as well as `Split(['#id1', '#id2'])`.
- var elementOrSelector = function (el) {
- if (isString(el)) {
- var ele = document.querySelector(el);
- if (!ele) {
- throw new Error(("Selector " + el + " did not match a DOM element"))
- }
- return ele
- }
-
- return el
- };
-
- // Helper function gets a property from the properties object, with a default fallback
- var getOption = function (options, propName, def) {
- var value = options[propName];
- if (value !== undefined) {
- return value
- }
- return def
- };
-
- var getGutterSize = function (gutterSize, isFirst, isLast, gutterAlign) {
- if (isFirst) {
- if (gutterAlign === 'end') {
- return 0
- }
- if (gutterAlign === 'center') {
- return gutterSize / 2
- }
- } else if (isLast) {
- if (gutterAlign === 'start') {
- return 0
- }
- if (gutterAlign === 'center') {
- return gutterSize / 2
- }
- }
-
- return gutterSize
- };
-
- // Default options
- var defaultGutterFn = function (i, gutterDirection) {
- var gut = document.createElement('div');
- gut.className = "gutter gutter-" + gutterDirection;
- return gut
- };
-
- var defaultElementStyleFn = function (dim, size, gutSize) {
- var style = {};
-
- if (!isString(size)) {
- if (!isIE8) {
- style[dim] = calc + "(" + size + "% - " + gutSize + "px)";
- } else {
- style[dim] = size + "%";
- }
- } else {
- style[dim] = size;
- }
-
- return style
- };
-
- var defaultGutterStyleFn = function (dim, gutSize) {
- var obj;
-
- return (( obj = {}, obj[dim] = (gutSize + "px"), obj ));
- };
-
- // The main function to initialize a split. Split.js thinks about each pair
- // of elements as an independant pair. Dragging the gutter between two elements
- // only changes the dimensions of elements in that pair. This is key to understanding
- // how the following functions operate, since each function is bound to a pair.
- //
- // A pair object is shaped like this:
- //
- // {
- // a: DOM element,
- // b: DOM element,
- // aMin: Number,
- // bMin: Number,
- // dragging: Boolean,
- // parent: DOM element,
- // direction: 'horizontal' | 'vertical'
- // }
- //
- // The basic sequence:
- //
- // 1. Set defaults to something sane. `options` doesn't have to be passed at all.
- // 2. Initialize a bunch of strings based on the direction we're splitting.
- // A lot of the behavior in the rest of the library is paramatized down to
- // rely on CSS strings and classes.
- // 3. Define the dragging helper functions, and a few helpers to go with them.
- // 4. Loop through the elements while pairing them off. Every pair gets an
- // `pair` object and a gutter.
- // 5. Actually size the pair elements, insert gutters and attach event listeners.
- var Split = function (idsOption, options) {
- if ( options === void 0 ) options = {};
-
- var ids = idsOption;
- var dimension;
- var clientAxis;
- var position;
- var positionEnd;
- var clientSize;
- var elements;
-
- // Allow HTMLCollection to be used as an argument when supported
- if (Array.from) {
- ids = Array.from(ids);
- }
-
- // All DOM elements in the split should have a common parent. We can grab
- // the first elements parent and hope users read the docs because the
- // behavior will be whacky otherwise.
- var firstElement = elementOrSelector(ids[0]);
- var parent = firstElement.parentNode;
- var parentStyle = getComputedStyle ? getComputedStyle(parent) : null;
- var parentFlexDirection = parentStyle ? parentStyle.flexDirection : null;
-
- // Set default options.sizes to equal percentages of the parent element.
- var sizes = getOption(options, 'sizes') || ids.map(function () { return 100 / ids.length; });
-
- // Standardize minSize to an array if it isn't already. This allows minSize
- // to be passed as a number.
- var minSize = getOption(options, 'minSize', 100);
- var minSizes = Array.isArray(minSize) ? minSize : ids.map(function () { return minSize; });
-
- // Get other options
- var expandToMin = getOption(options, 'expandToMin', false);
- var gutterSize = getOption(options, 'gutterSize', 10);
- var gutterAlign = getOption(options, 'gutterAlign', 'center');
- var snapOffset = getOption(options, 'snapOffset', 30);
- var dragInterval = getOption(options, 'dragInterval', 1);
- var direction = getOption(options, 'direction', HORIZONTAL);
- var cursor = getOption(
- options,
- 'cursor',
- direction === HORIZONTAL ? 'col-resize' : 'row-resize'
- );
- var gutter = getOption(options, 'gutter', defaultGutterFn);
- var elementStyle = getOption(
- options,
- 'elementStyle',
- defaultElementStyleFn
- );
- var gutterStyle = getOption(options, 'gutterStyle', defaultGutterStyleFn);
-
- // 2. Initialize a bunch of strings based on the direction we're splitting.
- // A lot of the behavior in the rest of the library is paramatized down to
- // rely on CSS strings and classes.
- if (direction === HORIZONTAL) {
- dimension = 'width';
- clientAxis = 'clientX';
- position = 'left';
- positionEnd = 'right';
- clientSize = 'clientWidth';
- } else if (direction === 'vertical') {
- dimension = 'height';
- clientAxis = 'clientY';
- position = 'top';
- positionEnd = 'bottom';
- clientSize = 'clientHeight';
- }
-
- // 3. Define the dragging helper functions, and a few helpers to go with them.
- // Each helper is bound to a pair object that contains its metadata. This
- // also makes it easy to store references to listeners that that will be
- // added and removed.
- //
- // Even though there are no other functions contained in them, aliasing
- // this to self saves 50 bytes or so since it's used so frequently.
- //
- // The pair object saves metadata like dragging state, position and
- // event listener references.
-
- function setElementSize(el, size, gutSize, i) {
- // Split.js allows setting sizes via numbers (ideally), or if you must,
- // by string, like '300px'. This is less than ideal, because it breaks
- // the fluid layout that `calc(% - px)` provides. You're on your own if you do that,
- // make sure you calculate the gutter size by hand.
- var style = elementStyle(dimension, size, gutSize, i);
-
- Object.keys(style).forEach(function (prop) {
- // eslint-disable-next-line no-param-reassign
- el.style[prop] = style[prop];
- });
- }
-
- function setGutterSize(gutterElement, gutSize, i) {
- var style = gutterStyle(dimension, gutSize, i);
-
- Object.keys(style).forEach(function (prop) {
- // eslint-disable-next-line no-param-reassign
- gutterElement.style[prop] = style[prop];
- });
- }
-
- function getSizes() {
- return elements.map(function (element) { return element.size; })
- }
-
- // Supports touch events, but not multitouch, so only the first
- // finger `touches[0]` is counted.
- function getMousePosition(e) {
- if ('touches' in e) { return e.touches[0][clientAxis] }
- return e[clientAxis]
- }
-
- // Actually adjust the size of elements `a` and `b` to `offset` while dragging.
- // calc is used to allow calc(percentage + gutterpx) on the whole split instance,
- // which allows the viewport to be resized without additional logic.
- // Element a's size is the same as offset. b's size is total size - a size.
- // Both sizes are calculated from the initial parent percentage,
- // then the gutter size is subtracted.
- function adjust(offset) {
- var a = elements[this.a];
- var b = elements[this.b];
- var percentage = a.size + b.size;
-
- a.size = (offset / this.size) * percentage;
- b.size = percentage - (offset / this.size) * percentage;
-
- setElementSize(a.element, a.size, this[aGutterSize], a.i);
- setElementSize(b.element, b.size, this[bGutterSize], b.i);
- }
-
- // drag, where all the magic happens. The logic is really quite simple:
- //
- // 1. Ignore if the pair is not dragging.
- // 2. Get the offset of the event.
- // 3. Snap offset to min if within snappable range (within min + snapOffset).
- // 4. Actually adjust each element in the pair to offset.
- //
- // ---------------------------------------------------------------------
- // | | <- a.minSize || b.minSize -> | |
- // | | | <- this.snapOffset || this.snapOffset -> | | |
- // | | | || | | |
- // | | | || | | |
- // ---------------------------------------------------------------------
- // | <- this.start this.size -> |
- function drag(e) {
- var offset;
- var a = elements[this.a];
- var b = elements[this.b];
-
- if (!this.dragging) { return }
-
- // Get the offset of the event from the first side of the
- // pair `this.start`. Then offset by the initial position of the
- // mouse compared to the gutter size.
- offset =
- getMousePosition(e) -
- this.start +
- (this[aGutterSize] - this.dragOffset);
-
- if (dragInterval > 1) {
- offset = Math.round(offset / dragInterval) * dragInterval;
- }
-
- // If within snapOffset of min or max, set offset to min or max.
- // snapOffset buffers a.minSize and b.minSize, so logic is opposite for both.
- // Include the appropriate gutter sizes to prevent overflows.
- if (offset <= a.minSize + snapOffset + this[aGutterSize]) {
- offset = a.minSize + this[aGutterSize];
- } else if (
- offset >=
- this.size - (b.minSize + snapOffset + this[bGutterSize])
- ) {
- offset = this.size - (b.minSize + this[bGutterSize]);
- }
-
- // Actually adjust the size.
- adjust.call(this, offset);
-
- // Call the drag callback continously. Don't do anything too intensive
- // in this callback.
- getOption(options, 'onDrag', NOOP)();
- }
-
- // Cache some important sizes when drag starts, so we don't have to do that
- // continously:
- //
- // `size`: The total size of the pair. First + second + first gutter + second gutter.
- // `start`: The leading side of the first element.
- //
- // ------------------------------------------------
- // | aGutterSize -> ||| |
- // | ||| |
- // | ||| |
- // | ||| <- bGutterSize |
- // ------------------------------------------------
- // | <- start size -> |
- function calculateSizes() {
- // Figure out the parent size minus padding.
- var a = elements[this.a].element;
- var b = elements[this.b].element;
-
- var aBounds = a[getBoundingClientRect]();
- var bBounds = b[getBoundingClientRect]();
-
- this.size =
- aBounds[dimension] +
- bBounds[dimension] +
- this[aGutterSize] +
- this[bGutterSize];
- this.start = aBounds[position];
- this.end = aBounds[positionEnd];
- }
-
- function innerSize(element) {
- // Return nothing if getComputedStyle is not supported (< IE9)
- // Or if parent element has no layout yet
- if (!getComputedStyle) { return null }
-
- var computedStyle = getComputedStyle(element);
-
- if (!computedStyle) { return null }
-
- var size = element[clientSize];
-
- if (size === 0) { return null }
-
- if (direction === HORIZONTAL) {
- size -=
- parseFloat(computedStyle.paddingLeft) +
- parseFloat(computedStyle.paddingRight);
- } else {
- size -=
- parseFloat(computedStyle.paddingTop) +
- parseFloat(computedStyle.paddingBottom);
- }
-
- return size
- }
-
- // When specifying percentage sizes that are less than the computed
- // size of the element minus the gutter, the lesser percentages must be increased
- // (and decreased from the other elements) to make space for the pixels
- // subtracted by the gutters.
- function trimToMin(sizesToTrim) {
- // Try to get inner size of parent element.
- // If it's no supported, return original sizes.
- var parentSize = innerSize(parent);
- if (parentSize === null) {
- return sizesToTrim
- }
-
- if (minSizes.reduce(function (a, b) { return a + b; }, 0) > parentSize) {
- return sizesToTrim
- }
-
- // Keep track of the excess pixels, the amount of pixels over the desired percentage
- // Also keep track of the elements with pixels to spare, to decrease after if needed
- var excessPixels = 0;
- var toSpare = [];
-
- var pixelSizes = sizesToTrim.map(function (size, i) {
- // Convert requested percentages to pixel sizes
- var pixelSize = (parentSize * size) / 100;
- var elementGutterSize = getGutterSize(
- gutterSize,
- i === 0,
- i === sizesToTrim.length - 1,
- gutterAlign
- );
- var elementMinSize = minSizes[i] + elementGutterSize;
-
- // If element is too smal, increase excess pixels by the difference
- // and mark that it has no pixels to spare
- if (pixelSize < elementMinSize) {
- excessPixels += elementMinSize - pixelSize;
- toSpare.push(0);
- return elementMinSize
- }
-
- // Otherwise, mark the pixels it has to spare and return it's original size
- toSpare.push(pixelSize - elementMinSize);
- return pixelSize
- });
-
- // If nothing was adjusted, return the original sizes
- if (excessPixels === 0) {
- return sizesToTrim
- }
-
- return pixelSizes.map(function (pixelSize, i) {
- var newPixelSize = pixelSize;
-
- // While there's still pixels to take, and there's enough pixels to spare,
- // take as many as possible up to the total excess pixels
- if (excessPixels > 0 && toSpare[i] - excessPixels > 0) {
- var takenPixels = Math.min(
- excessPixels,
- toSpare[i] - excessPixels
- );
-
- // Subtract the amount taken for the next iteration
- excessPixels -= takenPixels;
- newPixelSize = pixelSize - takenPixels;
- }
-
- // Return the pixel size adjusted as a percentage
- return (newPixelSize / parentSize) * 100
- })
- }
-
- // stopDragging is very similar to startDragging in reverse.
- function stopDragging() {
- var self = this;
- var a = elements[self.a].element;
- var b = elements[self.b].element;
-
- if (self.dragging) {
- getOption(options, 'onDragEnd', NOOP)(getSizes());
- }
-
- self.dragging = false;
-
- // Remove the stored event listeners. This is why we store them.
- global[removeEventListener]('mouseup', self.stop);
- global[removeEventListener]('touchend', self.stop);
- global[removeEventListener]('touchcancel', self.stop);
- global[removeEventListener]('mousemove', self.move);
- global[removeEventListener]('touchmove', self.move);
-
- // Clear bound function references
- self.stop = null;
- self.move = null;
-
- a[removeEventListener]('selectstart', NOOP);
- a[removeEventListener]('dragstart', NOOP);
- b[removeEventListener]('selectstart', NOOP);
- b[removeEventListener]('dragstart', NOOP);
-
- a.style.userSelect = '';
- a.style.webkitUserSelect = '';
- a.style.MozUserSelect = '';
- a.style.pointerEvents = '';
-
- b.style.userSelect = '';
- b.style.webkitUserSelect = '';
- b.style.MozUserSelect = '';
- b.style.pointerEvents = '';
-
- self.gutter.style.cursor = '';
- self.parent.style.cursor = '';
- document.body.style.cursor = '';
- }
-
- // startDragging calls `calculateSizes` to store the inital size in the pair object.
- // It also adds event listeners for mouse/touch events,
- // and prevents selection while dragging so avoid the selecting text.
- function startDragging(e) {
- // Right-clicking can't start dragging.
- if ('button' in e && e.button !== 0) {
- return
- }
-
- // Alias frequently used variables to save space. 200 bytes.
- var self = this;
- var a = elements[self.a].element;
- var b = elements[self.b].element;
-
- // Call the onDragStart callback.
- if (!self.dragging) {
- getOption(options, 'onDragStart', NOOP)(getSizes());
- }
-
- // Don't actually drag the element. We emulate that in the drag function.
- e.preventDefault();
-
- // Set the dragging property of the pair object.
- self.dragging = true;
-
- // Create two event listeners bound to the same pair object and store
- // them in the pair object.
- self.move = drag.bind(self);
- self.stop = stopDragging.bind(self);
-
- // All the binding. `window` gets the stop events in case we drag out of the elements.
- global[addEventListener]('mouseup', self.stop);
- global[addEventListener]('touchend', self.stop);
- global[addEventListener]('touchcancel', self.stop);
- global[addEventListener]('mousemove', self.move);
- global[addEventListener]('touchmove', self.move);
-
- // Disable selection. Disable!
- a[addEventListener]('selectstart', NOOP);
- a[addEventListener]('dragstart', NOOP);
- b[addEventListener]('selectstart', NOOP);
- b[addEventListener]('dragstart', NOOP);
-
- a.style.userSelect = 'none';
- a.style.webkitUserSelect = 'none';
- a.style.MozUserSelect = 'none';
- a.style.pointerEvents = 'none';
-
- b.style.userSelect = 'none';
- b.style.webkitUserSelect = 'none';
- b.style.MozUserSelect = 'none';
- b.style.pointerEvents = 'none';
-
- // Set the cursor at multiple levels
- self.gutter.style.cursor = cursor;
- self.parent.style.cursor = cursor;
- document.body.style.cursor = cursor;
-
- // Cache the initial sizes of the pair.
- calculateSizes.call(self);
-
- // Determine the position of the mouse compared to the gutter
- self.dragOffset = getMousePosition(e) - self.end;
- }
-
- // adjust sizes to ensure percentage is within min size and gutter.
- sizes = trimToMin(sizes);
-
- // 5. Create pair and element objects. Each pair has an index reference to
- // elements `a` and `b` of the pair (first and second elements).
- // Loop through the elements while pairing them off. Every pair gets a
- // `pair` object and a gutter.
- //
- // Basic logic:
- //
- // - Starting with the second element `i > 0`, create `pair` objects with
- // `a = i - 1` and `b = i`
- // - Set gutter sizes based on the _pair_ being first/last. The first and last
- // pair have gutterSize / 2, since they only have one half gutter, and not two.
- // - Create gutter elements and add event listeners.
- // - Set the size of the elements, minus the gutter sizes.
- //
- // -----------------------------------------------------------------------
- // | i=0 | i=1 | i=2 | i=3 |
- // | | | | |
- // | pair 0 pair 1 pair 2 |
- // | | | | |
- // -----------------------------------------------------------------------
- var pairs = [];
- elements = ids.map(function (id, i) {
- // Create the element object.
- var element = {
- element: elementOrSelector(id),
- size: sizes[i],
- minSize: minSizes[i],
- i: i,
- };
-
- var pair;
-
- if (i > 0) {
- // Create the pair object with its metadata.
- pair = {
- a: i - 1,
- b: i,
- dragging: false,
- direction: direction,
- parent: parent,
- };
-
- pair[aGutterSize] = getGutterSize(
- gutterSize,
- i - 1 === 0,
- false,
- gutterAlign
- );
- pair[bGutterSize] = getGutterSize(
- gutterSize,
- false,
- i === ids.length - 1,
- gutterAlign
- );
-
- // if the parent has a reverse flex-direction, switch the pair elements.
- if (
- parentFlexDirection === 'row-reverse' ||
- parentFlexDirection === 'column-reverse'
- ) {
- var temp = pair.a;
- pair.a = pair.b;
- pair.b = temp;
- }
- }
-
- // Determine the size of the current element. IE8 is supported by
- // staticly assigning sizes without draggable gutters. Assigns a string
- // to `size`.
- //
- // IE9 and above
- if (!isIE8) {
- // Create gutter elements for each pair.
- if (i > 0) {
- var gutterElement = gutter(i, direction, element.element);
- setGutterSize(gutterElement, gutterSize, i);
-
- // Save bound event listener for removal later
- pair[gutterStartDragging] = startDragging.bind(pair);
-
- // Attach bound event listener
- gutterElement[addEventListener](
- 'mousedown',
- pair[gutterStartDragging]
- );
- gutterElement[addEventListener](
- 'touchstart',
- pair[gutterStartDragging]
- );
-
- parent.insertBefore(gutterElement, element.element);
-
- pair.gutter = gutterElement;
- }
- }
-
- setElementSize(
- element.element,
- element.size,
- getGutterSize(
- gutterSize,
- i === 0,
- i === ids.length - 1,
- gutterAlign
- ),
- i
- );
-
- // After the first iteration, and we have a pair object, append it to the
- // list of pairs.
- if (i > 0) {
- pairs.push(pair);
- }
-
- return element
- });
-
- function adjustToMin(element) {
- var isLast = element.i === pairs.length;
- var pair = isLast ? pairs[element.i - 1] : pairs[element.i];
-
- calculateSizes.call(pair);
-
- var size = isLast
- ? pair.size - element.minSize - pair[bGutterSize]
- : element.minSize + pair[aGutterSize];
-
- adjust.call(pair, size);
- }
-
- elements.forEach(function (element) {
- var computedSize = element.element[getBoundingClientRect]()[dimension];
-
- if (computedSize < element.minSize) {
- if (expandToMin) {
- adjustToMin(element);
- } else {
- // eslint-disable-next-line no-param-reassign
- element.minSize = computedSize;
- }
- }
- });
-
- function setSizes(newSizes) {
- var trimmed = trimToMin(newSizes);
- trimmed.forEach(function (newSize, i) {
- if (i > 0) {
- var pair = pairs[i - 1];
-
- var a = elements[pair.a];
- var b = elements[pair.b];
-
- a.size = trimmed[i - 1];
- b.size = newSize;
-
- setElementSize(a.element, a.size, pair[aGutterSize], a.i);
- setElementSize(b.element, b.size, pair[bGutterSize], b.i);
- }
- });
- }
-
- function destroy(preserveStyles, preserveGutter) {
- pairs.forEach(function (pair) {
- if (preserveGutter !== true) {
- pair.parent.removeChild(pair.gutter);
- } else {
- pair.gutter[removeEventListener](
- 'mousedown',
- pair[gutterStartDragging]
- );
- pair.gutter[removeEventListener](
- 'touchstart',
- pair[gutterStartDragging]
- );
- }
-
- if (preserveStyles !== true) {
- var style = elementStyle(
- dimension,
- pair.a.size,
- pair[aGutterSize]
- );
-
- Object.keys(style).forEach(function (prop) {
- elements[pair.a].element.style[prop] = '';
- elements[pair.b].element.style[prop] = '';
- });
- }
- });
- }
-
- if (isIE8) {
- return {
- setSizes: setSizes,
- destroy: destroy,
- }
- }
-
- return {
- setSizes: setSizes,
- getSizes: getSizes,
- collapse: function collapse(i) {
- adjustToMin(elements[i]);
- },
- destroy: destroy,
- parent: parent,
- pairs: pairs,
- }
- };
-
- return Split;
-
-})));
diff --git a/docs/assets/style.css b/docs/assets/style.css
index 0618f43..98a4377 100644
--- a/docs/assets/style.css
+++ b/docs/assets/style.css
@@ -1,147 +1,1414 @@
-.documentation {
- font-family: Helvetica, sans-serif;
- color: #666;
- line-height: 1.5;
- background: #f5f5f5;
+:root {
+ /* Light */
+ --light-color-background: #f2f4f8;
+ --light-color-background-secondary: #eff0f1;
+ --light-color-warning-text: #222;
+ --light-color-background-warning: #e6e600;
+ --light-color-icon-background: var(--light-color-background);
+ --light-color-accent: #c5c7c9;
+ --light-color-active-menu-item: var(--light-color-accent);
+ --light-color-text: #222;
+ --light-color-text-aside: #6e6e6e;
+ --light-color-link: #1f70c2;
+
+ --light-color-ts-keyword: #056bd6;
+ --light-color-ts-project: #b111c9;
+ --light-color-ts-module: var(--light-color-ts-project);
+ --light-color-ts-namespace: var(--light-color-ts-project);
+ --light-color-ts-enum: #7e6f15;
+ --light-color-ts-enum-member: var(--light-color-ts-enum);
+ --light-color-ts-variable: #4760ec;
+ --light-color-ts-function: #572be7;
+ --light-color-ts-class: #1f70c2;
+ --light-color-ts-interface: #108024;
+ --light-color-ts-constructor: var(--light-color-ts-class);
+ --light-color-ts-property: var(--light-color-ts-variable);
+ --light-color-ts-method: var(--light-color-ts-function);
+ --light-color-ts-call-signature: var(--light-color-ts-method);
+ --light-color-ts-index-signature: var(--light-color-ts-property);
+ --light-color-ts-constructor-signature: var(--light-color-ts-constructor);
+ --light-color-ts-parameter: var(--light-color-ts-variable);
+ /* type literal not included as links will never be generated to it */
+ --light-color-ts-type-parameter: #a55c0e;
+ --light-color-ts-accessor: var(--light-color-ts-property);
+ --light-color-ts-get-signature: var(--light-color-ts-accessor);
+ --light-color-ts-set-signature: var(--light-color-ts-accessor);
+ --light-color-ts-type-alias: #d51270;
+ /* reference not included as links will be colored with the kind that it points to */
+
+ --light-external-icon: url("data:image/svg+xml;utf8, ");
+ --light-color-scheme: light;
+
+ /* Dark */
+ --dark-color-background: #2b2e33;
+ --dark-color-background-secondary: #1e2024;
+ --dark-color-background-warning: #bebe00;
+ --dark-color-warning-text: #222;
+ --dark-color-icon-background: var(--dark-color-background-secondary);
+ --dark-color-accent: #9096a2;
+ --dark-color-active-menu-item: #5d5d6a;
+ --dark-color-text: #f5f5f5;
+ --dark-color-text-aside: #dddddd;
+ --dark-color-link: #00aff4;
+
+ --dark-color-ts-keyword: #3399ff;
+ --dark-color-ts-project: #e358ff;
+ --dark-color-ts-module: var(--dark-color-ts-project);
+ --dark-color-ts-namespace: var(--dark-color-ts-project);
+ --dark-color-ts-enum: #f4d93e;
+ --dark-color-ts-enum-member: var(--dark-color-ts-enum);
+ --dark-color-ts-variable: #798dff;
+ --dark-color-ts-function: #a280ff;
+ --dark-color-ts-class: #8ac4ff;
+ --dark-color-ts-interface: #6cff87;
+ --dark-color-ts-constructor: var(--dark-color-ts-class);
+ --dark-color-ts-property: var(--dark-color-ts-variable);
+ --dark-color-ts-method: var(--dark-color-ts-function);
+ --dark-color-ts-call-signature: var(--dark-color-ts-method);
+ --dark-color-ts-index-signature: var(--dark-color-ts-property);
+ --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor);
+ --dark-color-ts-parameter: var(--dark-color-ts-variable);
+ /* type literal not included as links will never be generated to it */
+ --dark-color-ts-type-parameter: #e07d13;
+ --dark-color-ts-accessor: var(--dark-color-ts-property);
+ --dark-color-ts-get-signature: var(--dark-color-ts-accessor);
+ --dark-color-ts-set-signature: var(--dark-color-ts-accessor);
+ --dark-color-ts-type-alias: #ff6492;
+ /* reference not included as links will be colored with the kind that it points to */
+
+ --dark-external-icon: url("data:image/svg+xml;utf8, ");
+ --dark-color-scheme: dark;
+}
+
+@media (prefers-color-scheme: light) {
+ :root {
+ --color-background: var(--light-color-background);
+ --color-background-secondary: var(--light-color-background-secondary);
+ --color-background-warning: var(--light-color-background-warning);
+ --color-warning-text: var(--light-color-warning-text);
+ --color-icon-background: var(--light-color-icon-background);
+ --color-accent: var(--light-color-accent);
+ --color-active-menu-item: var(--light-color-active-menu-item);
+ --color-text: var(--light-color-text);
+ --color-text-aside: var(--light-color-text-aside);
+ --color-link: var(--light-color-link);
+
+ --color-ts-keyword: var(--light-color-ts-keyword);
+ --color-ts-module: var(--light-color-ts-module);
+ --color-ts-namespace: var(--light-color-ts-namespace);
+ --color-ts-enum: var(--light-color-ts-enum);
+ --color-ts-enum-member: var(--light-color-ts-enum-member);
+ --color-ts-variable: var(--light-color-ts-variable);
+ --color-ts-function: var(--light-color-ts-function);
+ --color-ts-class: var(--light-color-ts-class);
+ --color-ts-interface: var(--light-color-ts-interface);
+ --color-ts-constructor: var(--light-color-ts-constructor);
+ --color-ts-property: var(--light-color-ts-property);
+ --color-ts-method: var(--light-color-ts-method);
+ --color-ts-call-signature: var(--light-color-ts-call-signature);
+ --color-ts-index-signature: var(--light-color-ts-index-signature);
+ --color-ts-constructor-signature: var(
+ --light-color-ts-constructor-signature
+ );
+ --color-ts-parameter: var(--light-color-ts-parameter);
+ --color-ts-type-parameter: var(--light-color-ts-type-parameter);
+ --color-ts-accessor: var(--light-color-ts-accessor);
+ --color-ts-get-signature: var(--light-color-ts-get-signature);
+ --color-ts-set-signature: var(--light-color-ts-set-signature);
+ --color-ts-type-alias: var(--light-color-ts-type-alias);
+
+ --external-icon: var(--light-external-icon);
+ --color-scheme: var(--light-color-scheme);
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --color-background: var(--dark-color-background);
+ --color-background-secondary: var(--dark-color-background-secondary);
+ --color-background-warning: var(--dark-color-background-warning);
+ --color-warning-text: var(--dark-color-warning-text);
+ --color-icon-background: var(--dark-color-icon-background);
+ --color-accent: var(--dark-color-accent);
+ --color-active-menu-item: var(--dark-color-active-menu-item);
+ --color-text: var(--dark-color-text);
+ --color-text-aside: var(--dark-color-text-aside);
+ --color-link: var(--dark-color-link);
+
+ --color-ts-keyword: var(--dark-color-ts-keyword);
+ --color-ts-module: var(--dark-color-ts-module);
+ --color-ts-namespace: var(--dark-color-ts-namespace);
+ --color-ts-enum: var(--dark-color-ts-enum);
+ --color-ts-enum-member: var(--dark-color-ts-enum-member);
+ --color-ts-variable: var(--dark-color-ts-variable);
+ --color-ts-function: var(--dark-color-ts-function);
+ --color-ts-class: var(--dark-color-ts-class);
+ --color-ts-interface: var(--dark-color-ts-interface);
+ --color-ts-constructor: var(--dark-color-ts-constructor);
+ --color-ts-property: var(--dark-color-ts-property);
+ --color-ts-method: var(--dark-color-ts-method);
+ --color-ts-call-signature: var(--dark-color-ts-call-signature);
+ --color-ts-index-signature: var(--dark-color-ts-index-signature);
+ --color-ts-constructor-signature: var(
+ --dark-color-ts-constructor-signature
+ );
+ --color-ts-parameter: var(--dark-color-ts-parameter);
+ --color-ts-type-parameter: var(--dark-color-ts-type-parameter);
+ --color-ts-accessor: var(--dark-color-ts-accessor);
+ --color-ts-get-signature: var(--dark-color-ts-get-signature);
+ --color-ts-set-signature: var(--dark-color-ts-set-signature);
+ --color-ts-type-alias: var(--dark-color-ts-type-alias);
+
+ --external-icon: var(--dark-external-icon);
+ --color-scheme: var(--dark-color-scheme);
+ }
+}
+
+html {
+ color-scheme: var(--color-scheme);
+}
+
+body {
+ margin: 0;
+}
+
+:root[data-theme="light"] {
+ --color-background: var(--light-color-background);
+ --color-background-secondary: var(--light-color-background-secondary);
+ --color-background-warning: var(--light-color-background-warning);
+ --color-warning-text: var(--light-color-warning-text);
+ --color-icon-background: var(--light-color-icon-background);
+ --color-accent: var(--light-color-accent);
+ --color-active-menu-item: var(--light-color-active-menu-item);
+ --color-text: var(--light-color-text);
+ --color-text-aside: var(--light-color-text-aside);
+ --color-link: var(--light-color-link);
+
+ --color-ts-keyword: var(--light-color-ts-keyword);
+ --color-ts-module: var(--light-color-ts-module);
+ --color-ts-namespace: var(--light-color-ts-namespace);
+ --color-ts-enum: var(--light-color-ts-enum);
+ --color-ts-enum-member: var(--light-color-ts-enum-member);
+ --color-ts-variable: var(--light-color-ts-variable);
+ --color-ts-function: var(--light-color-ts-function);
+ --color-ts-class: var(--light-color-ts-class);
+ --color-ts-interface: var(--light-color-ts-interface);
+ --color-ts-constructor: var(--light-color-ts-constructor);
+ --color-ts-property: var(--light-color-ts-property);
+ --color-ts-method: var(--light-color-ts-method);
+ --color-ts-call-signature: var(--light-color-ts-call-signature);
+ --color-ts-index-signature: var(--light-color-ts-index-signature);
+ --color-ts-constructor-signature: var(
+ --light-color-ts-constructor-signature
+ );
+ --color-ts-parameter: var(--light-color-ts-parameter);
+ --color-ts-type-parameter: var(--light-color-ts-type-parameter);
+ --color-ts-accessor: var(--light-color-ts-accessor);
+ --color-ts-get-signature: var(--light-color-ts-get-signature);
+ --color-ts-set-signature: var(--light-color-ts-set-signature);
+ --color-ts-type-alias: var(--light-color-ts-type-alias);
+
+ --external-icon: var(--light-external-icon);
+ --color-scheme: var(--light-color-scheme);
+}
+
+:root[data-theme="dark"] {
+ --color-background: var(--dark-color-background);
+ --color-background-secondary: var(--dark-color-background-secondary);
+ --color-background-warning: var(--dark-color-background-warning);
+ --color-warning-text: var(--dark-color-warning-text);
+ --color-icon-background: var(--dark-color-icon-background);
+ --color-accent: var(--dark-color-accent);
+ --color-active-menu-item: var(--dark-color-active-menu-item);
+ --color-text: var(--dark-color-text);
+ --color-text-aside: var(--dark-color-text-aside);
+ --color-link: var(--dark-color-link);
+
+ --color-ts-keyword: var(--dark-color-ts-keyword);
+ --color-ts-module: var(--dark-color-ts-module);
+ --color-ts-namespace: var(--dark-color-ts-namespace);
+ --color-ts-enum: var(--dark-color-ts-enum);
+ --color-ts-enum-member: var(--dark-color-ts-enum-member);
+ --color-ts-variable: var(--dark-color-ts-variable);
+ --color-ts-function: var(--dark-color-ts-function);
+ --color-ts-class: var(--dark-color-ts-class);
+ --color-ts-interface: var(--dark-color-ts-interface);
+ --color-ts-constructor: var(--dark-color-ts-constructor);
+ --color-ts-property: var(--dark-color-ts-property);
+ --color-ts-method: var(--dark-color-ts-method);
+ --color-ts-call-signature: var(--dark-color-ts-call-signature);
+ --color-ts-index-signature: var(--dark-color-ts-index-signature);
+ --color-ts-constructor-signature: var(
+ --dark-color-ts-constructor-signature
+ );
+ --color-ts-parameter: var(--dark-color-ts-parameter);
+ --color-ts-type-parameter: var(--dark-color-ts-type-parameter);
+ --color-ts-accessor: var(--dark-color-ts-accessor);
+ --color-ts-get-signature: var(--dark-color-ts-get-signature);
+ --color-ts-set-signature: var(--dark-color-ts-set-signature);
+ --color-ts-type-alias: var(--dark-color-ts-type-alias);
+
+ --external-icon: var(--dark-external-icon);
+ --color-scheme: var(--dark-color-scheme);
+}
+
+.always-visible,
+.always-visible .tsd-signatures {
+ display: inherit !important;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ line-height: 1.2;
+}
+
+h1 > a:not(.link),
+h2 > a:not(.link),
+h3 > a:not(.link),
+h4 > a:not(.link),
+h5 > a:not(.link),
+h6 > a:not(.link) {
+ text-decoration: none;
+ color: var(--color-text);
+}
+
+h1 {
+ font-size: 1.875rem;
+ margin: 0.67rem 0;
}
-.black {
- color: #666;
+h2 {
+ font-size: 1.5rem;
+ margin: 0.83rem 0;
}
-.bg-white {
- background-color: #fff;
+h3 {
+ font-size: 1.25rem;
+ margin: 1rem 0;
}
h4 {
- margin: 20px 0 10px 0;
+ font-size: 1.05rem;
+ margin: 1.33rem 0;
}
-.documentation h3 {
- color: #000;
+h5 {
+ font-size: 1rem;
+ margin: 1.5rem 0;
}
-.border-bottom {
- border-color: #ddd;
+h6 {
+ font-size: 0.875rem;
+ margin: 2.33rem 0;
}
-a {
- color: #1184ce;
- text-decoration: none;
+.uppercase {
+ text-transform: uppercase;
+}
+
+dl,
+menu,
+ol,
+ul {
+ margin: 1em 0;
+}
+
+dd {
+ margin: 0 0 0 40px;
+}
+
+.container {
+ max-width: 1700px;
+ padding: 0 2rem;
+}
+
+/* Footer */
+.tsd-generator {
+ border-top: 1px solid var(--color-accent);
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+ max-height: 3.5rem;
+}
+
+.tsd-generator > p {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding: 0 1rem;
+}
+
+.container-main {
+ margin: 0 auto;
+ /* toolbar, footer, margin */
+ min-height: calc(100vh - 41px - 56px - 4rem);
}
-.documentation a[href]:hover {
- text-decoration: underline;
+@keyframes fade-in {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+@keyframes fade-out {
+ from {
+ opacity: 1;
+ visibility: visible;
+ }
+ to {
+ opacity: 0;
+ }
+}
+@keyframes fade-in-delayed {
+ 0% {
+ opacity: 0;
+ }
+ 33% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+@keyframes fade-out-delayed {
+ 0% {
+ opacity: 1;
+ visibility: visible;
+ }
+ 66% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 0;
+ }
+}
+@keyframes pop-in-from-right {
+ from {
+ transform: translate(100%, 0);
+ }
+ to {
+ transform: translate(0, 0);
+ }
+}
+@keyframes pop-out-to-right {
+ from {
+ transform: translate(0, 0);
+ visibility: visible;
+ }
+ to {
+ transform: translate(100%, 0);
+ }
+}
+body {
+ background: var(--color-background);
+ font-family: "Segoe UI", sans-serif;
+ font-size: 16px;
+ color: var(--color-text);
}
+a {
+ color: var(--color-link);
+ text-decoration: none;
+}
a:hover {
- cursor: pointer;
+ text-decoration: underline;
+}
+a.external[target="_blank"] {
+ background-image: var(--external-icon);
+ background-position: top 3px right;
+ background-repeat: no-repeat;
+ padding-right: 13px;
+}
+
+code,
+pre {
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+ padding: 0.2em;
+ margin: 0;
+ font-size: 0.875rem;
+ border-radius: 0.8em;
+}
+
+pre {
+ position: relative;
+ white-space: pre;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+ padding: 10px;
+ border: 1px solid var(--color-accent);
+}
+pre code {
+ padding: 0;
+ font-size: 100%;
+}
+pre > button {
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ opacity: 0;
+ transition: opacity 0.1s;
+ box-sizing: border-box;
+}
+pre:hover > button,
+pre > button.visible {
+ opacity: 1;
+}
+
+blockquote {
+ margin: 1em 0;
+ padding-left: 1em;
+ border-left: 4px solid gray;
}
-.py1-ul li {
- padding: 5px 0;
+.tsd-typography {
+ line-height: 1.333em;
+}
+.tsd-typography ul {
+ list-style: square;
+ padding: 0 0 0 20px;
+ margin: 0;
+}
+.tsd-typography .tsd-index-panel h3,
+.tsd-index-panel .tsd-typography h3,
+.tsd-typography h4,
+.tsd-typography h5,
+.tsd-typography h6 {
+ font-size: 1em;
+}
+.tsd-typography h5,
+.tsd-typography h6 {
+ font-weight: normal;
+}
+.tsd-typography p,
+.tsd-typography ul,
+.tsd-typography ol {
+ margin: 1em 0;
+}
+.tsd-typography table {
+ border-collapse: collapse;
+ border: none;
+}
+.tsd-typography td,
+.tsd-typography th {
+ padding: 6px 13px;
+ border: 1px solid var(--color-accent);
+}
+.tsd-typography thead,
+.tsd-typography tr:nth-child(even) {
+ background-color: var(--color-background-secondary);
}
-.max-height-100 {
- max-height: 100%;
+.tsd-breadcrumb {
+ margin: 0;
+ padding: 0;
+ color: var(--color-text-aside);
+}
+.tsd-breadcrumb a {
+ color: var(--color-text-aside);
+ text-decoration: none;
+}
+.tsd-breadcrumb a:hover {
+ text-decoration: underline;
+}
+.tsd-breadcrumb li {
+ display: inline;
+}
+.tsd-breadcrumb li:after {
+ content: " / ";
}
-.height-viewport-100 {
- height: 100vh;
+.tsd-comment-tags {
+ display: flex;
+ flex-direction: column;
+}
+dl.tsd-comment-tag-group {
+ display: flex;
+ align-items: center;
+ overflow: hidden;
+ margin: 0.5em 0;
+}
+dl.tsd-comment-tag-group dt {
+ display: flex;
+ margin-right: 0.5em;
+ font-size: 0.875em;
+ font-weight: normal;
+}
+dl.tsd-comment-tag-group dd {
+ margin: 0;
+}
+code.tsd-tag {
+ padding: 0.25em 0.4em;
+ border: 0.1em solid var(--color-accent);
+ margin-right: 0.25em;
+ font-size: 70%;
+}
+h1 code.tsd-tag:first-of-type {
+ margin-left: 0.25em;
}
-section:target h3 {
- font-weight: 700;
+dl.tsd-comment-tag-group dd:before,
+dl.tsd-comment-tag-group dd:after {
+ content: " ";
+}
+dl.tsd-comment-tag-group dd pre,
+dl.tsd-comment-tag-group dd:after {
+ clear: both;
+}
+dl.tsd-comment-tag-group p {
+ margin: 0;
}
-.documentation td,
-.documentation th {
- padding: 0.25rem 0.25rem;
+.tsd-panel.tsd-comment .lead {
+ font-size: 1.1em;
+ line-height: 1.333em;
+ margin-bottom: 2em;
+}
+.tsd-panel.tsd-comment .lead:last-child {
+ margin-bottom: 0;
}
-h1:hover .anchorjs-link,
-h2:hover .anchorjs-link,
-h3:hover .anchorjs-link,
-h4:hover .anchorjs-link {
- opacity: 1;
+.tsd-filter-visibility h4 {
+ font-size: 1rem;
+ padding-top: 0.75rem;
+ padding-bottom: 0.5rem;
+ margin: 0;
+}
+.tsd-filter-item:not(:last-child) {
+ margin-bottom: 0.5rem;
+}
+.tsd-filter-input {
+ display: flex;
+ width: fit-content;
+ width: -moz-fit-content;
+ align-items: center;
+ user-select: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ cursor: pointer;
+}
+.tsd-filter-input input[type="checkbox"] {
+ cursor: pointer;
+ position: absolute;
+ width: 1.5em;
+ height: 1.5em;
+ opacity: 0;
+}
+.tsd-filter-input input[type="checkbox"]:disabled {
+ pointer-events: none;
+}
+.tsd-filter-input svg {
+ cursor: pointer;
+ width: 1.5em;
+ height: 1.5em;
+ margin-right: 0.5em;
+ border-radius: 0.33em;
+ /* Leaving this at full opacity breaks event listeners on Firefox.
+ Don't remove unless you know what you're doing. */
+ opacity: 0.99;
+}
+.tsd-filter-input input[type="checkbox"]:focus + svg {
+ transform: scale(0.95);
+}
+.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg {
+ transform: scale(1);
+}
+.tsd-checkbox-background {
+ fill: var(--color-accent);
+}
+input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
+ stroke: var(--color-text);
+}
+.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background {
+ fill: var(--color-background);
+ stroke: var(--color-accent);
+ stroke-width: 0.25rem;
+}
+.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark {
+ stroke: var(--color-accent);
}
-.fix-3 {
- width: 25%;
- max-width: 244px;
+.tsd-theme-toggle {
+ padding-top: 0.75rem;
+}
+.tsd-theme-toggle > h4 {
+ display: inline;
+ vertical-align: middle;
+ margin-right: 0.75rem;
}
-.fix-3 {
- width: 25%;
- max-width: 244px;
+.tsd-hierarchy {
+ list-style: square;
+ margin: 0;
+}
+.tsd-hierarchy .target {
+ font-weight: bold;
}
-@media (min-width: 52em) {
- .fix-margin-3 {
- margin-left: 25%;
- }
+.tsd-full-hierarchy:not(:last-child) {
+ margin-bottom: 1em;
+ padding-bottom: 1em;
+ border-bottom: 1px solid var(--color-accent);
+}
+.tsd-full-hierarchy,
+.tsd-full-hierarchy ul {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+.tsd-full-hierarchy ul {
+ padding-left: 1.5rem;
+}
+.tsd-full-hierarchy a {
+ padding: 0.25rem 0 !important;
+ font-size: 1rem;
+ display: inline-flex;
+ align-items: center;
+ color: var(--color-text);
}
-.pre,
-pre,
-code,
-.code {
- font-family: Source Code Pro, Menlo, Consolas, Liberation Mono, monospace;
- font-size: 14px;
+.tsd-panel-group.tsd-index-group {
+ margin-bottom: 0;
+}
+.tsd-index-panel .tsd-index-list {
+ list-style: none;
+ line-height: 1.333em;
+ margin: 0;
+ padding: 0.25rem 0 0 0;
+ overflow: hidden;
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ column-gap: 1rem;
+ grid-template-rows: auto;
+}
+@media (max-width: 1024px) {
+ .tsd-index-panel .tsd-index-list {
+ grid-template-columns: repeat(2, 1fr);
+ }
+}
+@media (max-width: 768px) {
+ .tsd-index-panel .tsd-index-list {
+ grid-template-columns: repeat(1, 1fr);
+ }
+}
+.tsd-index-panel .tsd-index-list li {
+ -webkit-page-break-inside: avoid;
+ -moz-page-break-inside: avoid;
+ -ms-page-break-inside: avoid;
+ -o-page-break-inside: avoid;
+ page-break-inside: avoid;
+}
+
+.tsd-flag {
+ display: inline-block;
+ padding: 0.25em 0.4em;
+ border-radius: 4px;
+ color: var(--color-comment-tag-text);
+ background-color: var(--color-comment-tag);
+ text-indent: 0;
+ font-size: 75%;
+ line-height: 1;
+ font-weight: normal;
}
-.fill-light {
- background: #f9f9f9;
+.tsd-anchor {
+ position: relative;
+ top: -100px;
}
-.width2 {
- width: 1rem;
+.tsd-member {
+ position: relative;
+}
+.tsd-member .tsd-anchor + h3 {
+ display: flex;
+ align-items: center;
+ margin-top: 0;
+ margin-bottom: 0;
+ border-bottom: none;
}
-.input {
- font-family: inherit;
- display: block;
- width: 100%;
- height: 2rem;
- padding: 0.5rem;
- margin-bottom: 1rem;
- border: 1px solid #ccc;
- font-size: 0.875rem;
- border-radius: 3px;
- box-sizing: border-box;
+.tsd-navigation.settings {
+ margin: 1rem 0;
+}
+.tsd-navigation > a,
+.tsd-navigation .tsd-accordion-summary {
+ width: calc(100% - 0.25rem);
+ display: flex;
+ align-items: center;
+}
+.tsd-navigation a,
+.tsd-navigation summary > span,
+.tsd-page-navigation a {
+ display: flex;
+ width: calc(100% - 0.25rem);
+ align-items: center;
+ padding: 0.25rem;
+ color: var(--color-text);
+ text-decoration: none;
+ box-sizing: border-box;
+}
+.tsd-navigation a.current,
+.tsd-page-navigation a.current {
+ background: var(--color-active-menu-item);
+}
+.tsd-navigation a:hover,
+.tsd-page-navigation a:hover {
+ text-decoration: underline;
+}
+.tsd-navigation ul,
+.tsd-page-navigation ul {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding: 0;
+ list-style: none;
+}
+.tsd-navigation li,
+.tsd-page-navigation li {
+ padding: 0;
+ max-width: 100%;
+}
+.tsd-nested-navigation {
+ margin-left: 3rem;
+}
+.tsd-nested-navigation > li > details {
+ margin-left: -1.5rem;
+}
+.tsd-small-nested-navigation {
+ margin-left: 1.5rem;
+}
+.tsd-small-nested-navigation > li > details {
+ margin-left: -1.5rem;
}
-table {
- border-collapse: collapse;
+.tsd-page-navigation ul {
+ padding-left: 1.75rem;
}
-.prose table th,
-.prose table td {
- text-align: left;
- padding: 8px;
- border: 1px solid #ddd;
+#tsd-sidebar-links a {
+ margin-top: 0;
+ margin-bottom: 0.5rem;
+ line-height: 1.25rem;
+}
+#tsd-sidebar-links a:last-of-type {
+ margin-bottom: 0;
}
-.prose table th:nth-child(1) {
- border-right: none;
+a.tsd-index-link {
+ padding: 0.25rem 0 !important;
+ font-size: 1rem;
+ line-height: 1.25rem;
+ display: inline-flex;
+ align-items: center;
+ color: var(--color-text);
+}
+.tsd-accordion-summary {
+ list-style-type: none; /* hide marker on non-safari */
+ outline: none; /* broken on safari, so just hide it */
}
-.prose table th:nth-child(2) {
- border-left: none;
+.tsd-accordion-summary::-webkit-details-marker {
+ display: none; /* hide marker on safari */
}
+.tsd-accordion-summary,
+.tsd-accordion-summary a {
+ user-select: none;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
-.prose table {
- border: 1px solid #ddd;
+ cursor: pointer;
+}
+.tsd-accordion-summary a {
+ width: calc(100% - 1.5rem);
+}
+.tsd-accordion-summary > * {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+.tsd-index-accordion .tsd-accordion-summary > svg {
+ margin-left: 0.25rem;
+}
+.tsd-index-content > :not(:first-child) {
+ margin-top: 0.75rem;
+}
+.tsd-index-heading {
+ margin-top: 1.5rem;
+ margin-bottom: 0.75rem;
}
-.prose-big {
- font-size: 18px;
- line-height: 30px;
+.tsd-kind-icon {
+ margin-right: 0.5rem;
+ width: 1.25rem;
+ height: 1.25rem;
+ min-width: 1.25rem;
+ min-height: 1.25rem;
+}
+.tsd-kind-icon path {
+ transform-origin: center;
+ transform: scale(1.1);
+}
+.tsd-signature > .tsd-kind-icon {
+ margin-right: 0.8rem;
}
-.quiet {
- opacity: 0.7;
+.tsd-panel {
+ margin-bottom: 2.5rem;
+}
+.tsd-panel.tsd-member {
+ margin-bottom: 4rem;
+}
+.tsd-panel:empty {
+ display: none;
+}
+.tsd-panel > h1,
+.tsd-panel > h2,
+.tsd-panel > h3 {
+ margin: 1.5rem -1.5rem 0.75rem -1.5rem;
+ padding: 0 1.5rem 0.75rem 1.5rem;
}
+.tsd-panel > h1.tsd-before-signature,
+.tsd-panel > h2.tsd-before-signature,
+.tsd-panel > h3.tsd-before-signature {
+ margin-bottom: 0;
+ border-bottom: none;
+}
+
+.tsd-panel-group {
+ margin: 4rem 0;
+}
+.tsd-panel-group.tsd-index-group {
+ margin: 2rem 0;
+}
+.tsd-panel-group.tsd-index-group details {
+ margin: 2rem 0;
+}
+
+#tsd-search {
+ transition: background-color 0.2s;
+}
+#tsd-search .title {
+ position: relative;
+ z-index: 2;
+}
+#tsd-search .field {
+ position: absolute;
+ left: 0;
+ top: 0;
+ right: 2.5rem;
+ height: 100%;
+}
+#tsd-search .field input {
+ box-sizing: border-box;
+ position: relative;
+ top: -50px;
+ z-index: 1;
+ width: 100%;
+ padding: 0 10px;
+ opacity: 0;
+ outline: 0;
+ border: 0;
+ background: transparent;
+ color: var(--color-text);
+}
+#tsd-search .field label {
+ position: absolute;
+ overflow: hidden;
+ right: -40px;
+}
+#tsd-search .field input,
+#tsd-search .title,
+#tsd-toolbar-links a {
+ transition: opacity 0.2s;
+}
+#tsd-search .results {
+ position: absolute;
+ visibility: hidden;
+ top: 40px;
+ width: 100%;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
+}
+#tsd-search .results li {
+ background-color: var(--color-background);
+ line-height: initial;
+ padding: 4px;
+}
+#tsd-search .results li:nth-child(even) {
+ background-color: var(--color-background-secondary);
+}
+#tsd-search .results li.state {
+ display: none;
+}
+#tsd-search .results li.current:not(.no-results),
+#tsd-search .results li:hover:not(.no-results) {
+ background-color: var(--color-accent);
+}
+#tsd-search .results a {
+ display: flex;
+ align-items: center;
+ padding: 0.25rem;
+ box-sizing: border-box;
+}
+#tsd-search .results a:before {
+ top: 10px;
+}
+#tsd-search .results span.parent {
+ color: var(--color-text-aside);
+ font-weight: normal;
+}
+#tsd-search.has-focus {
+ background-color: var(--color-accent);
+}
+#tsd-search.has-focus .field input {
+ top: 0;
+ opacity: 1;
+}
+#tsd-search.has-focus .title,
+#tsd-search.has-focus #tsd-toolbar-links a {
+ z-index: 0;
+ opacity: 0;
+}
+#tsd-search.has-focus .results {
+ visibility: visible;
+}
+#tsd-search.loading .results li.state.loading {
+ display: block;
+}
+#tsd-search.failure .results li.state.failure {
+ display: block;
+}
+
+#tsd-toolbar-links {
+ position: absolute;
+ top: 0;
+ right: 2rem;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+}
+#tsd-toolbar-links a {
+ margin-left: 1.5rem;
+}
+#tsd-toolbar-links a:hover {
+ text-decoration: underline;
+}
+
+.tsd-signature {
+ margin: 0 0 1rem 0;
+ padding: 1rem 0.5rem;
+ border: 1px solid var(--color-accent);
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+ font-size: 14px;
+ overflow-x: auto;
+}
+
+.tsd-signature-keyword {
+ color: var(--color-ts-keyword);
+ font-weight: normal;
+}
+
+.tsd-signature-symbol {
+ color: var(--color-text-aside);
+ font-weight: normal;
+}
+
+.tsd-signature-type {
+ font-style: italic;
+ font-weight: normal;
+}
+
+.tsd-signatures {
+ padding: 0;
+ margin: 0 0 1em 0;
+ list-style-type: none;
+}
+.tsd-signatures .tsd-signature {
+ margin: 0;
+ border-color: var(--color-accent);
+ border-width: 1px 0;
+ transition: background-color 0.1s;
+}
+.tsd-description .tsd-signatures .tsd-signature {
+ border-width: 1px;
+}
+
+ul.tsd-parameter-list,
+ul.tsd-type-parameter-list {
+ list-style: square;
+ margin: 0;
+ padding-left: 20px;
+}
+ul.tsd-parameter-list > li.tsd-parameter-signature,
+ul.tsd-type-parameter-list > li.tsd-parameter-signature {
+ list-style: none;
+ margin-left: -20px;
+}
+ul.tsd-parameter-list h5,
+ul.tsd-type-parameter-list h5 {
+ font-size: 16px;
+ margin: 1em 0 0.5em 0;
+}
+.tsd-sources {
+ margin-top: 1rem;
+ font-size: 0.875em;
+}
+.tsd-sources a {
+ color: var(--color-text-aside);
+ text-decoration: underline;
+}
+.tsd-sources ul {
+ list-style: none;
+ padding: 0;
+}
+
+.tsd-page-toolbar {
+ position: sticky;
+ z-index: 1;
+ top: 0;
+ left: 0;
+ width: 100%;
+ color: var(--color-text);
+ background: var(--color-background-secondary);
+ border-bottom: 1px var(--color-accent) solid;
+ transition: transform 0.3s ease-in-out;
+}
+.tsd-page-toolbar a {
+ color: var(--color-text);
+ text-decoration: none;
+}
+.tsd-page-toolbar a.title {
+ font-weight: bold;
+}
+.tsd-page-toolbar a.title:hover {
+ text-decoration: underline;
+}
+.tsd-page-toolbar .tsd-toolbar-contents {
+ display: flex;
+ justify-content: space-between;
+ height: 2.5rem;
+ margin: 0 auto;
+}
+.tsd-page-toolbar .table-cell {
+ position: relative;
+ white-space: nowrap;
+ line-height: 40px;
+}
+.tsd-page-toolbar .table-cell:first-child {
+ width: 100%;
+}
+.tsd-page-toolbar .tsd-toolbar-icon {
+ box-sizing: border-box;
+ line-height: 0;
+ padding: 12px 0;
+}
+
+.tsd-widget {
+ display: inline-block;
+ overflow: hidden;
+ opacity: 0.8;
+ height: 40px;
+ transition:
+ opacity 0.1s,
+ background-color 0.2s;
+ vertical-align: bottom;
+ cursor: pointer;
+}
+.tsd-widget:hover {
+ opacity: 0.9;
+}
+.tsd-widget.active {
+ opacity: 1;
+ background-color: var(--color-accent);
+}
+.tsd-widget.no-caption {
+ width: 40px;
+}
+.tsd-widget.no-caption:before {
+ margin: 0;
+}
+
+.tsd-widget.options,
+.tsd-widget.menu {
+ display: none;
+}
+input[type="checkbox"] + .tsd-widget:before {
+ background-position: -120px 0;
+}
+input[type="checkbox"]:checked + .tsd-widget:before {
+ background-position: -160px 0;
+}
+
+img {
+ max-width: 100%;
+}
+
+.tsd-anchor-icon {
+ display: inline-flex;
+ align-items: center;
+ margin-left: 0.5rem;
+ vertical-align: middle;
+ color: var(--color-text);
+}
+
+.tsd-anchor-icon svg {
+ width: 1em;
+ height: 1em;
+ visibility: hidden;
+}
+
+.tsd-anchor-link:hover > .tsd-anchor-icon svg {
+ visibility: visible;
+}
+
+.deprecated {
+ text-decoration: line-through !important;
+}
+
+.warning {
+ padding: 1rem;
+ color: var(--color-warning-text);
+ background: var(--color-background-warning);
+}
+
+.tsd-kind-project {
+ color: var(--color-ts-project);
+}
+.tsd-kind-module {
+ color: var(--color-ts-module);
+}
+.tsd-kind-namespace {
+ color: var(--color-ts-namespace);
+}
+.tsd-kind-enum {
+ color: var(--color-ts-enum);
+}
+.tsd-kind-enum-member {
+ color: var(--color-ts-enum-member);
+}
+.tsd-kind-variable {
+ color: var(--color-ts-variable);
+}
+.tsd-kind-function {
+ color: var(--color-ts-function);
+}
+.tsd-kind-class {
+ color: var(--color-ts-class);
+}
+.tsd-kind-interface {
+ color: var(--color-ts-interface);
+}
+.tsd-kind-constructor {
+ color: var(--color-ts-constructor);
+}
+.tsd-kind-property {
+ color: var(--color-ts-property);
+}
+.tsd-kind-method {
+ color: var(--color-ts-method);
+}
+.tsd-kind-call-signature {
+ color: var(--color-ts-call-signature);
+}
+.tsd-kind-index-signature {
+ color: var(--color-ts-index-signature);
+}
+.tsd-kind-constructor-signature {
+ color: var(--color-ts-constructor-signature);
+}
+.tsd-kind-parameter {
+ color: var(--color-ts-parameter);
+}
+.tsd-kind-type-literal {
+ color: var(--color-ts-type-literal);
+}
+.tsd-kind-type-parameter {
+ color: var(--color-ts-type-parameter);
+}
+.tsd-kind-accessor {
+ color: var(--color-ts-accessor);
+}
+.tsd-kind-get-signature {
+ color: var(--color-ts-get-signature);
+}
+.tsd-kind-set-signature {
+ color: var(--color-ts-set-signature);
+}
+.tsd-kind-type-alias {
+ color: var(--color-ts-type-alias);
+}
+
+/* if we have a kind icon, don't color the text by kind */
+.tsd-kind-icon ~ span {
+ color: var(--color-text);
+}
+
+* {
+ scrollbar-width: thin;
+ scrollbar-color: var(--color-accent) var(--color-icon-background);
+}
+
+*::-webkit-scrollbar {
+ width: 0.75rem;
+}
+
+*::-webkit-scrollbar-track {
+ background: var(--color-icon-background);
+}
+
+*::-webkit-scrollbar-thumb {
+ background-color: var(--color-accent);
+ border-radius: 999rem;
+ border: 0.25rem solid var(--color-icon-background);
+}
+
+/* mobile */
+@media (max-width: 769px) {
+ .tsd-widget.options,
+ .tsd-widget.menu {
+ display: inline-block;
+ }
+
+ .container-main {
+ display: flex;
+ }
+ html .col-content {
+ float: none;
+ max-width: 100%;
+ width: 100%;
+ }
+ html .col-sidebar {
+ position: fixed !important;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ z-index: 1024;
+ top: 0 !important;
+ bottom: 0 !important;
+ left: auto !important;
+ right: 0 !important;
+ padding: 1.5rem 1.5rem 0 0;
+ width: 75vw;
+ visibility: hidden;
+ background-color: var(--color-background);
+ transform: translate(100%, 0);
+ }
+ html .col-sidebar > *:last-child {
+ padding-bottom: 20px;
+ }
+ html .overlay {
+ content: "";
+ display: block;
+ position: fixed;
+ z-index: 1023;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: rgba(0, 0, 0, 0.75);
+ visibility: hidden;
+ }
+
+ .to-has-menu .overlay {
+ animation: fade-in 0.4s;
+ }
+
+ .to-has-menu .col-sidebar {
+ animation: pop-in-from-right 0.4s;
+ }
+
+ .from-has-menu .overlay {
+ animation: fade-out 0.4s;
+ }
+
+ .from-has-menu .col-sidebar {
+ animation: pop-out-to-right 0.4s;
+ }
+
+ .has-menu body {
+ overflow: hidden;
+ }
+ .has-menu .overlay {
+ visibility: visible;
+ }
+ .has-menu .col-sidebar {
+ visibility: visible;
+ transform: translate(0, 0);
+ display: flex;
+ flex-direction: column;
+ gap: 1.5rem;
+ max-height: 100vh;
+ padding: 1rem 2rem;
+ }
+ .has-menu .tsd-navigation {
+ max-height: 100%;
+ }
+}
+
+/* one sidebar */
+@media (min-width: 770px) {
+ .container-main {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
+ grid-template-areas: "sidebar content";
+ margin: 2rem auto;
+ }
+
+ .col-sidebar {
+ grid-area: sidebar;
+ }
+ .col-content {
+ grid-area: content;
+ padding: 0 1rem;
+ }
+}
+@media (min-width: 770px) and (max-width: 1399px) {
+ .col-sidebar {
+ max-height: calc(100vh - 2rem - 42px);
+ overflow: auto;
+ position: sticky;
+ top: 42px;
+ padding-top: 1rem;
+ }
+ .site-menu {
+ margin-top: 1rem;
+ }
+}
+
+/* two sidebars */
+@media (min-width: 1200px) {
+ .container-main {
+ grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem);
+ grid-template-areas: "sidebar content toc";
+ }
+
+ .col-sidebar {
+ display: contents;
+ }
+
+ .page-menu {
+ grid-area: toc;
+ padding-left: 1rem;
+ }
+ .site-menu {
+ grid-area: sidebar;
+ }
+
+ .site-menu {
+ margin-top: 1rem 0;
+ }
-.minishadow {
- box-shadow: 2px 2px 10px #f3f3f3;
+ .page-menu,
+ .site-menu {
+ max-height: calc(100vh - 2rem - 42px);
+ overflow: auto;
+ position: sticky;
+ top: 42px;
+ }
}
diff --git a/docs/index.html b/docs/index.html
index 90baa0e..cf2e042 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -1,792 +1,74 @@
-
-
-
-
- @openaddresses/batch-schema 3.1.3 | Documentation
-
-
-
-
-
-
-
-
-
-
-
-
@openaddresses/batch-schema
-
3.1.3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Param
-
-
-
-
-
-
-
- new Param()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Schemas
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters
-
-
-
-
-
router (Object )
- Express Router Object
-
-
-
-
-
-
-
-
opts (Object
- = {}
)
- Options Object
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Static Members
-
-
-
-
-
-
▸
-
param(match, type)
-
-
-
-
-
-
-
- Express middleware to identify express params that should be integers/number/booleans
-according to the schema and attempt to cast them as such to ensure they pass the schema
-
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters
-
-
-
-
-
match (String )
- Express Param
-
-
-
-
-
-
-
-
type (String )
- Type to coerce it to
-
-
-
-
-
-
-
-
-
-
-
-
- Returns
- Function
:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Express middleware to identify query params that should be integers/booleans according to the schema
-and attempt to cast them as such to ensure they pass the schema
-
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters
-
-
-
-
-
schema (Object )
- JSON Schema
-
-
-
-
-
-
-
-
-
-
-
-
- Returns
- Function
:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Instance Members
-
-
-
-
-
-
▸
-
query(method, url)
-
-
-
-
-
-
-
- Return all schemas (body, query, etc) for a given method + url
-
-
-
-
-
-
-
-
-
-
-
-
-
- Parameters
-
-
-
-
-
method (String )
- HTTP Method
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns
- Object
:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Catch all for unmatched routes
-
- not_found()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Convert validation errors into standardized JSON Error Messages
-
- error()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Return a list of endpoints with schemas
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Returns
- Object
:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- get
-
-
-
-
-
-
-
- get
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PublicError
-
-
-
-
-
-
-
- new PublicError(status: any, err: any, safe: any, print: any)
-
-
-
-
-
-
-
-
-
-
-
- Parameters
-
-
-
-
-
-
-
-
-
-
- print (any
- = true
)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+@openaddresses/batch-schema
@openaddresses/batch-schema Batch-Schema
+
+
Express Plugin for JSON Schema based routes
+
+
npm i @openaddresses/batch-schema
+
Copy
+
const path = require ( 'path' ); const express = require ( 'express' ); const { Schema } = require ( '@openaddresses/batch-schema' ); const app = express (); const schema = new Schema ( express . Router (), { schemas: path . resolve ( __dirname , 'schemas' ) }); app . use ( '/api' , schema . router ); server (); async function server () { await schema . post ( '/api/:param1/:param2' , { ':param1' : 'integer' , ':param2' : 'string' , query: 'query-json-schema.json' , body: 'body-json-schema.json' , res: 'result-body-json-schema.json' }, ( req , res ) => { return res . json ({ note: 'I only return if the request meets the query & body schemas' }); }); // Handle Unmatched Routes schema . not_found (); // Handle Validation Errors => JSON Middleware schema . error (); }
+
Copy
+
const schema = new Schema ( < router > , < opts > );
+
Copy
+
+
+
+Config Option
+Notes
+
+
+
+router
+Instantiated Express router to bind to
+
+
+opts
+Optional Opts Object
+
+
+opts.schemas
+Directory of named schemas
+
+
+
await schema . api ()
+
Copy
+
Adds a route called GET /schema
which allows the caller to get a list of endpoints that the router manages
+as well as full schema details for every route. If your API is public we recommend enabling this feature, however
+if you do not wish for API routes to be published, this feature is disabled unless called.
+
Adds a route called GET /openapi
which returns an OpenAPI / Swagger JSON Object
+
Adds a middlware which will catch all routes that have not been defined and return
+a standard error object.
+
schema . not_found ()
+
Copy
+
Adds a middlware which will convert validation errors into a standard JSON error format.
+This method should be called after all routes are defined. If this method is not called,
+you must provide your own middleware for converting JSON Schema Validation Errors into
+express compatible responses.
+
schema . error ()
+
Copy
+
Loads and runs all routes files in a directory
+
schema . load ( directory , config , opts )
+
Copy
+
+
+
+Config Option
+Notes
+
+
+
+directory
+Directory to load .js files from
+
+
+config
+Config option to pass to each route
+
+
+opts
+Optional Opts Object
+
+
+opts.silent
+Squelch output
+
+
+
\ No newline at end of file
diff --git a/index.js b/index.ts
similarity index 100%
rename from index.js
rename to index.ts
diff --git a/routes/schema.js b/lib/api.ts
similarity index 70%
rename from routes/schema.js
rename to lib/api.ts
index 1beb2df..eb142d1 100644
--- a/routes/schema.js
+++ b/lib/api.ts
@@ -1,9 +1,15 @@
import Err from '@openaddresses/batch-error';
+import Schema from './schema.js'
+import { OpenAPIV3 as Doc } from 'openapi-types'
+import { Type } from '@sinclair/typebox'
-export default async function router(schema) {
+export default async function router(schema: Schema) {
await schema.get('/schema', {
- query: 'req.query.ListSchema.json',
- res: 'res.ListSchema.json',
+ query: Type.Object({
+ method: Type.Optional(Type.Uppercase(Type.Enum(Doc.HttpMethods))),
+ url: Type.Optional(Type.String())
+ }),
+ res: Type.Object({}),
description: `
List all JSON Schemas in use
With no parameters this API will return a list of all the endpoints that have a form of schema validation
@@ -26,7 +32,8 @@ export default async function router(schema) {
});
await schema.get('/openapi', {
- description: 'Return a OpenAPI Schema for the API'
+ description: 'Return a OpenAPI Schema for the API',
+ res: Type.Object({})
}, async (req, res) => {
try {
return res.json(schema.docs.base);
diff --git a/lib/middleware.js b/lib/middleware.js
deleted file mode 100644
index 4eed0c3..0000000
--- a/lib/middleware.js
+++ /dev/null
@@ -1,159 +0,0 @@
-import Err from '@openaddresses/batch-error';
-import Param from './param.js';
-import Ajv from 'ajv';
-import addFormats from 'ajv-formats';
-import { ValidationError } from 'express-json-validator-middleware';
-import Generic from '@openaddresses/batch-generic';
-
-const ajv = addFormats(new Ajv({
- strict: false,
- allErrors: true,
- useDefaults: true,
- removeAdditional: true,
- coerceTypes: true
-}));
-
-/**
- * @class
- */
-export default class Middleware {
- /**
- * Express middleware to identify express params that should be integers/number/booleans
- * according to the schema and attempt to cast them as such to ensure they pass the schema
- *
- * @param {String} match Express Param
- * @param {String} type Type to coerce it to
- *
- * @returns {Function}
- */
- static param(match, type) {
- return function (req, res, next) {
- try {
- Param[type](req, match.replace(':', ''));
- } catch (err) {
- return Err.respond(err, res);
- }
-
- return next();
- };
- }
-
- /**
- * Express middleware to identify query params that should be integers/booleans according to the schema
- * and attempt to cast them as such to ensure they pass the schema
- *
- * @param {Object} schema JSON Schema
- *
- * @returns {Function}
- */
- static query(schema) {
- return function (req, res, next) {
- for (const key in req.query) {
- if (!schema.properties[key] || !schema.properties[key].type) continue;
-
- // For easier processing use consistent array format IE: `type: ["integer", "boolean"]` vs type: "integer"
- if (!Array.isArray(schema.properties[key].type)) {
- schema.properties[key].type = [schema.properties[key].type];
- }
-
- for (const type of schema.properties[key].type) {
- if (type === 'array') {
- req.query[key] = req.query[key].split(',');
-
- if (schema.properties[key].items && schema.properties[key].items.type === 'number') {
- req.query[key] = req.query[key].map((k) => {
- return Number(k);
- });
- } else if (schema.properties[key].items && schema.properties[key].items.type === 'integer') {
- req.query[key] = req.query[key].map((k) => {
- return parseInt(k);
- });
- } else if (schema.properties[key].items && schema.properties[key].items.type === 'boolean') {
- req.query[key] = req.query[key].map((k) => {
- if (k === 'true') {
- return true;
- } else if (k === 'false') {
- return false;
- }
- });
- }
- } else if (type === 'integer' && !isNaN(parseInt(req.query[key]))) {
- req.query[key] = parseInt(req.query[key]);
- } else if (type === 'number' && !isNaN(Number(req.query[key]))) {
- req.query[key] = Number(req.query[key]);
- } else if (type === 'boolean') {
- if (req.query[key] === 'true') {
- req.query[key] = true;
- } else if (req.query[key] === 'false') {
- req.query[key] = false;
- }
- }
- }
- }
-
- for (const key in schema.properties) {
- if (req.query[key] === undefined && schema.properties[key].default !== undefined) {
- req.query[key] = schema.properties[key].default;
- }
- }
-
- return next();
- };
- }
-
- /**
- * Express middleware to validate the response body
- * and optionally serialize Generic object to JSON
- *
- * @param {Object} schema JSON Schema
- *
- * @returns {Function}
- */
- static res(schema) {
- const validate = ajv.compile(schema);
-
- return function (req, res, next) {
- const json = res.json;
- res.json = function(obj) {
- if (obj instanceof Generic && typeof obj.serialize === 'function') {
- obj = obj.serialize();
- }
-
- if (res.statusCode === null || res.statusCode === 200) {
- validate(obj);
- }
-
- json.call(this, obj);
- };
- next();
- };
- }
-
- /**
- * Convert validation errors into standardized JSON Error Messages
- *
- * @returns {Function}
- */
- static error() {
- return function(err, req, res, next) {
- if (err instanceof ValidationError) {
- let errs = [];
- if (err.validationErrors.body) {
- errs = errs.concat(err.validationErrors.body);
- }
-
- if (err.validationErrors.query) {
- errs = errs.concat(err.validationErrors.query);
- }
-
- return Err.respond(
- new Err(400, null, 'validation error'),
- res,
- errs
- );
- } else {
- next(err);
- }
- };
- }
-}
diff --git a/lib/openapi.js b/lib/openapi.ts
similarity index 57%
rename from lib/openapi.js
rename to lib/openapi.ts
index 92621ec..28a8c64 100644
--- a/lib/openapi.js
+++ b/lib/openapi.ts
@@ -1,8 +1,17 @@
+import { OpenAPIV3 as Doc } from 'openapi-types'
+import { RequestValidation } from './types.js';
+
/**
* @class
*/
export default class Docs {
- constructor(info) {
+ base: Doc.Document;
+
+ constructor(info?: {
+ title: string;
+ version: string;
+ [k: string]: string;
+ }) {
this.base = {
openapi: '3.0.3',
info: info || {
@@ -13,42 +22,46 @@ export default class Docs {
};
}
- push(parsed, schemas) {
- let path = [];
- const method = parsed[0].toLowerCase();
+ push(
+ parsed: {
+ method: Doc.HttpMethods
+ path: string;
+ },
+ schemas: RequestValidation
+ ): void {
+ const path: Array = [];
- for (let sec of parsed[1].split('/')) {
+ for (let sec of parsed.path.split('/')) {
for (const lit of ['.', '-']) { // These chars are used literally and can't be part of a param name
- const mini = [];
+ const mini: Array = [];
for (const s of sec.split(lit)) {
if (s[0] === ':') mini.push(`{${s}}`);
else mini.push(s);
}
sec = mini.join(lit);
}
+
path.push(sec);
}
- path = path.join('/');
+ const pathstr = path.join('/');
- if (!schemas.private) {
- if (!this.base.paths[path]) this.base.paths[path] = {};
+ // @ts-ignore
+ if (this.base.paths[pathstr] && this.base.paths[pathstr][parsed.method]) throw new Error(`Duplicate Path: ${parsed.method}: ${parsed.path}`);
- if (this.base.paths[path][method]) throw new Error(`Duplicate Path: ${parsed.join(' ')}`);
+ if (!schemas.private) {
+ if (!this.base.paths[pathstr]) this.base.paths[pathstr] = {};
- const document = {
+ const document: Doc.OperationObject = {
summary: schemas.description || 'No Description',
- tags: [schemas.group || 'Default'],
parameters: [],
- responses: {
- 200: {
- description: 'Successful Response'
- }
- }
+ tags: [schemas.group || 'Default'],
+ responses: {}
};
for (const key in schemas) {
if (key[0] === ':') {
+ if (!document.parameters) document.parameters = [];
document.parameters.push({
in: 'path',
name: key,
@@ -63,6 +76,7 @@ export default class Docs {
if (schemas.query && schemas.query.type === 'object') {
for (const name in (schemas.query.properties || {})) {
const query = schemas.query.properties[name];
+ if (!document.parameters) document.parameters = [];
document.parameters.push({
in: 'query',
name,
@@ -74,11 +88,20 @@ export default class Docs {
}
if (schemas.res) {
- document.responses['200'].content = {
- 'application/json': {
- schema: schemas.res
+ const response: Doc.ResponseObject = {
+ description: 'Successful Response',
+ content: {
+ 'application/json': {
+ schema: schemas.res
+ }
}
- };
+ }
+ document.responses['200'] = response;
+ } else {
+ const response: Doc.ResponseObject = {
+ description: 'Successful Response'
+ }
+ document.responses['200'] = response;
}
if (schemas.body) {
@@ -92,7 +115,8 @@ export default class Docs {
};
}
- this.base.paths[path][method] = document;
+ // @ts-ignore
+ this.base.paths[pathstr][parsed.method] = document;
}
}
}
diff --git a/lib/param.js b/lib/param.js
deleted file mode 100644
index a121bf5..0000000
--- a/lib/param.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import Err from '@openaddresses/batch-error';
-
-/**
- * @class
- */
-export default class Param {
- static integer(req, name) {
- req.params[name] = parseInt(req.params[name]);
- if (isNaN(req.params[name])) {
- throw new Err(400, null, `${name} param must be an integer`);
- }
- }
-
- static number(req, name) {
- req.params[name] = Number(req.params[name]);
- if (isNaN(req.params[name])) {
- throw new Err(400, null, `${name} param must be numeric`);
- }
- }
-
- static boolean(req, name) {
- if (!['true', 'false'].includes(req.params[name])) throw new Error(`${name} param must be a boolean`);
- req.params[name] = req.params[name] === true ? true : false;
- }
-
- static string(req, name) {
- req.params[name] = String(req.params[name]);
- }
-}
diff --git a/lib/schema.js b/lib/schema.js
deleted file mode 100644
index 1e399d1..0000000
--- a/lib/schema.js
+++ /dev/null
@@ -1,254 +0,0 @@
-import { Validator } from 'express-json-validator-middleware';
-import $RefParser from '@apidevtools/json-schema-ref-parser';
-import fs from 'node:fs';
-import path from 'node:path';
-import morgan from 'morgan';
-import bodyparser from 'body-parser';
-
-import SchemaRoute from '../routes/schema.js';
-import Param from './param.js';
-import Docs from './openapi.js';
-import Middleware from './middleware.js';
-
-/**
- * @class
- *
- * @param {Object} router Express Router Object
- * @param {Object} opts Options Object
- * @param {String} opts.schemas Schemas Path
- * @param {boolean|string} [opts.logging=true] disable logging with false
- * @param {number} [opts.limit=50] body size limit in mb
- *
- * @param {URL} [opts.apidoc] apidoc file location
- */
-export default class Schemas {
- constructor(router, opts = {}) {
- if (!router) throw new Error('Router Param Required');
-
- if (!opts.schemas) {
- this.schemas_path = new URL('../schema/', import.meta.url).pathname;
- } else {
- if (opts.schemas instanceof URL) opts.schemas = opts.schemas.pathname;
- else opts.schemas = String(opts.schemas);
-
- this.schemas_path = opts.schemas;
- }
-
- this.validator = new Validator({
- removeAdditional: true,
- useDefaults: true,
- allErrors: true
- });
-
- this.router = router;
-
- if (opts.morgan !== false) this.router.use(morgan('combined'));
- this.router.use(bodyparser.urlencoded({ extended: true }));
- this.jsonparser = bodyparser.json({ limit: `${opts.limit}mb` });
-
- this.schemas = new Map();
- this.validate = this.validator.validate;
-
- this.docs = new Docs();
- }
-
- async api() {
- await SchemaRoute(this);
- }
-
- /**
- * Load routes directory. All .js files in the given directory will be loaded (ES Module)
- * and the default method run
- *
- * @param {String} dirpath Directory to load
- * @param {object} config Config Object
- * @param {Object} opts Options Object
- * @param {boolean} opts.silent Squelch StdOut
- */
- async load(dirpath, config, opts = {}) {
- if (dirpath instanceof URL) dirpath = dirpath.pathname;
- else dirpath = String(dirpath);
-
- const routes = [];
-
- // Load dynamic routes directory
- for (const r of fs.readdirSync(dirpath)) {
- if (!opts.silent) console.log(`ok - loaded routes/${r}`);
- if (!['.ts', '.js'].includes(path.parse(r).ext)) continue;
- routes.push((await import(path.resolve(dirpath, r))).default(this, config));
- }
-
- await Promise.all(routes);
- }
-
- /**
- * Load a blueprint into the router
- *
- * @param {Object} bp_class Blueprint Class with blueprint() fn
- * @param {object} config Config Object
- * @param {Object} opts Options Object
- * @param {boolean} opts.silent Squelch StdOut
- */
- async blueprint(bp_class, config, opts = {}) {
- if (!opts.silent) console.log(`ok - loaded ${bp_class.name}`);
- await bp_class.blueprint(this, config);
- }
-
- check(url, schemas, fns) {
- if (typeof url !== 'string') throw new Error('URL should be string');
-
- if (schemas === null) schemas = {};
- if (typeof schemas !== 'object') throw new Error('Schemas should be object');
-
- // Make sure express params are validated/coerced into proper type
- const matches = url.match(/(:.+?)(?=\/|\.|$)/g);
- if (matches) for (const match of matches) {
- if (!schemas[match]) throw new Error(`${match} type is not defined in schema`);
- if (!Param[schemas[match]]) throw new Error(`${schemas[match]} is not a supported type for ${match}`);
- }
-
- if (!fns.length) throw new Error('At least 1 route function should be defined');
- }
-
- async get(url, schemas, ...fns) {
- this.check(url, schemas, fns);
- this.router.get(...await this.generic(`GET ${url}`, schemas), ...fns);
- }
-
- async delete(url, schemas, ...fns) {
- this.check(url, schemas, fns);
- this.router.delete(...await this.generic(`DELETE ${url}`, schemas), ...fns);
- }
-
- async post(url, schemas, ...fns) {
- this.check(url, schemas, fns);
- this.router.post(...await this.generic(`POST ${url}`, schemas), ...fns);
- }
-
- async patch(url, schemas, ...fns) {
- this.check(url, schemas, fns);
- this.router.patch(...await this.generic(`PATCH ${url}`, schemas), ...fns);
- }
-
- async put(url, schemas, ...fns) {
- this.check(url, schemas, fns);
- this.router.put(...await this.generic(`PUT ${url}`, schemas), ...fns);
- }
-
- async generic(url, schemas = {}) {
- if (!schemas) schemas = {};
-
- const parsed = url.split(' ');
- if (parsed.length !== 2) throw new Error('schema.generic() must be of format " "');
-
- for (const type of ['body', 'query', 'res']) {
- if (!schemas[type]) continue;
-
- // TODO: Write schemas to a tmp directory so blueprints & main schemas are in the same place
- if (typeof schemas[type] === 'object') {
- schemas[`${type}_url`] = null;
- } else if (typeof schemas[type] === 'string') {
- schemas[`${type}_url`] = '../schema/' + schemas[type];
- try {
- schemas[type] = await $RefParser.dereference((new URL(`../schema/${schemas[type]}`, import.meta.url)).pathname);
- } catch (err) {
- schemas[type] = await $RefParser.dereference(`${this.schemas_path}/${schemas[type]}`);
- }
- } else {
- throw new Error(`Unsupported Value in ${type} value for ${url}`);
- }
- }
-
- this.docs.push(parsed, schemas);
-
- this.schemas.set(parsed.join(' '), schemas);
-
- const opts = {};
- if (schemas.query) opts.query = schemas.query;
- if (schemas.body) opts.body = schemas.body;
-
- const flow = [parsed[1], []];
-
- if (schemas.body) flow[1].push(this.jsonparser);
-
- if (schemas.query) flow[1].push(Middleware.query(schemas.query));
-
- // Make sure express params are validated/coerced into proper type
- const matches = url.match(/(:.+?)(?=\/|\.|$)/g);
- if (matches) for (const match of matches) {
- if (!schemas[match]) throw new Error(`${match} type is not defined in schema`);
-
- flow[1].push(Middleware.param(match, schemas[match]));
- }
-
- flow[1].push(this.validate(opts));
-
- if (schemas.res) flow[1].push(Middleware.res(schemas.res));
-
- return flow;
- }
-
- /**
- * Convert validation errors into standardized JSON Error Messages
- */
- error() {
- this.router.use(Middleware.error());
- }
-
- /**
- * Return all schemas (body, query, etc) for a given method + url
- *
- * @param {String} method HTTP Method
- * @param {String} url URL
- *
- * @returns {Object}
- */
- query(method, url) {
- if (!this.schemas.has(`${method} ${url}`)) {
- return { body: null, schema: null };
- }
-
- const schema = JSON.parse(JSON.stringify(this.schemas.get(`${method} ${url}`)));
- if (!schema.query) schema.query = null;
- if (!schema.body) schema.body = null;
- if (!schema.res) schema.res = null;
-
- return {
- query: schema.query,
- body: schema.body,
- res: schema.res
- };
- }
-
- /**
- * Catch all for unmatched routes
- */
- not_found() {
- this.router.all('*', (req, res) => {
- return res.status(404).json({
- status: 404,
- message: 'API endpoint does not exist!',
- messages: []
- });
- });
- }
-
- /**
- * Return a list of endpoints with schemas
- *
- * @returns {Object}
- */
- list() {
- const lite = {};
-
- for (const key of this.schemas.keys()) {
- lite[key] = {
- body: !!this.schemas.get(key).body,
- query: !!this.schemas.get(key).query,
- res: !!this.schemas.get(key).res
- };
- }
-
- return lite;
- }
-}
diff --git a/lib/schema.ts b/lib/schema.ts
new file mode 100644
index 0000000..cc29b09
--- /dev/null
+++ b/lib/schema.ts
@@ -0,0 +1,293 @@
+import fs from 'node:fs';
+import path from 'node:path';
+import morgan from 'morgan';
+import bodyparser from 'body-parser';
+import Err from '@openaddresses/batch-error';
+import { Static, TSchema } from '@sinclair/typebox';
+import { OpenAPIV3 as Doc } from 'openapi-types'
+import { Router, RequestHandler } from 'express'
+import { TypeCompiler } from '@sinclair/typebox/compiler';
+import type { ValueError } from '@sinclair/typebox/errors';
+import { RequestValidation } from './types.js';
+
+import SchemaAPI from './api.js';
+import Docs from './openapi.js';
+
+export type ErrorListItem = { type: 'Body' | 'Query' | 'Params'; errors: ValueError[] };
+
+/**
+ * @class
+ *
+ * @param {Object} router Express Router Object
+ * @param {Object} opts Options Object
+ * @param {boolean|string} [opts.morgan=true] disable logging with false
+ * @param {number} [opts.limit=50] body size limit in mb
+ *
+ * @param {URL} [opts.apidoc] apidoc file location
+ */
+export default class Schemas {
+ router: Router;
+ docs: Docs;
+ schemas: Map>
+
+ constructor(router: Router, opts: {
+ logging?: boolean;
+ limit?: number;
+ } = {}) {
+ if (!router) throw new Error('Router Param Required');
+
+ this.router = router;
+
+ if (opts.logging !== false) this.router.use(morgan('combined'));
+ this.router.use(bodyparser.urlencoded({ extended: true }));
+ this.router.use(bodyparser.json({ limit: `${opts.limit || 50}mb` }));
+
+ this.docs = new Docs();
+ this.schemas = new Map();
+ }
+
+ async api() {
+ await SchemaAPI(this);
+ }
+
+ /**
+ * Load routes directory. All .js files in the given directory will be loaded (ES Module)
+ * and the default method run
+ *
+ * @param {String} dirpath Directory to load
+ * @param {object} config Config Object
+ * @param {Object} opts Options Object
+ * @param {boolean} opts.silent Squelch StdOut
+ */
+ async load(dirpath: string | URL, config: T, opts: {
+ silent: boolean;
+ } = {
+ silent: false
+ }) {
+ if (dirpath instanceof URL) dirpath = dirpath.pathname;
+ else dirpath = String(dirpath);
+
+ const routes: Array void>> = [];
+
+ // Load dynamic routes directory
+ for (const r of fs.readdirSync(dirpath)) {
+ if (!opts.silent) console.log(`ok - loaded routes/${r}`);
+ if (!['.ts', '.js'].includes(path.parse(r).ext)) continue;
+ routes.push((await import(path.resolve(dirpath, r))).default(this, config));
+ }
+
+ await Promise.all(routes);
+
+ this.not_found();
+ }
+
+ /**
+ * Load a blueprint into the router
+ *
+ * @param {Object} bp_class Blueprint Class with blueprint() fn
+ * @param {object} config Config Object
+ * @param {Object} opts Options Object
+ * @param {boolean} opts.silent Squelch StdOut
+ */
+ async blueprint(bp_class, config?: T, opts: {
+ silent: boolean;
+ } = { silent: false }) {
+ if (!opts.silent) console.log(`ok - loaded ${bp_class.name}`);
+ await bp_class.blueprint(this, config);
+ }
+
+ async get(
+ path: string,
+ opts: RequestValidation = {},
+ handler: RequestHandler, any, Static, Static>
+ ) {
+ try {
+ this.docs.push({ method: Doc.HttpMethods.GET, path: path }, opts);
+ this.schemas.set(`GET ${path}`, opts);
+
+ const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
+ const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
+ if (opts.body) throw new Error(`Body not allowed`);
+
+ const _handler: RequestHandler = (req, res, next) => {
+ const errors: Array = [];
+ if (paramsValidation && !paramsValidation.Check(req.params)) errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
+ if (queryValidation && !queryValidation.Check(req.query)) errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
+ if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
+
+ return handler(req, res, next);
+ };
+
+ this.router.get(path, _handler);
+ } catch (err) {
+ throw new Error(`Get: ${path}: ` + err)
+ }
+ }
+
+ async delete(
+ path: string,
+ opts: RequestValidation = {},
+ handler: RequestHandler, any, Static, Static>
+ ) {
+ try {
+ this.docs.push({ method: Doc.HttpMethods.DELETE, path: path }, opts);
+ this.schemas.set(`DELETE ${path}`, opts);
+
+ const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
+ const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
+ if (opts.body) throw new Error(`Body not allowed`);
+
+ const _handler: RequestHandler = (req, res, next) => {
+ const errors: Array = [];
+ if (paramsValidation && !paramsValidation.Check(req.params)) errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
+ if (queryValidation && !queryValidation.Check(req.query)) errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
+ if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
+
+ return handler(req, res, next);
+ };
+
+ this.router.get(path, _handler);
+ } catch (err) {
+ throw new Error(`Delete: ${path}: ` + String(err))
+ }
+ }
+
+ async post(
+ path: string,
+ opts: RequestValidation = {},
+ handler: RequestHandler, any, Static, Static>
+ ) {
+ try {
+ this.docs.push({ method: Doc.HttpMethods.POST, path: path }, opts);
+ this.schemas.set(`POST ${path}`, opts);
+
+ const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
+ const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
+ const bodyValidation = opts.body && TypeCompiler.Compile(opts.body);
+
+ const _handler: RequestHandler = (req, res, next) => {
+ const errors: Array = [];
+ if (paramsValidation && !paramsValidation.Check(req.params)) errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
+ if (queryValidation && !queryValidation.Check(req.query)) errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
+ if (bodyValidation && !bodyValidation.Check(req.body)) errors.push({ type: 'Body', errors: Array.from(bodyValidation.Errors(req.body)) });
+ if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
+
+ return handler(req, res, next);
+ };
+
+ this.router.get(path, _handler);
+ } catch (err) {
+ throw new Error(`Post: ${path}: ` + String(err))
+ }
+ }
+
+ async patch(
+ path: string,
+ opts: RequestValidation = {},
+ handler: RequestHandler, any, Static, Static>
+ ) {
+ try {
+ this.docs.push({ method: Doc.HttpMethods.PATCH, path: path }, opts);
+ this.schemas.set(`PATCH ${path}`, opts);
+
+ const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
+ const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
+ const bodyValidation = opts.body && TypeCompiler.Compile(opts.body);
+
+ const _handler: RequestHandler = (req, res, next) => {
+ const errors: Array = [];
+ if (paramsValidation && !paramsValidation.Check(req.params)) errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
+ if (queryValidation && !queryValidation.Check(req.query)) errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
+ if (bodyValidation && !bodyValidation.Check(req.body)) errors.push({ type: 'Body', errors: Array.from(bodyValidation.Errors(req.body)) });
+ if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
+
+ return handler(req, res, next);
+ };
+
+ this.router.get(path, _handler);
+ } catch (err) {
+ throw new Error(`Patch: ${path}: ` + String(err))
+ }
+ }
+
+ async put(
+ path: string,
+ opts: RequestValidation = {},
+ handler: RequestHandler, any, Static, Static>
+ ) {
+ try {
+ this.docs.push({ method: Doc.HttpMethods.PUT, path: path }, opts);
+ this.schemas.set(`PUT ${path}`, opts);
+
+ const paramsValidation = opts.params && TypeCompiler.Compile(opts.params);
+ const queryValidation = opts.query && TypeCompiler.Compile(opts.query);
+ const bodyValidation = opts.body && TypeCompiler.Compile(opts.body);
+
+ const _handler: RequestHandler = (req, res, next) => {
+ const errors: Array = [];
+ if (paramsValidation && !paramsValidation.Check(req.params)) errors.push({ type: 'Params', errors: Array.from(paramsValidation.Errors(req.params)) });
+ if (queryValidation && !queryValidation.Check(req.query)) errors.push({ type: 'Query', errors: Array.from(queryValidation.Errors(req.query)) });
+ if (bodyValidation && !bodyValidation.Check(req.body)) errors.push({ type: 'Body', errors: Array.from(bodyValidation.Errors(req.body)) });
+ if (errors.length) return Err.respond(new Err(400, null, 'Validation Error'), res, errors);
+
+ return handler(req, res, next);
+ };
+
+ this.router.get(path, _handler);
+ } catch (err) {
+ throw new Error(`Put: ${path}: ` + String(err))
+ }
+ }
+
+ not_found() {
+ this.router.all('*', (req, res) => {
+ return res.status(404).json({
+ status: 404,
+ message: 'API endpoint does not exist!',
+ messages: []
+ });
+ });
+ }
+
+
+ query(method: Doc.HttpMethods, url: string): {
+ query?: object;
+ body?: object;
+ res?: object;
+ } {
+ if (!this.schemas.has(`${method} ${url}`)) {
+ return {};
+ }
+
+ const schema = JSON.parse(JSON.stringify(this.schemas.get(`${method} ${url}`)));
+
+ return {
+ query: schema.query,
+ body: schema.body,
+ res: schema.res
+ };
+ }
+
+ list(): {
+ [k: string]: {
+ body: boolean;
+ query: boolean;
+ res: boolean;
+ }
+ } {
+ const lite = {};
+
+ for (const key of this.schemas.keys()) {
+ const schema = this.schemas.get(key);
+ if (!schema) continue;
+
+ lite[key] = {
+ body: !!schema.body,
+ query: !!schema.query,
+ res: !!schema.res
+ };
+ }
+
+ return lite;
+ }
+}
diff --git a/lib/types.ts b/lib/types.ts
new file mode 100644
index 0000000..ea9baa6
--- /dev/null
+++ b/lib/types.ts
@@ -0,0 +1,32 @@
+import { Static, TSchema } from '@sinclair/typebox';
+import type { Request } from 'express';
+import type { ParamsDictionary } from 'express-serve-static-core';
+
+export type TypedRequest = Request<
+ Static,
+ any,
+ Static,
+ Static
+>;
+
+export type TypedRequestBody = Request, any>;
+export type TypedRequestParams = Request, any, any, any>;
+export type TypedRequestQuery = Request>;
+
+export type TypedResponseBody = Static;
+
+export type RequestValidation<
+ TParams extends TSchema,
+ TQuery extends TSchema,
+ TBody extends TSchema,
+ TResponse extends TSchema
+> = {
+ private?: boolean;
+ name?: string;
+ group?: string;
+ description?: string;
+ params?: TParams;
+ query?: TQuery;
+ body?: TBody;
+ res?: TResponse
+};
diff --git a/package-lock.json b/package-lock.json
index d20ac15..9d15e71 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,29 +1,33 @@
{
"name": "@openaddresses/batch-schema",
- "version": "9.3.0",
+ "version": "9.4.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openaddresses/batch-schema",
- "version": "9.3.0",
+ "version": "9.4.0",
"license": "MIT",
"dependencies": {
- "@apidevtools/json-schema-ref-parser": "^10.0.0",
"@openaddresses/batch-error": "^2.1.2",
- "ajv": "^8.6.3",
- "ajv-formats": "^2.1.1",
+ "@sinclair/typebox": "^0.32.14",
+ "@types/body-parser": "^1.19.5",
"body-parser": "^1.20.0",
"express": "^4.17.1",
- "express-json-validator-middleware": "^3.0.0",
"glob": "^10.0.0",
- "morgan": "^1.10.0"
+ "morgan": "^1.10.0",
+ "openapi-types": "^12.1.3"
},
"devDependencies": {
- "documentation": "^14.0.1",
+ "@types/express": "^4.17.21",
+ "@typescript-eslint/eslint-plugin": "^7.0.1",
+ "@typescript-eslint/parser": "^7.0.1",
"eslint": "^8.0.1",
"eslint-plugin-node": "^11.0.0",
- "tape": "^5.3.1"
+ "tape": "^5.3.1",
+ "ts-node-test": "^0.4.3",
+ "typedoc": "^0.25.8",
+ "typescript": "^5.3.3"
},
"engines": {
"node": ">= 18"
@@ -41,463 +45,16 @@
"node": ">=0.10.0"
}
},
- "node_modules/@ampproject/remapping": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
- "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@apidevtools/json-schema-ref-parser": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-10.1.0.tgz",
- "integrity": "sha512-3e+viyMuXdrcK8v5pvP+SDoAQ77FH6OyRmuK48SZKmdHJRFm87RsSs8qm6kP39a/pOPURByJw+OXzQIqcfmKtA==",
- "dependencies": {
- "@jsdevtools/ono": "^7.1.3",
- "@types/json-schema": "^7.0.11",
- "@types/lodash.clonedeep": "^4.5.7",
- "js-yaml": "^4.1.0",
- "lodash.clonedeep": "^4.5.0"
- },
- "engines": {
- "node": ">= 16"
- },
- "funding": {
- "url": "https://github.com/sponsors/philsturgeon"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.23.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
- "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
- "dev": true,
- "dependencies": {
- "@babel/highlight": "^7.23.4",
- "chalk": "^2.4.2"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/code-frame/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@babel/code-frame/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.23.5",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz",
- "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz",
- "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==",
- "dev": true,
- "dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.23.5",
- "@babel/generator": "^7.23.6",
- "@babel/helper-compilation-targets": "^7.23.6",
- "@babel/helper-module-transforms": "^7.23.3",
- "@babel/helpers": "^7.23.9",
- "@babel/parser": "^7.23.9",
- "@babel/template": "^7.23.9",
- "@babel/traverse": "^7.23.9",
- "@babel/types": "^7.23.9",
- "convert-source-map": "^2.0.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.3",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/core/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@babel/core/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/@babel/generator": {
- "version": "7.23.6",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz",
- "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.23.6",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.23.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
- "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.23.5",
- "@babel/helper-validator-option": "^7.23.5",
- "browserslist": "^4.22.2",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
- "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
- "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.22.15",
- "@babel/types": "^7.23.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
- "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
- "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.15"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.23.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
- "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-module-imports": "^7.22.15",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/helper-validator-identifier": "^7.22.20"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
- "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
- "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.23.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
- "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.23.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
- "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz",
- "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.23.9",
- "@babel/traverse": "^7.23.9",
- "@babel/types": "^7.23.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.23.4",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
- "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.22.20",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
- "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
- "dev": true,
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz",
- "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.23.5",
- "@babel/parser": "^7.23.9",
- "@babel/types": "^7.23.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz",
- "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.23.5",
- "@babel/generator": "^7.23.6",
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-function-name": "^7.23.0",
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.23.9",
- "@babel/types": "^7.23.9",
- "debug": "^4.3.1",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@babel/traverse/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/@babel/types": {
- "version": "7.23.9",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz",
- "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
+ "node_modules/@cspotcode/source-map-support": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
"dev": true,
"dependencies": {
- "@babel/helper-string-parser": "^7.23.4",
- "@babel/helper-validator-identifier": "^7.22.20",
- "to-fast-properties": "^2.0.0"
+ "@jridgewell/trace-mapping": "0.3.9"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12"
}
},
"node_modules/@drizzle-team/studio": {
@@ -1333,22 +890,6 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/@eslint/eslintrc/node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
"node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -1359,86 +900,18 @@
"concat-map": "0.0.1"
}
},
- "node_modules/@eslint/eslintrc/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "node_modules/@eslint/eslintrc/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
- "dev": true,
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
- "node_modules/@eslint/eslintrc/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
+ "brace-expansion": "^1.1.7"
},
"engines": {
"node": "*"
}
},
- "node_modules/@eslint/eslintrc/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/@eslint/js": {
"version": "8.56.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
@@ -1472,23 +945,6 @@
"concat-map": "0.0.1"
}
},
- "node_modules/@humanwhocodes/config-array/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
"node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -1501,12 +957,6 @@
"node": "*"
}
},
- "node_modules/@humanwhocodes/config-array/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
@@ -1567,33 +1017,10 @@
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
- "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
"node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
- "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true,
"engines": {
"node": ">=6.0.0"
@@ -1606,27 +1033,22 @@
"dev": true
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.22",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz",
- "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
"dev": true,
"dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
}
},
- "node_modules/@jsdevtools/ono": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz",
- "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg=="
- },
"node_modules/@ljharb/resumer": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.0.1.tgz",
- "integrity": "sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==",
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.1.2.tgz",
+ "integrity": "sha512-opZnY9WsZ6tjPSpmTEdPY+LpxpEwqg3VsQiGFv+wAaA1ffTghnG019mAD8BKxkcpZx6HtvNj0vdyxDHTxPQlJw==",
"dev": true,
"dependencies": {
- "@ljharb/through": "^2.3.9"
+ "@ljharb/through": "^2.3.12"
},
"engines": {
"node": ">= 0.4"
@@ -1688,19 +1110,16 @@
}
},
"node_modules/@openaddresses/batch-generic": {
- "version": "15.9.0",
- "resolved": "https://registry.npmjs.org/@openaddresses/batch-generic/-/batch-generic-15.9.0.tgz",
- "integrity": "sha512-661Lyu4N1WSMs7kq5HP0anPSzShUVnSEktoNYH95wNZmMjTnUqRWaz8Au3m8ATScVIFLJBXlkkPZOON9rIP2SA==",
+ "version": "15.13.0",
+ "resolved": "https://registry.npmjs.org/@openaddresses/batch-generic/-/batch-generic-15.13.0.tgz",
+ "integrity": "sha512-zW5WILSv1HGuhTgXvJV2HDn1yhhXhQ0WV/vM4j04CezJO25sIXytgUt7BGp0o1PlED/rWjGrPvuyt/7BOQMS0Q==",
"peer": true,
"dependencies": {
"@openaddresses/batch-error": "^2.1.2",
"@turf/bbox": "^6.5.0",
- "@types/express": "^4.17.21",
- "@types/geojson": "^7946.0.13",
"mkdirp": "^3.0.0",
"pg-structure": "^7.15.0",
"postgres": "^3.4.3",
- "turbo": "^1.11.3",
"wkx": "^0.5.0"
},
"peerDependencies": {
@@ -1718,6 +1137,35 @@
"node": ">=14"
}
},
+ "node_modules/@sinclair/typebox": {
+ "version": "0.32.14",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.32.14.tgz",
+ "integrity": "sha512-EC77Mw8huT2z9YlYbWfpIQgN6shZE1tH4NP4/Trig8UBel9FZNMZRJ42ubJI8PLor2uIU+waLml1dce5ReCOPg=="
+ },
+ "node_modules/@tsconfig/node10": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
+ "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
+ "dev": true
+ },
+ "node_modules/@tsconfig/node12": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
+ "dev": true
+ },
+ "node_modules/@tsconfig/node14": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
+ "dev": true
+ },
+ "node_modules/@tsconfig/node16": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
+ "dev": true
+ },
"node_modules/@turf/bbox": {
"version": "6.5.0",
"resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz",
@@ -1769,19 +1217,11 @@
"@types/node": "*"
}
},
- "node_modules/@types/debug": {
- "version": "4.1.12",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
- "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
- "dev": true,
- "dependencies": {
- "@types/ms": "*"
- }
- },
"node_modules/@types/express": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
"integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
+ "dev": true,
"dependencies": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "^4.17.33",
@@ -1793,6 +1233,7 @@
"version": "4.17.43",
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz",
"integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==",
+ "dev": true,
"dependencies": {
"@types/node": "*",
"@types/qs": "*",
@@ -1800,104 +1241,55 @@
"@types/send": "*"
}
},
- "node_modules/@types/extend": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.4.tgz",
- "integrity": "sha512-ArMouDUTJEz1SQRpFsT2rIw7DeqICFv5aaVzLSIYMYQSLcwcGOfT3VyglQs/p7K3F7fT4zxr0NWxYZIdifD6dA==",
- "dev": true
- },
- "node_modules/@types/geojson": {
- "version": "7946.0.14",
- "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz",
- "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==",
- "peer": true
- },
- "node_modules/@types/hast": {
- "version": "2.3.10",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz",
- "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2"
- }
- },
"node_modules/@types/http-errors": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
- "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA=="
+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
+ "dev": true
},
"node_modules/@types/json-schema": {
"version": "7.0.15",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
- },
- "node_modules/@types/lodash": {
- "version": "4.14.202",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz",
- "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ=="
- },
- "node_modules/@types/lodash.clonedeep": {
- "version": "4.5.9",
- "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.9.tgz",
- "integrity": "sha512-19429mWC+FyaAhOLzsS8kZUsI+/GmBAQ0HFiCPsKGU+7pBXOQWhyrY6xNNDwUSX8SMZMJvuFVMF9O5dQOlQK9Q==",
- "dependencies": {
- "@types/lodash": "*"
- }
- },
- "node_modules/@types/mdast": {
- "version": "3.0.15",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz",
- "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2"
- }
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true
},
"node_modules/@types/mime": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
- "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
- },
- "node_modules/@types/ms": {
- "version": "0.7.34",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
- "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
"dev": true
},
"node_modules/@types/node": {
- "version": "20.11.16",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz",
- "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==",
+ "version": "20.11.19",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz",
+ "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==",
"dependencies": {
"undici-types": "~5.26.4"
}
},
- "node_modules/@types/normalize-package-data": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dev": true
- },
- "node_modules/@types/parse5": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz",
- "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==",
- "dev": true
- },
"node_modules/@types/qs": {
"version": "6.9.11",
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz",
- "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ=="
+ "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==",
+ "dev": true
},
"node_modules/@types/range-parser": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
- "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+ "dev": true
+ },
+ "node_modules/@types/semver": {
+ "version": "7.5.7",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.7.tgz",
+ "integrity": "sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==",
+ "dev": true
},
"node_modules/@types/send": {
"version": "0.17.4",
"resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
"integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+ "dev": true,
"dependencies": {
"@types/mime": "^1",
"@types/node": "*"
@@ -1907,162 +1299,274 @@
"version": "1.15.5",
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz",
"integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==",
+ "dev": true,
"dependencies": {
"@types/http-errors": "*",
"@types/mime": "*",
"@types/node": "*"
}
},
- "node_modules/@types/supports-color": {
- "version": "8.1.3",
- "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.3.tgz",
- "integrity": "sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==",
- "dev": true
- },
- "node_modules/@types/unist": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz",
- "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==",
- "dev": true
- },
- "node_modules/@typescript-plus/fast-memoize-decorator": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@typescript-plus/fast-memoize-decorator/-/fast-memoize-decorator-0.1.0.tgz",
- "integrity": "sha512-OViz04jbmg7yyPso2rgrn/hEuXeELU2yHkBpdultWyvbyRRHrkK9ZD+i9jYbVgJGE6gJ5iz7HYOXZ2ORHbqlpw==",
- "peer": true,
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.0.2.tgz",
+ "integrity": "sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==",
+ "dev": true,
"dependencies": {
- "fast-memoize": "^2.3.2"
+ "@eslint-community/regexpp": "^4.5.1",
+ "@typescript-eslint/scope-manager": "7.0.2",
+ "@typescript-eslint/type-utils": "7.0.2",
+ "@typescript-eslint/utils": "7.0.2",
+ "@typescript-eslint/visitor-keys": "7.0.2",
+ "debug": "^4.3.4",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.4",
+ "natural-compare": "^1.4.0",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^7.0.0",
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/@ungap/structured-clone": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
- "dev": true
- },
- "node_modules/@vue/compiler-core": {
- "version": "3.4.15",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.15.tgz",
- "integrity": "sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==",
+ "node_modules/@typescript-eslint/parser": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.0.2.tgz",
+ "integrity": "sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==",
"dev": true,
- "optional": true,
"dependencies": {
- "@babel/parser": "^7.23.6",
- "@vue/shared": "3.4.15",
- "entities": "^4.5.0",
- "estree-walker": "^2.0.2",
- "source-map-js": "^1.0.2"
+ "@typescript-eslint/scope-manager": "7.0.2",
+ "@typescript-eslint/types": "7.0.2",
+ "@typescript-eslint/typescript-estree": "7.0.2",
+ "@typescript-eslint/visitor-keys": "7.0.2",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/@vue/compiler-dom": {
- "version": "3.4.15",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz",
- "integrity": "sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==",
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.0.2.tgz",
+ "integrity": "sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==",
"dev": true,
- "optional": true,
"dependencies": {
- "@vue/compiler-core": "3.4.15",
- "@vue/shared": "3.4.15"
+ "@typescript-eslint/types": "7.0.2",
+ "@typescript-eslint/visitor-keys": "7.0.2"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@vue/compiler-sfc": {
- "version": "3.4.15",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz",
- "integrity": "sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==",
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.0.2.tgz",
+ "integrity": "sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==",
"dev": true,
- "optional": true,
"dependencies": {
- "@babel/parser": "^7.23.6",
- "@vue/compiler-core": "3.4.15",
- "@vue/compiler-dom": "3.4.15",
- "@vue/compiler-ssr": "3.4.15",
- "@vue/shared": "3.4.15",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.5",
- "postcss": "^8.4.33",
- "source-map-js": "^1.0.2"
+ "@typescript-eslint/typescript-estree": "7.0.2",
+ "@typescript-eslint/utils": "7.0.2",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/@vue/compiler-ssr": {
- "version": "3.4.15",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz",
- "integrity": "sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==",
+ "node_modules/@typescript-eslint/types": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.0.2.tgz",
+ "integrity": "sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==",
"dev": true,
- "optional": true,
- "dependencies": {
- "@vue/compiler-dom": "3.4.15",
- "@vue/shared": "3.4.15"
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@vue/shared": {
- "version": "3.4.15",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.15.tgz",
- "integrity": "sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==",
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.0.2.tgz",
+ "integrity": "sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==",
"dev": true,
- "optional": true
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
+ "@typescript-eslint/types": "7.0.2",
+ "@typescript-eslint/visitor-keys": "7.0.2",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": ">= 0.6"
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/acorn": {
- "version": "8.11.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
- "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "node_modules/@typescript-eslint/utils": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.0.2.tgz",
+ "integrity": "sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==",
"dev": true,
- "bin": {
- "acorn": "bin/acorn"
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.12",
+ "@types/semver": "^7.5.0",
+ "@typescript-eslint/scope-manager": "7.0.2",
+ "@typescript-eslint/types": "7.0.2",
+ "@typescript-eslint/typescript-estree": "7.0.2",
+ "semver": "^7.5.4"
},
"engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
"peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "eslint": "^8.56.0"
}
},
- "node_modules/ajv": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
- "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.0.2.tgz",
+ "integrity": "sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==",
+ "dev": true,
"dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
+ "@typescript-eslint/types": "7.0.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/ajv-formats": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
- "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "node_modules/@typescript-plus/fast-memoize-decorator": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@typescript-plus/fast-memoize-decorator/-/fast-memoize-decorator-0.1.0.tgz",
+ "integrity": "sha512-OViz04jbmg7yyPso2rgrn/hEuXeELU2yHkBpdultWyvbyRRHrkK9ZD+i9jYbVgJGE6gJ5iz7HYOXZ2ORHbqlpw==",
+ "peer": true,
+ "dependencies": {
+ "fast-memoize": "^2.3.2"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"dependencies": {
- "ajv": "^8.0.0"
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
},
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
"peerDependencies": {
- "ajv": "^8.0.0"
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz",
+ "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
},
- "peerDependenciesMeta": {
- "ajv": {
- "optional": true
- }
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/ansi-regex": {
@@ -2073,6 +1577,12 @@
"node": ">=8"
}
},
+ "node_modules/ansi-sequence-parser": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz",
+ "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==",
+ "dev": true
+ },
"node_modules/ansi-styles": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
@@ -2084,23 +1594,17 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
+ "node_modules/arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "dev": true
},
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
},
"node_modules/array-buffer-byte-length": {
"version": "1.0.1",
@@ -2123,6 +1627,15 @@
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/array.prototype.every": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.5.tgz",
@@ -2164,10 +1677,13 @@
}
},
"node_modules/available-typed-arrays": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz",
- "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
"dev": true,
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
"engines": {
"node": ">= 0.4"
},
@@ -2175,16 +1691,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/bail": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
- "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -2206,15 +1712,6 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
- "node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/body-parser": {
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
@@ -2238,6 +1735,19 @@
"npm": "1.2.8000 || >= 1.4.16"
}
},
+ "node_modules/body-parser/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
"node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
@@ -2258,38 +1768,6 @@
"node": ">=8"
}
},
- "node_modules/browserslist": {
- "version": "4.22.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz",
- "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "caniuse-lite": "^1.0.30001580",
- "electron-to-chromium": "^1.4.648",
- "node-releases": "^2.0.14",
- "update-browserslist-db": "^1.0.13"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
@@ -2314,14 +1792,15 @@
}
},
"node_modules/call-bind": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz",
- "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
"dependencies": {
+ "es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.3",
- "set-function-length": "^1.2.0"
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
},
"engines": {
"node": ">= 0.4"
@@ -2351,40 +1830,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/caniuse-lite": {
- "version": "1.0.30001584",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001584.tgz",
- "integrity": "sha512-LOz7CCQ9M1G7OjJOF9/mzmqmj3jE/7VOmrfw6Mgs0E8cjOsbRXQJHsPBfmBOXDskXKrHLyyW3n7kpDW/4BsfpQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ]
- },
- "node_modules/ccount": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
- "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
"node_modules/chalk": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
"integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+ "peer": true,
"engines": {
"node": "^12.17.0 || ^14.13 || >=16.0.0"
},
@@ -2392,63 +1842,6 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/character-entities": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
- "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-entities-html4": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
- "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-entities-legacy": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
- "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
"node_modules/cli-color": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.3.tgz",
@@ -2494,24 +1887,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/cliui/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/cliui/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
"node_modules/cliui/node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -2550,29 +1925,20 @@
}
},
"node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
- "color-name": "1.1.3"
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
}
},
"node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/comma-separated-tokens": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
- "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/commander": {
"version": "9.5.0",
@@ -2608,12 +1974,6 @@
"node": ">= 0.6"
}
},
- "node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
- "dev": true
- },
"node_modules/cookie": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
@@ -2642,6 +2002,12 @@
"url": "https://github.com/sponsors/mesqueeb"
}
},
+ "node_modules/create-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "dev": true
+ },
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -2665,32 +2031,20 @@
"type": "^1.0.1"
}
},
- "node_modules/de-indent": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
- "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
- "dev": true,
- "optional": true
- },
"node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/decode-named-character-reference": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz",
- "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==",
- "dev": true,
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
- "character-entities": "^2.0.0"
+ "ms": "2.1.2"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
"node_modules/deep-equal": {
@@ -2732,17 +2086,19 @@
"dev": true
},
"node_modules/define-data-property": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz",
- "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"dependencies": {
+ "es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.2",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.1"
+ "gopd": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/define-properties": {
@@ -2779,15 +2135,6 @@
"node": ">= 0.8"
}
},
- "node_modules/dequal": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/destroy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
@@ -2798,9 +2145,9 @@
}
},
"node_modules/diff": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
- "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"dev": true,
"engines": {
"node": ">=0.3.1"
@@ -2818,114 +2165,43 @@
"node": "*"
}
},
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
"dev": true,
"dependencies": {
- "esutils": "^2.0.2"
+ "path-type": "^4.0.0"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=8"
}
},
- "node_modules/doctrine-temporary-fork": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine-temporary-fork/-/doctrine-temporary-fork-2.1.0.tgz",
- "integrity": "sha512-nliqOv5NkE4zMON4UA6AMJE6As35afs8aYXATpU4pTUdIKiARZwrJVEP1boA3Rx1ZXHVkwxkhcq4VkqvsuRLsA==",
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
"dependencies": {
"esutils": "^2.0.2"
},
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/documentation": {
- "version": "14.0.3",
- "resolved": "https://registry.npmjs.org/documentation/-/documentation-14.0.3.tgz",
- "integrity": "sha512-B7cAviVKN9Rw7Ofd+9grhVuxiHwly6Ieh+d/ceMw8UdBOv/irkuwnDEJP8tq0wgdLJDUVuIkovV+AX9mTrZFxg==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.18.10",
- "@babel/generator": "^7.18.10",
- "@babel/parser": "^7.18.11",
- "@babel/traverse": "^7.18.11",
- "@babel/types": "^7.18.10",
- "chalk": "^5.0.1",
- "chokidar": "^3.5.3",
- "diff": "^5.1.0",
- "doctrine-temporary-fork": "2.1.0",
- "git-url-parse": "^13.1.0",
- "github-slugger": "1.4.0",
- "glob": "^8.0.3",
- "globals-docs": "^2.4.1",
- "highlight.js": "^11.6.0",
- "ini": "^3.0.0",
- "js-yaml": "^4.1.0",
- "konan": "^2.1.1",
- "lodash": "^4.17.21",
- "mdast-util-find-and-replace": "^2.2.1",
- "mdast-util-inject": "^1.1.0",
- "micromark-util-character": "^1.1.0",
- "parse-filepath": "^1.0.2",
- "pify": "^6.0.0",
- "read-pkg-up": "^9.1.0",
- "remark": "^14.0.2",
- "remark-gfm": "^3.0.1",
- "remark-html": "^15.0.1",
- "remark-reference-links": "^6.0.1",
- "remark-toc": "^8.0.1",
- "resolve": "^1.22.1",
- "strip-json-comments": "^5.0.0",
- "unist-builder": "^3.0.0",
- "unist-util-visit": "^4.1.0",
- "vfile": "^5.3.4",
- "vfile-reporter": "^7.0.4",
- "vfile-sort": "^3.0.0",
- "yargs": "^17.5.1"
- },
- "bin": {
- "documentation": "bin/documentation.js"
- },
- "engines": {
- "node": ">=14"
- },
- "optionalDependencies": {
- "@vue/compiler-sfc": "^3.2.37",
- "vue-template-compiler": "^2.7.8"
+ "node": ">=6.0.0"
}
},
- "node_modules/documentation/node_modules/glob": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
- "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
- "dev": true,
+ "node_modules/dot-prop": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
+ "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
+ "peer": true,
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^5.0.1",
- "once": "^1.3.0"
+ "is-obj": "^2.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/documentation/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/dotenv": {
@@ -3039,39 +2315,21 @@
"node": ">=10"
}
},
- "node_modules/drizzle-kit/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "node_modules/drizzle-kit/node_modules/minimatch": {
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz",
+ "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==",
"peer": true,
"dependencies": {
- "yallist": "^4.0.0"
+ "brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=10"
- }
- },
- "node_modules/drizzle-kit/node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
- "peer": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
},
- "engines": {
- "node": ">=10"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/drizzle-kit/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "peer": true
- },
"node_modules/drizzle-orm": {
"version": "0.29.3",
"resolved": "https://registry.npmjs.org/drizzle-orm/-/drizzle-orm-0.29.3.tgz",
@@ -3180,12 +2438,6 @@
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
- "node_modules/electron-to-chromium": {
- "version": "1.4.657",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.657.tgz",
- "integrity": "sha512-On2ymeleg6QbRuDk7wNgDdXtNqlJLM2w4Agx1D/RiTmItiL+a9oq5p7HUa2ZtkAtGBe/kil2dq/7rPfkbe0r5w==",
- "dev": true
- },
"node_modules/emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
@@ -3199,19 +2451,6 @@
"node": ">= 0.8"
}
},
- "node_modules/entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "dev": true,
- "optional": true,
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
"node_modules/env-paths": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz",
@@ -3224,60 +2463,53 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
"node_modules/es-abstract": {
- "version": "1.22.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
- "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
+ "version": "1.22.4",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz",
+ "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==",
"dev": true,
"dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "arraybuffer.prototype.slice": "^1.0.2",
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.5",
- "es-set-tostringtag": "^2.0.1",
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.6",
+ "call-bind": "^1.0.7",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.2",
"es-to-primitive": "^1.2.1",
"function.prototype.name": "^1.1.6",
- "get-intrinsic": "^1.2.2",
- "get-symbol-description": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
+ "has-property-descriptors": "^1.0.2",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
- "hasown": "^2.0.0",
- "internal-slot": "^1.0.5",
- "is-array-buffer": "^3.0.2",
+ "hasown": "^2.0.1",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
"is-callable": "^1.2.7",
"is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4",
"is-shared-array-buffer": "^1.0.2",
"is-string": "^1.0.7",
- "is-typed-array": "^1.1.12",
+ "is-typed-array": "^1.1.13",
"is-weakref": "^1.0.2",
"object-inspect": "^1.13.1",
"object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.1",
- "safe-array-concat": "^1.0.1",
- "safe-regex-test": "^1.0.0",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.0",
+ "safe-regex-test": "^1.0.3",
"string.prototype.trim": "^1.2.8",
"string.prototype.trimend": "^1.0.7",
"string.prototype.trimstart": "^1.0.7",
- "typed-array-buffer": "^1.0.0",
+ "typed-array-buffer": "^1.0.1",
"typed-array-byte-length": "^1.0.0",
"typed-array-byte-offset": "^1.0.0",
"typed-array-length": "^1.0.4",
"unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.13"
+ "which-typed-array": "^1.1.14"
},
"engines": {
"node": ">= 0.4"
@@ -3286,6 +2518,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
@@ -3443,29 +2686,6 @@
"esbuild": ">=0.12 <1"
}
},
- "node_modules/esbuild-register/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "peer": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/esbuild-register/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "peer": true
- },
"node_modules/escalade": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
@@ -3608,6 +2828,15 @@
"node": "*"
}
},
+ "node_modules/eslint-plugin-node/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/eslint-scope": {
"version": "7.2.2",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
@@ -3660,22 +2889,6 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint/node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
"node_modules/eslint/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -3717,189 +2930,75 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/eslint/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/eslint/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"dependencies": {
- "color-name": "~1.1.4"
+ "brace-expansion": "^1.1.7"
},
"engines": {
- "node": ">=7.0.0"
+ "node": "*"
}
},
- "node_modules/eslint/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "node_modules/eslint/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "node_modules/espree": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
"dependencies": {
- "ms": "2.1.2"
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
},
"engines": {
- "node": ">=6.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint/node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "node_modules/esquery": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
"dev": true,
"dependencies": {
- "is-glob": "^4.0.3"
+ "estraverse": "^5.1.0"
},
"engines": {
- "node": ">=10.13.0"
+ "node": ">=0.10"
}
},
- "node_modules/eslint/node_modules/globals": {
- "version": "13.24.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
- "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
"dependencies": {
- "type-fest": "^0.20.2"
+ "estraverse": "^5.2.0"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=4.0"
}
},
- "node_modules/eslint/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=4.0"
}
},
- "node_modules/eslint/node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- },
- "node_modules/eslint/node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
"engines": {
- "node": "*"
- }
- },
- "node_modules/eslint/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/eslint/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint/node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/espree": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
- "dev": true,
- "dependencies": {
- "acorn": "^8.9.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
- "dev": true,
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "dev": true,
- "optional": true
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "node": ">=0.10.0"
}
},
"node_modules/etag": {
@@ -3961,20 +3060,6 @@
"node": ">= 0.10.0"
}
},
- "node_modules/express-json-validator-middleware": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/express-json-validator-middleware/-/express-json-validator-middleware-3.0.1.tgz",
- "integrity": "sha512-DkqrIwS4O1eCqshuBNG76dBV+BuoXhgsiUjW9Rh3aBerlIY6fwIrNQ+UZLqh6CLbqcQRQTbqiNA5AlneqlUflA==",
- "dependencies": {
- "@types/express": "^4.17.3",
- "@types/express-serve-static-core": "^4.17.2",
- "@types/json-schema": "^7.0.4",
- "ajv": "^8.11.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
"node_modules/express/node_modules/body-parser": {
"version": "1.20.1",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
@@ -3998,6 +3083,19 @@
"npm": "1.2.8000 || >= 1.4.16"
}
},
+ "node_modules/express/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/express/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
"node_modules/express/node_modules/raw-body": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
@@ -4027,16 +3125,39 @@
"integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==",
"peer": true
},
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
- },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
},
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
@@ -4106,6 +3227,19 @@
"node": ">= 0.8"
}
},
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
"node_modules/find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -4137,9 +3271,9 @@
}
},
"node_modules/flatted": {
- "version": "3.2.9",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
- "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.0.tgz",
+ "integrity": "sha512-noqGuLw158+DuD9UPRKHpJ2hGxpFyDlYYrfM0mWt4XhT4n0lwzTLh70Tkdyy4kyTmyTT9Bv7bWAJqw7cgkEXDg==",
"dev": true
},
"node_modules/for-each": {
@@ -4187,20 +3321,6 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -4236,15 +3356,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -4282,13 +3393,14 @@
}
},
"node_modules/get-symbol-description": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.1.tgz",
- "integrity": "sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.5",
- "es-errors": "^1.3.0"
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
},
"engines": {
"node": ">= 0.4"
@@ -4309,31 +3421,6 @@
"url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
}
},
- "node_modules/git-up": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz",
- "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==",
- "dev": true,
- "dependencies": {
- "is-ssh": "^1.4.0",
- "parse-url": "^8.1.0"
- }
- },
- "node_modules/git-url-parse": {
- "version": "13.1.1",
- "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-13.1.1.tgz",
- "integrity": "sha512-PCFJyeSSdtnbfhSNRw9Wk96dDCNx+sogTe4YNXeXSJxt7xz5hvXekuRn9JX7m+Mf4OscCu8h+mtAl3+h5Fo8lQ==",
- "dev": true,
- "dependencies": {
- "git-up": "^7.0.0"
- }
- },
- "node_modules/github-slugger": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz",
- "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==",
- "dev": true
- },
"node_modules/glob": {
"version": "10.3.10",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
@@ -4356,46 +3443,32 @@
}
},
"node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dev": true,
"dependencies": {
- "is-glob": "^4.0.1"
+ "is-glob": "^4.0.3"
},
"engines": {
- "node": ">= 6"
+ "node": ">=10.13.0"
}
},
- "node_modules/glob/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
"dependencies": {
- "brace-expansion": "^2.0.1"
+ "type-fest": "^0.20.2"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "engines": {
- "node": ">=4"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/globals-docs": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/globals-docs/-/globals-docs-2.4.1.tgz",
- "integrity": "sha512-qpPnUKkWnz8NESjrCvnlGklsgiQzlq+rcCxoG5uNQ+dNA7cFMCmn231slLAwS2N/PlkzZ3COL8CcS10jXmLHqg==",
- "dev": true
- },
"node_modules/globalthis": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
@@ -4411,6 +3484,26 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
@@ -4464,29 +3557,29 @@
}
},
"node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
"node_modules/has-property-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
- "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"dependencies": {
- "get-intrinsic": "^1.2.2"
+ "es-define-property": "^1.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
"engines": {
"node": ">= 0.4"
},
@@ -4521,9 +3614,9 @@
}
},
"node_modules/hasown": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
- "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
+ "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
"dependencies": {
"function-bind": "^1.1.2"
},
@@ -4531,231 +3624,36 @@
"node": ">= 0.4"
}
},
- "node_modules/hast-util-from-parse5": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz",
- "integrity": "sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==",
- "dev": true,
+ "node_modules/heap": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz",
+ "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==",
+ "peer": true
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"dependencies": {
- "@types/hast": "^2.0.0",
- "@types/unist": "^2.0.0",
- "hastscript": "^7.0.0",
- "property-information": "^6.0.0",
- "vfile": "^5.0.0",
- "vfile-location": "^4.0.0",
- "web-namespaces": "^2.0.0"
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "engines": {
+ "node": ">= 0.8"
}
},
- "node_modules/hast-util-parse-selector": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz",
- "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==",
- "dev": true,
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dependencies": {
- "@types/hast": "^2.0.0"
+ "safer-buffer": ">= 2.1.2 < 3"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-raw": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz",
- "integrity": "sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==",
- "dev": true,
- "dependencies": {
- "@types/hast": "^2.0.0",
- "@types/parse5": "^6.0.0",
- "hast-util-from-parse5": "^7.0.0",
- "hast-util-to-parse5": "^7.0.0",
- "html-void-elements": "^2.0.0",
- "parse5": "^6.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0",
- "vfile": "^5.0.0",
- "web-namespaces": "^2.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-sanitize": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-4.1.0.tgz",
- "integrity": "sha512-Hd9tU0ltknMGRDv+d6Ro/4XKzBqQnP/EZrpiTbpFYfXv/uOhWeKc+2uajcbEvAEH98VZd7eII2PiXm13RihnLw==",
- "dev": true,
- "dependencies": {
- "@types/hast": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-html": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz",
- "integrity": "sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==",
- "dev": true,
- "dependencies": {
- "@types/hast": "^2.0.0",
- "@types/unist": "^2.0.0",
- "ccount": "^2.0.0",
- "comma-separated-tokens": "^2.0.0",
- "hast-util-raw": "^7.0.0",
- "hast-util-whitespace": "^2.0.0",
- "html-void-elements": "^2.0.0",
- "property-information": "^6.0.0",
- "space-separated-tokens": "^2.0.0",
- "stringify-entities": "^4.0.0",
- "zwitch": "^2.0.4"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-parse5": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz",
- "integrity": "sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==",
- "dev": true,
- "dependencies": {
- "@types/hast": "^2.0.0",
- "comma-separated-tokens": "^2.0.0",
- "property-information": "^6.0.0",
- "space-separated-tokens": "^2.0.0",
- "web-namespaces": "^2.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-whitespace": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz",
- "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hastscript": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz",
- "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==",
- "dev": true,
- "dependencies": {
- "@types/hast": "^2.0.0",
- "comma-separated-tokens": "^2.0.0",
- "hast-util-parse-selector": "^3.0.0",
- "property-information": "^6.0.0",
- "space-separated-tokens": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true,
- "optional": true,
- "bin": {
- "he": "bin/he"
- }
- },
- "node_modules/heap": {
- "version": "0.2.7",
- "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz",
- "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==",
- "peer": true
- },
- "node_modules/highlight.js": {
- "version": "11.9.0",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz",
- "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==",
- "dev": true,
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/hosted-git-info/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/hosted-git-info/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/html-void-elements": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz",
- "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
+ "engines": {
+ "node": ">=0.10.0"
}
},
"node_modules/ignore": {
@@ -4793,12 +3691,12 @@
}
},
"node_modules/indexable-array": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/indexable-array/-/indexable-array-0.7.0.tgz",
- "integrity": "sha512-uHpBgsGbXSIkM5aA/RR5FKc2TMJ0lLRLz+pepiRrUVbNb8vB+9lBiRQyVNF+Houfcl5H4XZK50tUdlHHRrZpiA==",
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/indexable-array/-/indexable-array-0.7.4.tgz",
+ "integrity": "sha512-74ulqV6c2zYxBlm4KZ+EKc5eQzwKK33bYYTTCWPybEOH95UgMa8YanncpPvjW5/6kgDe71oq2tU+AhLdaHtoRw==",
"peer": true,
"dependencies": {
- "lodash.set": "^4.3.2",
+ "dot-prop": "^6.0.1",
"sorted-array-functions": "^1.2.0",
"tslib": "^2.1.0"
},
@@ -4829,15 +3727,6 @@
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
- "node_modules/ini": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz",
- "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==",
- "dev": true,
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
"node_modules/internal-slot": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
@@ -4860,19 +3749,6 @@
"node": ">= 0.10"
}
},
- "node_modules/is-absolute": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
- "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
- "dev": true,
- "dependencies": {
- "is-relative": "^1.0.0",
- "is-windows": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
@@ -4905,12 +3781,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
"node_modules/is-bigint": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
@@ -4923,18 +3793,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/is-boolean-object": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
@@ -4951,29 +3809,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-buffer": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/is-callable": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
@@ -5052,9 +3887,9 @@
}
},
"node_modules/is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
"dev": true,
"engines": {
"node": ">= 0.4"
@@ -5087,6 +3922,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/is-path-inside": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
@@ -5096,18 +3940,6 @@
"node": ">=8"
}
},
- "node_modules/is-plain-obj": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
- "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/is-promise": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
@@ -5130,18 +3962,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-relative": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
- "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
- "dev": true,
- "dependencies": {
- "is-unc-path": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-set": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
@@ -5163,15 +3983,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-ssh": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz",
- "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==",
- "dev": true,
- "dependencies": {
- "protocols": "^2.0.1"
- }
- },
"node_modules/is-string": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
@@ -5217,18 +4028,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-unc-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
- "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
- "dev": true,
- "dependencies": {
- "unc-path-regex": "^0.1.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-weakmap": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
@@ -5275,15 +4074,6 @@
"url": "https://github.com/sponsors/mesqueeb"
}
},
- "node_modules/is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
@@ -5312,16 +4102,11 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
"node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
"dependencies": {
"argparse": "^2.0.1"
},
@@ -5329,18 +4114,6 @@
"js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
@@ -5364,16 +4137,11 @@
"node": "*"
}
},
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
"node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
@@ -5385,6 +4153,7 @@
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "peer": true,
"bin": {
"json5": "lib/cli.js"
},
@@ -5392,6 +4161,12 @@
"node": ">=6"
}
},
+ "node_modules/jsonc-parser": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz",
+ "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==",
+ "dev": true
+ },
"node_modules/keyv": {
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
@@ -5401,25 +4176,6 @@
"json-buffer": "3.0.1"
}
},
- "node_modules/kleur": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
- "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/konan": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/konan/-/konan-2.1.1.tgz",
- "integrity": "sha512-7ZhYV84UzJ0PR/RJnnsMZcAbn+kLasJhVNWsu8ZyVEJYRpGA5XESQ9d/7zOa08U0Ou4cmB++hMNY/3OSV9KIbg==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.10.5",
- "@babel/traverse": "^7.10.5"
- }
- },
"node_modules/levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
@@ -5433,12 +4189,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
"node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
@@ -5454,17 +4204,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
- },
- "node_modules/lodash.clonedeep": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
- },
"node_modules/lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
@@ -5477,36 +4216,19 @@
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true
},
- "node_modules/lodash.set": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz",
- "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==",
- "peer": true
- },
"node_modules/lodash.throttle": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
"integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==",
"peer": true
},
- "node_modules/longest-streak": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
- "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
"node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dev": true,
- "dependencies": {
- "yallist": "^3.0.2"
- }
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
+ "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
+ "engines": {
+ "node": "14 || >=16.14"
+ }
},
"node_modules/lru-queue": {
"version": "0.1.0",
@@ -5517,334 +4239,28 @@
"es5-ext": "~0.10.2"
}
},
- "node_modules/magic-string": {
- "version": "0.30.7",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz",
- "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/map-cache": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/markdown-table": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz",
- "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/mdast-util-definitions": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz",
- "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "unist-util-visit": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-find-and-replace": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz",
- "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "escape-string-regexp": "^5.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit-parents": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/mdast-util-from-markdown": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz",
- "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==",
- "dev": true,
- "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"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz",
- "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz",
- "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==",
- "dev": true,
- "dependencies": {
- "mdast-util-from-markdown": "^1.0.0",
- "mdast-util-gfm-autolink-literal": "^1.0.0",
- "mdast-util-gfm-footnote": "^1.0.0",
- "mdast-util-gfm-strikethrough": "^1.0.0",
- "mdast-util-gfm-table": "^1.0.0",
- "mdast-util-gfm-task-list-item": "^1.0.0",
- "mdast-util-to-markdown": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-autolink-literal": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz",
- "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "ccount": "^2.0.0",
- "mdast-util-find-and-replace": "^2.0.0",
- "micromark-util-character": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-footnote": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz",
- "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-markdown": "^1.3.0",
- "micromark-util-normalize-identifier": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-strikethrough": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz",
- "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-markdown": "^1.3.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-table": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz",
- "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "markdown-table": "^3.0.0",
- "mdast-util-from-markdown": "^1.0.0",
- "mdast-util-to-markdown": "^1.3.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-task-list-item": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz",
- "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-markdown": "^1.3.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-inject": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-inject/-/mdast-util-inject-1.1.0.tgz",
- "integrity": "sha512-CcJ0mHa36QYumDKiZ2OIR+ClhfOM7zIzN+Wfy8tRZ1hpH9DKLCS+Mh4DyK5bCxzE9uxMWcbIpeNFWsg1zrj/2g==",
- "dev": true,
- "dependencies": {
- "mdast-util-to-string": "^1.0.0"
- }
- },
- "node_modules/mdast-util-phrasing": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz",
- "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "unist-util-is": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-hast": {
- "version": "12.3.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz",
- "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==",
- "dev": true,
- "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-util-generated": "^2.0.0",
- "unist-util-position": "^4.0.0",
- "unist-util-visit": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-markdown": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz",
- "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "@types/unist": "^2.0.0",
- "longest-streak": "^3.0.0",
- "mdast-util-phrasing": "^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"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-markdown/node_modules/mdast-util-to-string": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz",
- "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-string": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
- "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-toc": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-6.1.1.tgz",
- "integrity": "sha512-Er21728Kow8hehecK2GZtb7Ny3omcoPUVrmObiSUwmoRYVZaXLR751QROEFjR8W/vAQdHMLj49Lz20J55XaNpw==",
- "dev": true,
- "dependencies": {
- "@types/extend": "^3.0.0",
- "@types/mdast": "^3.0.0",
- "extend": "^3.0.0",
- "github-slugger": "^2.0.0",
- "mdast-util-to-string": "^3.1.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
+ "node_modules/lunr": {
+ "version": "2.3.9",
+ "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz",
+ "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==",
+ "dev": true
},
- "node_modules/mdast-util-toc/node_modules/github-slugger": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz",
- "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==",
+ "node_modules/make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
"dev": true
},
- "node_modules/mdast-util-toc/node_modules/mdast-util-to-string": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz",
- "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==",
+ "node_modules/marked": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
+ "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
"dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0"
+ "bin": {
+ "marked": "bin/marked.js"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "engines": {
+ "node": ">= 12"
}
},
"node_modules/media-typer": {
@@ -5876,6 +4292,15 @@
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
},
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
@@ -5884,592 +4309,19 @@
"node": ">= 0.6"
}
},
- "node_modules/micromark": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz",
- "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "@types/debug": "^4.0.0",
- "debug": "^4.0.0",
- "decode-named-character-reference": "^1.0.0",
- "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"
- }
- },
- "node_modules/micromark-core-commonmark": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz",
- "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "decode-named-character-reference": "^1.0.0",
- "micromark-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"
- }
- },
- "node_modules/micromark-extension-gfm": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz",
- "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==",
- "dev": true,
- "dependencies": {
- "micromark-extension-gfm-autolink-literal": "^1.0.0",
- "micromark-extension-gfm-footnote": "^1.0.0",
- "micromark-extension-gfm-strikethrough": "^1.0.0",
- "micromark-extension-gfm-table": "^1.0.0",
- "micromark-extension-gfm-tagfilter": "^1.0.0",
- "micromark-extension-gfm-task-list-item": "^1.0.0",
- "micromark-util-combine-extensions": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-autolink-literal": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz",
- "integrity": "sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==",
- "dev": true,
- "dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-sanitize-uri": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-footnote": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz",
- "integrity": "sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==",
- "dev": true,
- "dependencies": {
- "micromark-core-commonmark": "^1.0.0",
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-normalize-identifier": "^1.0.0",
- "micromark-util-sanitize-uri": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-strikethrough": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz",
- "integrity": "sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==",
- "dev": true,
- "dependencies": {
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-classify-character": "^1.0.0",
- "micromark-util-resolve-all": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-table": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz",
- "integrity": "sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==",
- "dev": true,
- "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"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-tagfilter": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz",
- "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==",
- "dev": true,
- "dependencies": {
- "micromark-util-types": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-task-list-item": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz",
- "integrity": "sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==",
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dev": true,
"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"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-factory-destination": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz",
- "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/micromark-factory-label": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz",
- "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0"
- }
- },
- "node_modules/micromark-factory-space": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz",
- "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/micromark-factory-title": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz",
- "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "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"
- }
- },
- "node_modules/micromark-factory-whitespace": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz",
- "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "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"
- }
- },
- "node_modules/micromark-util-character": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz",
- "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/micromark-util-chunked": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz",
- "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-symbol": "^1.0.0"
- }
- },
- "node_modules/micromark-util-classify-character": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz",
- "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/micromark-util-combine-extensions": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz",
- "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/micromark-util-decode-numeric-character-reference": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz",
- "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-symbol": "^1.0.0"
- }
- },
- "node_modules/micromark-util-decode-string": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz",
- "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "decode-named-character-reference": "^1.0.0",
- "micromark-util-character": "^1.0.0",
- "micromark-util-decode-numeric-character-reference": "^1.0.0",
- "micromark-util-symbol": "^1.0.0"
- }
- },
- "node_modules/micromark-util-encode": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz",
- "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/micromark-util-html-tag-name": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz",
- "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/micromark-util-normalize-identifier": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz",
- "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-symbol": "^1.0.0"
- }
- },
- "node_modules/micromark-util-resolve-all": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz",
- "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/micromark-util-sanitize-uri": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz",
- "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-encode": "^1.0.0",
- "micromark-util-symbol": "^1.0.0"
- }
- },
- "node_modules/micromark-util-subtokenize": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz",
- "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "dependencies": {
- "micromark-util-chunked": "^1.0.0",
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0",
- "uvu": "^0.5.0"
- }
- },
- "node_modules/micromark-util-symbol": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz",
- "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/micromark-util-types": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz",
- "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==",
- "dev": true,
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ]
- },
- "node_modules/micromark/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
},
"engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "node": ">=8.6"
}
},
- "node_modules/micromark/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
@@ -6501,15 +4353,14 @@
}
},
"node_modules/minimatch": {
- "version": "7.4.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz",
- "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==",
- "peer": true,
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=10"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -6591,6 +4442,19 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/morgan/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/morgan/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
"node_modules/morgan/node_modules/on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -6602,38 +4466,10 @@
"node": ">= 0.8"
}
},
- "node_modules/mri": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/nanoid": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "optional": true,
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/natural-compare": {
"version": "1.4.0",
@@ -6655,69 +4491,6 @@
"integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==",
"peer": true
},
- "node_modules/node-releases": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
- "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
- "dev": true
- },
- "node_modules/normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^4.0.1",
- "is-core-module": "^2.5.0",
- "semver": "^7.3.4",
- "validate-npm-package-license": "^3.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/normalize-package-data/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/normalize-package-data/node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/normalize-package-data/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/object-inspect": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
@@ -6796,6 +4569,11 @@
"wrappy": "1"
}
},
+ "node_modules/openapi-types": {
+ "version": "12.1.3",
+ "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz",
+ "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw=="
+ },
"node_modules/optionator": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
@@ -6861,62 +4639,6 @@
"node": ">=6"
}
},
- "node_modules/parse-filepath": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
- "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==",
- "dev": true,
- "dependencies": {
- "is-absolute": "^1.0.0",
- "map-cache": "^0.2.0",
- "path-root": "^0.1.1"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parse-path": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.0.0.tgz",
- "integrity": "sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==",
- "dev": true,
- "dependencies": {
- "protocols": "^2.0.0"
- }
- },
- "node_modules/parse-url": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz",
- "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==",
- "dev": true,
- "dependencies": {
- "parse-path": "^7.0.0"
- }
- },
- "node_modules/parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
- },
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@@ -6957,27 +4679,6 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
- "node_modules/path-root": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
- "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==",
- "dev": true,
- "dependencies": {
- "path-root-regex": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-root-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
- "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/path-scurry": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
@@ -6993,19 +4694,20 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/path-scurry/node_modules/lru-cache": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz",
- "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==",
- "engines": {
- "node": "14 || >=16.14"
- }
- },
"node_modules/path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
},
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/pg": {
"version": "8.11.3",
"resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz",
@@ -7073,15 +4775,15 @@
"peer": true
},
"node_modules/pg-structure": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/pg-structure/-/pg-structure-7.15.0.tgz",
- "integrity": "sha512-BBnuKV2gGZHs+2lFi4LY4fwX5sTGvMHCBk9m5klUy7zT1vGP3iK1XRXWwacgmvjynY9Lz3u224eCW5Ho9amKGQ==",
+ "version": "7.15.2",
+ "resolved": "https://registry.npmjs.org/pg-structure/-/pg-structure-7.15.2.tgz",
+ "integrity": "sha512-KrTzwJlRCrDS5PHgZ6qdOrY2CRZvjfw+709RA7cRpGUFl+t17M6cak584Zx4jvahY9ZMRdDF1/BVAMRgo1jwoQ==",
"peer": true,
"dependencies": {
"@typescript-plus/fast-memoize-decorator": "^0.1.0",
"dotenv": "^8.2.0",
"fast-memoize": "^2.5.2",
- "indexable-array": "^0.7.0",
+ "indexable-array": "^0.7.4",
"inflection": "^1.12.0",
"json5": "^2.1.3",
"lodash.get": "^4.4.2",
@@ -7117,12 +4819,6 @@
"split2": "^4.1.0"
}
},
- "node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
- },
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
@@ -7135,45 +4831,13 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/pify": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-6.1.0.tgz",
- "integrity": "sha512-KocF8ve28eFjjuBKKGvzOBGzG8ew2OqOOSxTTZhirkzH7h3BI1vyzqlR0qbfcDBve1Yzo3FVlWUAtCRrbVN8Fw==",
- "dev": true,
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/postcss": {
- "version": "8.4.34",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.34.tgz",
- "integrity": "sha512-4eLTO36woPSocqZ1zIrFD2K1v6wH7pY1uBh0JIM2KKfrVtGvPFiAku6aNOP0W1Wr9qwnaCsF0Z+CrVnryB2A8Q==",
+ "node_modules/possible-typed-array-names": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
"dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "optional": true,
- "dependencies": {
- "nanoid": "^3.3.7",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
- },
"engines": {
- "node": "^10 || ^12 || >=14"
+ "node": ">= 0.4"
}
},
"node_modules/postgres": {
@@ -7237,22 +4901,6 @@
"node": ">= 0.8.0"
}
},
- "node_modules/property-information": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz",
- "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/protocols": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz",
- "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==",
- "dev": true
- },
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@@ -7269,6 +4917,7 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
"engines": {
"node": ">=6"
}
@@ -7306,167 +4955,39 @@
"url": "https://feross.org/support"
}
]
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/read-pkg": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz",
- "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==",
- "dev": true,
- "dependencies": {
- "@types/normalize-package-data": "^2.4.1",
- "normalize-package-data": "^3.0.2",
- "parse-json": "^5.2.0",
- "type-fest": "^2.0.0"
- },
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-pkg-up": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz",
- "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==",
- "dev": true,
- "dependencies": {
- "find-up": "^6.3.0",
- "read-pkg": "^7.1.0",
- "type-fest": "^2.5.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-pkg-up/node_modules/find-up": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
- "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^7.1.0",
- "path-exists": "^5.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-pkg-up/node_modules/locate-path": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
- "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
- "dev": true,
- "dependencies": {
- "p-locate": "^6.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-pkg-up/node_modules/p-limit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
- "dev": true,
- "dependencies": {
- "yocto-queue": "^1.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-pkg-up/node_modules/p-locate": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
- "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
- "dev": true,
- "dependencies": {
- "p-limit": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-pkg-up/node_modules/path-exists": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
- "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
- "node_modules/read-pkg-up/node_modules/yocto-queue": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
- "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
- "dev": true,
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
"engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 0.6"
}
},
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
+ "node_modules/raw-body": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
"dependencies": {
- "picomatch": "^2.2.1"
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
},
"engines": {
- "node": ">=8.10.0"
+ "node": ">= 0.8"
}
},
"node_modules/regexp.prototype.flags": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
- "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
+ "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "set-function-name": "^2.0.0"
+ "call-bind": "^1.0.6",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -7487,115 +5008,6 @@
"url": "https://github.com/sponsors/mysticatea"
}
},
- "node_modules/remark": {
- "version": "14.0.3",
- "resolved": "https://registry.npmjs.org/remark/-/remark-14.0.3.tgz",
- "integrity": "sha512-bfmJW1dmR2LvaMJuAnE88pZP9DktIFYXazkTfOIKZzi3Knk9lT0roItIA24ydOucI3bV/g/tXBA6hzqq3FV9Ew==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "remark-parse": "^10.0.0",
- "remark-stringify": "^10.0.0",
- "unified": "^10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-gfm": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz",
- "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-gfm": "^2.0.0",
- "micromark-extension-gfm": "^2.0.0",
- "unified": "^10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-html": {
- "version": "15.0.2",
- "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-15.0.2.tgz",
- "integrity": "sha512-/CIOI7wzHJzsh48AiuIyIe1clxVkUtreul73zcCXLub0FmnevQE0UMFDQm7NUx8/3rl/4zCshlMfqBdWScQthw==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "hast-util-sanitize": "^4.0.0",
- "hast-util-to-html": "^8.0.0",
- "mdast-util-to-hast": "^12.0.0",
- "unified": "^10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-parse": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz",
- "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-from-markdown": "^1.0.0",
- "unified": "^10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-reference-links": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/remark-reference-links/-/remark-reference-links-6.0.1.tgz",
- "integrity": "sha512-34wY2C6HXSuKVTRtyJJwefkUD8zBOZOSHFZ4aSTnU2F656gr9WeuQ2dL6IJDK3NPd2F6xKF2t4XXcQY9MygAXg==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "unified": "^10.0.0",
- "unist-util-visit": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-stringify": {
- "version": "10.0.3",
- "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.3.tgz",
- "integrity": "sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-to-markdown": "^1.0.0",
- "unified": "^10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-toc": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/remark-toc/-/remark-toc-8.0.1.tgz",
- "integrity": "sha512-7he2VOm/cy13zilnOTZcyAoyoolV26ULlon6XyCFU+vG54Z/LWJnwphj/xKIDLOt66QmJUgTyUvLVHi2aAElyg==",
- "dev": true,
- "dependencies": {
- "@types/mdast": "^3.0.0",
- "mdast-util-toc": "^6.0.0",
- "unified": "^10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -7605,14 +5017,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/resolve": {
"version": "1.22.8",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
@@ -7738,18 +5142,6 @@
"queue-microtask": "^1.2.2"
}
},
- "node_modules/sade": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
- "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
- "dev": true,
- "dependencies": {
- "mri": "^1.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/safe-array-concat": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz",
@@ -7810,12 +5202,28 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
"bin": {
"semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/semver/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/send": {
@@ -7841,6 +5249,19 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/send/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/send/node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
"node_modules/send/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -7877,14 +5298,15 @@
}
},
"node_modules/set-function-name": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
- "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
"dev": true,
"dependencies": {
- "define-data-property": "^1.0.1",
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
"functions-have-names": "^1.2.3",
- "has-property-descriptors": "^1.0.0"
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -7914,6 +5336,18 @@
"node": ">=8"
}
},
+ "node_modules/shiki": {
+ "version": "0.14.7",
+ "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz",
+ "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-sequence-parser": "^1.1.0",
+ "jsonc-parser": "^3.2.0",
+ "vscode-oniguruma": "^1.7.0",
+ "vscode-textmate": "^8.0.0"
+ }
+ },
"node_modules/side-channel": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz",
@@ -7948,6 +5382,15 @@
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
"peer": true
},
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/sorted-array-functions": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz",
@@ -7963,16 +5406,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
- "dev": true,
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/source-map-support": {
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
@@ -7983,48 +5416,6 @@
"source-map": "^0.6.0"
}
},
- "node_modules/space-separated-tokens": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
- "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/spdx-correct": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
- "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
- "dev": true,
- "dependencies": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-exceptions": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz",
- "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==",
- "dev": true
- },
- "node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dev": true,
- "dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-license-ids": {
- "version": "3.0.16",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
- "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==",
- "dev": true
- },
"node_modules/split2": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
@@ -8159,20 +5550,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/stringify-entities": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz",
- "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==",
- "dev": true,
- "dependencies": {
- "character-entities-html4": "^2.0.0",
- "character-entities-legacy": "^3.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
"node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@@ -8197,12 +5574,12 @@
}
},
"node_modules/strip-json-comments": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz",
- "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true,
"engines": {
- "node": ">=14.16"
+ "node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -8221,15 +5598,15 @@
}
},
"node_modules/supports-color": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz",
- "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "has-flag": "^4.0.0"
},
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/supports-preserve-symlinks-flag": {
@@ -8245,15 +5622,15 @@
}
},
"node_modules/tape": {
- "version": "5.7.4",
- "resolved": "https://registry.npmjs.org/tape/-/tape-5.7.4.tgz",
- "integrity": "sha512-uaigP+5H9+E8aaMLKMbGkDd33G5TKu4UFpapqT7um+8xSHQQUS2lJNd+hTj9fFVQLg8bmcIofwc8b9f6+ISSfQ==",
+ "version": "5.7.5",
+ "resolved": "https://registry.npmjs.org/tape/-/tape-5.7.5.tgz",
+ "integrity": "sha512-C5Gm1MR8ujZmNrsmOiHSkKFfY2thrnUrFw/fFtcva9FABbN7LrHuQPi3MTS0Z0i/SLfYSJtRIcJYDUpwPsQ8yA==",
"dev": true,
"dependencies": {
- "@ljharb/resumer": "^0.0.1",
- "@ljharb/through": "^2.3.11",
+ "@ljharb/resumer": "^0.1.2",
+ "@ljharb/through": "^2.3.12",
"array.prototype.every": "^1.1.5",
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.7",
"deep-equal": "^2.2.3",
"defined": "^1.0.1",
"dotignore": "^0.1.2",
@@ -8261,7 +5638,7 @@
"get-package-type": "^0.1.0",
"glob": "^7.2.3",
"has-dynamic-import": "^2.1.0",
- "hasown": "^2.0.0",
+ "hasown": "^2.0.1",
"inherits": "^2.0.4",
"is-regex": "^1.1.4",
"minimist": "^1.2.8",
@@ -8355,15 +5732,6 @@
"next-tick": "1"
}
},
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -8384,125 +5752,84 @@
"node": ">=0.6"
}
},
- "node_modules/trim-lines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
- "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
+ "node_modules/ts-api-utils": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.2.1.tgz",
+ "integrity": "sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==",
"dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
}
},
- "node_modules/trough": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz",
- "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
+ "node_modules/ts-node": {
+ "version": "10.9.1",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
+ "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
"dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
- "peer": true
- },
- "node_modules/turbo": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/turbo/-/turbo-1.12.2.tgz",
- "integrity": "sha512-BcoQjBZ+LJCMdjzWhzQflOinUjek28rWXj07aaaAQ8T3Ehs0JFSjIsXOm4qIbo52G4xk3gFVcUtJhh/QRADl7g==",
- "peer": true,
+ "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",
+ "v8-compile-cache-lib": "^3.0.1",
+ "yn": "3.1.1"
+ },
"bin": {
- "turbo": "bin/turbo"
+ "ts-node": "dist/bin.js",
+ "ts-node-cwd": "dist/bin-cwd.js",
+ "ts-node-esm": "dist/bin-esm.js",
+ "ts-node-script": "dist/bin-script.js",
+ "ts-node-transpile-only": "dist/bin-transpile.js",
+ "ts-script": "dist/bin-script-deprecated.js"
},
- "optionalDependencies": {
- "turbo-darwin-64": "1.12.2",
- "turbo-darwin-arm64": "1.12.2",
- "turbo-linux-64": "1.12.2",
- "turbo-linux-arm64": "1.12.2",
- "turbo-windows-64": "1.12.2",
- "turbo-windows-arm64": "1.12.2"
- }
- },
- "node_modules/turbo-darwin-64": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-1.12.2.tgz",
- "integrity": "sha512-Aq/ePQ5KNx6XGwlZWTVTqpQYfysm1vkwkI6kAYgrX5DjMWn+tUXrSgNx4YNte0F+V4DQ7PtuWX+jRG0h0ZNg0A==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true
- },
- "node_modules/turbo-darwin-arm64": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-1.12.2.tgz",
- "integrity": "sha512-wTr+dqkwJo/eXE+4SPTSeNBKyyfQJhI6I9sKVlCSBmtaNEqoGNgdVzgMUdqrg9AIFzLIiKO+zhfskNaSWpVFow==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "peer": true
- },
- "node_modules/turbo-linux-64": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-1.12.2.tgz",
- "integrity": "sha512-BggBKrLojGarDaa2zBo+kUR3fmjpd6bLA8Unm3Aa2oJw0UvEi3Brd+w9lNsPZHXXQYBUzNUY2gCdxf3RteWb0g==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
- },
- "node_modules/turbo-linux-arm64": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-1.12.2.tgz",
- "integrity": "sha512-v/apSRvVuwYjq1D9MJFsHv2EpGd1S4VoSdZvVfW6FaM06L8CFZa92urNR1svdGYN28YVKwK9Ikc9qudC6t/d5A==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "peer": true
+ "peerDependencies": {
+ "@swc/core": ">=1.2.50",
+ "@swc/wasm": ">=1.2.50",
+ "@types/node": "*",
+ "typescript": ">=2.7"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "@swc/wasm": {
+ "optional": true
+ }
+ }
},
- "node_modules/turbo-windows-64": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-1.12.2.tgz",
- "integrity": "sha512-3uDdwXcRGkgopYFdPDpxQiuQjfQ12Fxq0fhj+iGymav0eWA4W4wzYwSdlUp6rT22qOBIzaEsrIspRwx1DsMkNg==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "peer": true
+ "node_modules/ts-node-test": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/ts-node-test/-/ts-node-test-0.4.3.tgz",
+ "integrity": "sha512-AQ9RFxOHWsAGSefOUOkPw4334+NxWhwtuHeao3gaqnYTH2Y4/0ST5zpQEJVUVtbT/xM1YgndmO+n+gXsZ80GuQ==",
+ "dev": true,
+ "dependencies": {
+ "ts-node": "10.9.1",
+ "yargs": "17.7.2"
+ },
+ "bin": {
+ "ts-node-test": "dist/bin.js"
+ },
+ "engines": {
+ "node": ">=18.7.0"
+ },
+ "peerDependencies": {
+ "typescript": "^4.0.0 || ^5.0.0"
+ }
},
- "node_modules/turbo-windows-arm64": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-1.12.2.tgz",
- "integrity": "sha512-zNIHnwtQfJSjFi7movwhPQh2rfrcKZ7Xv609EN1yX0gEp9GxooCUi2yNnBQ8wTqFjioA2M5hZtGJQ0RrKaEm/Q==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
+ "node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
"peer": true
},
"node_modules/type": {
@@ -8524,12 +5851,12 @@
}
},
"node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
"engines": {
- "node": ">=12.20"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -8548,14 +5875,14 @@
}
},
"node_modules/typed-array-buffer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
- "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.1",
- "is-typed-array": "^1.1.10"
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.13"
},
"engines": {
"node": ">= 0.4"
@@ -8580,16 +5907,17 @@
}
},
"node_modules/typed-array-byte-offset": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
- "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.1.tgz",
+ "integrity": "sha512-tcqKMrTRXjqvHN9S3553NPCaGL0VPgFI92lXszmrE8DMhiDPLBYLlvo8Uu4WZAAX/aGqp/T1sbA4ph8EWjDF9Q==",
"dev": true,
"dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
+ "available-typed-arrays": "^1.0.6",
+ "call-bind": "^1.0.7",
"for-each": "^0.3.3",
+ "gopd": "^1.0.1",
"has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
+ "is-typed-array": "^1.1.13"
},
"engines": {
"node": ">= 0.4"
@@ -8612,6 +5940,40 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/typedoc": {
+ "version": "0.25.8",
+ "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.8.tgz",
+ "integrity": "sha512-mh8oLW66nwmeB9uTa0Bdcjfis+48bAjSH3uqdzSuSawfduROQLlXw//WSNZLYDdhmMVB7YcYZicq6e8T0d271A==",
+ "dev": true,
+ "dependencies": {
+ "lunr": "^2.3.9",
+ "marked": "^4.3.0",
+ "minimatch": "^9.0.3",
+ "shiki": "^0.14.7"
+ },
+ "bin": {
+ "typedoc": "bin/typedoc"
+ },
+ "engines": {
+ "node": ">= 16"
+ },
+ "peerDependencies": {
+ "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
+ "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"node_modules/unbox-primitive": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
@@ -8627,130 +5989,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/unc-path-regex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
- "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/undici-types": {
"version": "5.26.5",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
},
- "node_modules/unified": {
- "version": "10.1.2",
- "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz",
- "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==",
- "dev": true,
- "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"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-builder": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-3.0.1.tgz",
- "integrity": "sha512-gnpOw7DIpCA0vpr6NqdPvTWnlPTApCTRzr+38E6hCWx3rz/cjo83SsKIlS1Z+L5ttScQ2AwutNnb8+tAvpb6qQ==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-generated": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz",
- "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-is": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz",
- "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-position": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz",
- "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-stringify-position": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz",
- "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
- "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0",
- "unist-util-visit-parents": "^5.1.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit-parents": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
- "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
"node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@@ -8759,40 +6002,11 @@
"node": ">= 0.8"
}
},
- "node_modules/update-browserslist-db": {
- "version": "1.0.13",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
- "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
"node_modules/uri-js": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
"dependencies": {
"punycode": "^2.1.0"
}
@@ -8805,33 +6019,11 @@
"node": ">= 0.4.0"
}
},
- "node_modules/uvu": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz",
- "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==",
- "dev": true,
- "dependencies": {
- "dequal": "^2.0.0",
- "diff": "^5.0.0",
- "kleur": "^4.0.3",
- "sade": "^1.7.3"
- },
- "bin": {
- "uvu": "bin.js"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
- "dependencies": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
+ "node_modules/v8-compile-cache-lib": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+ "dev": true
},
"node_modules/vary": {
"version": "1.1.2",
@@ -8841,118 +6033,17 @@
"node": ">= 0.8"
}
},
- "node_modules/vfile": {
- "version": "5.3.7",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz",
- "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "is-buffer": "^2.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "vfile-message": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vfile-location": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz",
- "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "vfile": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vfile-message": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz",
- "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-stringify-position": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vfile-reporter": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.5.tgz",
- "integrity": "sha512-NdWWXkv6gcd7AZMvDomlQbK3MqFWL1RlGzMn++/O2TI+68+nqxCPTvLugdOtfSzXmjh+xUyhp07HhlrbJjT+mw==",
- "dev": true,
- "dependencies": {
- "@types/supports-color": "^8.0.0",
- "string-width": "^5.0.0",
- "supports-color": "^9.0.0",
- "unist-util-stringify-position": "^3.0.0",
- "vfile": "^5.0.0",
- "vfile-message": "^3.0.0",
- "vfile-sort": "^3.0.0",
- "vfile-statistics": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vfile-sort": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-3.0.1.tgz",
- "integrity": "sha512-1os1733XY6y0D5x0ugqSeaVJm9lYgj0j5qdcZQFyxlZOSy1jYarL77lLyb5gK4Wqr1d5OxmuyflSO3zKyFnTFw==",
- "dev": true,
- "dependencies": {
- "vfile": "^5.0.0",
- "vfile-message": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vfile-statistics": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-2.0.1.tgz",
- "integrity": "sha512-W6dkECZmP32EG/l+dp2jCLdYzmnDBIw6jwiLZSER81oR5AHRcVqL+k3Z+pfH1R73le6ayDkJRMk0sutj1bMVeg==",
- "dev": true,
- "dependencies": {
- "vfile": "^5.0.0",
- "vfile-message": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vue-template-compiler": {
- "version": "2.7.16",
- "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz",
- "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==",
- "dev": true,
- "optional": true,
- "dependencies": {
- "de-indent": "^1.0.2",
- "he": "^1.2.0"
- }
+ "node_modules/vscode-oniguruma": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz",
+ "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==",
+ "dev": true
},
- "node_modules/web-namespaces": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
- "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
+ "node_modules/vscode-textmate": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz",
+ "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==",
+ "dev": true
},
"node_modules/which": {
"version": "2.0.2",
@@ -9080,22 +6171,6 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
"node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -9163,10 +6238,9 @@
}
},
"node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"node_modules/yargs": {
"version": "17.7.2",
@@ -9215,6 +6289,15 @@
"node": ">=8"
}
},
+ "node_modules/yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
@@ -9235,16 +6318,6 @@
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
- },
- "node_modules/zwitch": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
- "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
- "dev": true,
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
}
}
}
diff --git a/package.json b/package.json
index 8d4a717..9cf35f8 100644
--- a/package.json
+++ b/package.json
@@ -13,28 +13,33 @@
"node": ">= 18"
},
"scripts": {
- "test": "tape test/**.test.js",
- "lint": "eslint index.js lib/**.js routes/**.js test/**.js",
- "doc": "documentation build index.js -f html -o docs && documentation lint index.js"
+ "test": "ts-node-test test/**.test.ts",
+ "lint": "eslint index.ts lib/**.ts test/**.ts",
+ "build": "tsc",
+ "doc": "typedoc"
},
"dependencies": {
- "@apidevtools/json-schema-ref-parser": "^10.0.0",
"@openaddresses/batch-error": "^2.1.2",
- "ajv": "^8.6.3",
- "ajv-formats": "^2.1.1",
+ "@sinclair/typebox": "^0.32.14",
+ "@types/body-parser": "^1.19.5",
"body-parser": "^1.20.0",
"express": "^4.17.1",
- "express-json-validator-middleware": "^3.0.0",
"glob": "^10.0.0",
- "morgan": "^1.10.0"
+ "morgan": "^1.10.0",
+ "openapi-types": "^12.1.3"
},
"peerDependencies": {
"@openaddresses/batch-generic": "x.x.x"
},
"devDependencies": {
- "documentation": "^14.0.1",
+ "ts-node-test": "^0.4.3",
+ "@types/express": "^4.17.21",
+ "@typescript-eslint/eslint-plugin": "^7.0.1",
+ "@typescript-eslint/parser": "^7.0.1",
"eslint": "^8.0.1",
"eslint-plugin-node": "^11.0.0",
- "tape": "^5.3.1"
+ "tape": "^5.3.1",
+ "typedoc": "^0.25.8",
+ "typescript": "^5.3.3"
}
}
diff --git a/schema/req.query.ListSchema.json b/schema/req.query.ListSchema.json
deleted file mode 100644
index a00ebbb..0000000
--- a/schema/req.query.ListSchema.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "method": {
- "type": "string",
- "description": "HTTP Verb",
- "enum": [
- "GET",
- "HEAD",
- "POST",
- "PUT",
- "DELETE",
- "CONNECT",
- "OPTIONS",
- "TRACE",
- "PATCH"
- ]
- },
- "url": {
- "type": "string",
- "description": "URLEncoded URL that you want to fetch"
- }
- }
-}
diff --git a/schema/res.ListSchema.json b/schema/res.ListSchema.json
deleted file mode 100644
index 6d09c73..0000000
--- a/schema/res.ListSchema.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "oneOf": [{
- "type": "object",
- "patternProperties": {
- ".*": {
- "type": "object",
- "required": [
- "body",
- "query",
- "res"
- ],
- "properties": {
- "body": {
- "type": "boolean",
- "description": "Does the request body have a schema"
- },
- "query": {
- "type": "boolean",
- "description": "Do the request query params have a schema"
- },
- "res": {
- "type": "boolean",
- "description": "Does the response have a schema"
- }
- }
- }
- }
- }, {
- "type": "object",
- "required": [
- "body",
- "res",
- "query"
- ],
- "properties": {
- "body": {
- "type": ["null", "object"]
- },
- "res": {
- "type": ["null", "object"]
- },
- "query": {
- "type": ["null", "object"]
- }
- }
- }]
-}
diff --git a/test/schema.srv.test.js b/test/schema.srv.test.ts
similarity index 76%
rename from test/schema.srv.test.js
rename to test/schema.srv.test.ts
index 83e3ddc..79c1832 100644
--- a/test/schema.srv.test.js
+++ b/test/schema.srv.test.ts
@@ -3,20 +3,15 @@ import express from 'express';
import Schema from '../index.js';
const app = express();
-const schema = new Schema(express.Router(), {
- api: true
-});
+const schema = new Schema(express.Router());
app.use('/api', schema.router);
-let server = false;
+let server;
test('start', (t) => {
- server = app.listen(2000, async (err) => {
+ server = app.listen(2000, async () => {
await schema.api();
- schema.error();
-
- t.error(err, 'no errors');
t.end();
});
});
@@ -35,7 +30,7 @@ test('GET: api/schema', async (t) => {
'GET /openapi': {
body: false,
query: false,
- res: false
+ res: true
}
});
} catch (err) {
@@ -53,16 +48,10 @@ test('GET: api/schema?method=FAKE', async (t) => {
t.deepEquals(await res.json(), {
status: 400,
- message: 'validation error',
- messages: [{
- keyword: 'enum',
- instancePath: '/method',
- schemaPath: '#/properties/method/enum',
- params: {
- allowedValues: ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH']
- },
- message: 'must be equal to one of the allowed values'
- }]
+ message: 'Validation Error',
+ messages: [
+ {"type":"Query","errors":[{"type":62,"schema":{"anyOf":[{"const":"GET","type":"string"},{"const":"PUT","type":"string"},{"const":"POST","type":"string"},{"const":"DELETE","type":"string"},{"const":"OPTIONS","type":"string"},{"const":"HEAD","type":"string"},{"const":"PATCH","type":"string"},{"const":"TRACE","type":"string"}]},"path":"/method","value":"fake","message":"Expected union value"}]}
+ ]
});
} catch (err) {
t.error(err);
@@ -107,7 +96,7 @@ test('GET: api/schema?method=GET&url=/schema', async (t) => {
const res = await fetch('http://localhost:2000/api/schema?method=GET&url=/schema');
t.equals(res.status, 200, 'http: 200');
- t.deepEquals(Object.keys(await res.json()).sort(), ['query', 'body', 'res'].sort());
+ t.deepEquals(Object.keys(await res.json()).sort(), ['query', 'res'].sort());
} catch (err) {
t.error(err, 'no error');
diff --git a/test/schema.test.js b/test/schema.test.js
deleted file mode 100644
index 6e34941..0000000
--- a/test/schema.test.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import fs from 'fs';
-import path from 'path';
-import test from 'tape';
-
-import glob from 'glob';
-import $RefParser from '@apidevtools/json-schema-ref-parser';
-import Ajv from 'ajv';
-
-const ajv = new Ajv({
- allErrors: true
-});
-
-for (const source of glob.sync('../schema/**/*.json')) {
- test(`schema/${path.parse(source).base}`, async (t) => {
- try {
- const file = fs.readFileSync(source);
- t.ok(file.length, 'file loaded');
-
- JSON.parse(file);
- } catch (err) {
- t.error(err, 'no JSON errors');
- }
-
- try {
- const schema = await $RefParser.dereference(source);
-
- ajv.compile(schema);
- } catch (err) {
- t.error(err, 'no errors');
- }
- t.end();
- });
-}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..93dc2be
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,27 @@
+{
+ "ts-node": {
+ "esm": true
+ },
+ "compilerOptions": {
+ "strict": true,
+ "skipLibCheck": true,
+ "module": "es2022",
+ "target": "es2022",
+ "esModuleInterop": true,
+ "noImplicitAny": false,
+ "moduleResolution": "node",
+ "sourceMap": true,
+ "outDir": "dist",
+ "baseUrl": ".",
+ "paths": {
+ "*": [
+ "node_modules/*"
+ ]
+ }
+ },
+ "include": [
+ "index.ts",
+ "lib/**.ts",
+ "test/**.ts"
+ ]
+}