diff --git a/openapi/index.html b/openapi/index.html
index e02e40e5..07403a01 100644
--- a/openapi/index.html
+++ b/openapi/index.html
@@ -1,60 +1,24 @@
-
-
+
-
AdGuard Home API
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml
index a9791c4d..a72bd816 100644
--- a/openapi/openapi.yaml
+++ b/openapi/openapi.yaml
@@ -1,1016 +1,899 @@
-swagger: '2.0'
+openapi: 3.0.3
info:
- title: 'AdGuard Home'
- description: 'AdGuard Home REST API. Admin web interface is built on top of this REST API.'
- version: '0.102'
-schemes:
- - http
-basePath: /control
-produces:
- - application/json
+ title: AdGuard Home
+ description: AdGuard Home REST API. Admin web interface is built on top of this REST API.
+ version: "0.102"
+ contact:
+ name: "AdGuard Home"
+ url: "https://github.com/AdguardTeam/AdGuardHome"
+
+servers:
+ - url: /control
+
tags:
- -
- name: global
- description: 'AdGuard Home server general settings and controls'
- -
- name: tls
- description: 'AdGuard Home HTTPS/DOH/DOT settings'
- -
- name: log
- description: 'AdGuard Home query log'
- -
- name: stats
- description: 'AdGuard Home statistics'
- -
- name: i18n
- description: 'Application localization'
- -
- name: filtering
- description: 'Rule-based filtering'
- -
- name: safebrowsing
- description: 'Blocking malware/phishing sites'
- -
- name: parental
- description: 'Blocking adult and explicit materials'
- -
- name: safesearch
- description: 'Enforce family-friendly results in search engines'
- -
- name: dhcp
- description: 'Built-in DHCP server controls'
- -
- name: clients
- description: 'Clients list operations'
- -
- name: install
- description: 'First-time install configuration handlers'
+ - name: clients
+ description: Clients list operations
+ - name: dhcp
+ description: Built-in DHCP server controls
+ - name: filtering
+ description: Rule-based filtering
+ - name: global
+ description: AdGuard Home server general settings and controls
+ - name: i18n
+ description: Application localization
+ - name: install
+ description: First-time install configuration handlers
+ - name: log
+ description: AdGuard Home query log
+ - name: parental
+ description: Blocking adult and explicit materials
+ - name: safebrowsing
+ description: Blocking malware/phishing sites
+ - name: safesearch
+ description: Enforce family-friendly results in search engines
+ - name: stats
+ description: AdGuard Home statistics
+ - name: tls
+ description: AdGuard Home HTTPS/DOH/DOT settings
+
paths:
-
- # API TO-DO LIST
- # TODO: Use JSON where it is possible
- # TODO: Use lower_case for all objects' properties
- # TODO: Move to definitions what's missing from there
-
- # --------------------------------------------------
- # General settings and controls
- # --------------------------------------------------
-
/status:
get:
tags:
- global
operationId: status
- summary: 'Get DNS server current status and general settings'
- produces:
- - application/json
+ summary: Get DNS server current status and general settings
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/ServerStatus"
-
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ServerStatus"
/dns_info:
get:
tags:
- global
operationId: dnsInfo
- summary: 'Get general DNS parameters'
+ summary: Get general DNS parameters
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/DNSConfig"
-
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/DNSConfig"
/dns_config:
post:
tags:
- global
operationId: dnsConfig
- summary: "Set general DNS parameters"
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- schema:
- $ref: "#/definitions/DNSConfig"
+ summary: Set general DNS parameters
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/DNSConfig"
responses:
- 200:
+ "200":
description: OK
-
/test_upstream_dns:
post:
tags:
- global
operationId: testUpstreamDNS
- summary: "Test upstream configuration"
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- description: "Upstream configuration to be tested"
- schema:
- $ref: "#/definitions/UpstreamsConfig"
+ summary: Test upstream configuration
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/UpstreamsConfig"
+ description: Upstream configuration to be tested
responses:
- 200:
- description: 'Status of testing each requested server, with "OK" meaning that server works, any other text means an error.'
- examples:
+ "200":
+ description: Status of testing each requested server, with "OK" meaning that
+ server works, any other text means an error.
+ content:
application/json:
- 1.1.1.1: OK
- 1.0.0.1: OK
- 8.8.8.8: OK
- 8.8.4.4: OK
- "192.168.1.104:53535": "Couldn't communicate with DNS server"
-
+ examples:
+ response:
+ value:
+ 1.1.1.1: OK
+ 1.0.0.1: OK
+ 8.8.8.8: OK
+ 8.8.4.4: OK
+ 192.168.1.104:53535: Couldn't communicate with DNS server
/version.json:
post:
tags:
- global
operationId: getVersionJson
- summary: 'Gets information about the latest available version of AdGuard'
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- required: true
- schema:
- $ref: "#/definitions/GetVersionRequest"
- produces:
- - 'application/json'
+ summary: Gets information about the latest available version of AdGuard
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/GetVersionRequest"
+ required: true
responses:
- 200:
- description: 'Version info. If response message is empty, UI does not show a version update message.'
- schema:
- $ref: "#/definitions/VersionInfo"
- 500:
- description: 'Cannot write answer'
- 502:
- description: 'Cannot retrieve the version.json file contents'
+ "200":
+ description: Version info. If response message is empty, UI does not show a
+ version update message.
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/VersionInfo"
+ "500":
+ description: Cannot write answer
+ "502":
+ description: Cannot retrieve the version.json file contents
/update:
post:
tags:
- global
operationId: beginUpdate
- summary: 'Begin auto-upgrade procedure'
+ summary: Begin auto-upgrade procedure
responses:
- 200:
+ "200":
description: OK
- 500:
+ "500":
description: Failed
-
- # --------------------------------------------------
- # Query log methods
- # --------------------------------------------------
-
/querylog:
get:
tags:
- log
operationId: queryLog
- summary: 'Get DNS server query log'
+ summary: Get DNS server query log
parameters:
- name: older_than
in: query
- type: string
+ description: Filter by older than
+ schema:
+ type: string
- name: filter_domain
in: query
- type: string
- description: "Filter by domain name"
+ description: Filter by domain name
+ schema:
+ type: string
- name: filter_client
in: query
- type: string
- description: "Filter by client"
+ description: Filter by client
+ schema:
+ type: string
- name: filter_question_type
in: query
- type: string
- description: "Filter by question type"
+ description: Filter by question type
+ schema:
+ type: string
- name: filter_response_status
in: query
- type: string
- description: "Filter by response status"
- enum:
- -
- - filtered
+ description: Filter by response status
+ schema:
+ type: string
+ enum:
+ - null
+ - filtered
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: '#/definitions/QueryLog'
-
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/QueryLog"
/querylog_info:
get:
tags:
- log
operationId: queryLogInfo
- summary: 'Get query log parameters'
+ summary: Get query log parameters
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/QueryLogConfig"
-
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/QueryLogConfig"
/querylog_config:
post:
tags:
- log
operationId: queryLogConfig
- summary: "Set query log parameters"
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- schema:
- $ref: "#/definitions/QueryLogConfig"
+ summary: Set query log parameters
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/QueryLogConfig"
responses:
- 200:
+ "200":
description: OK
-
/querylog_clear:
post:
tags:
- log
operationId: querylogClear
- summary: 'Clear query log'
+ summary: Clear query log
responses:
- 200:
+ "200":
description: OK
-
- # --------------------------------------------------
- # General statistics methods
- # --------------------------------------------------
-
/stats:
get:
tags:
- stats
operationId: stats
- summary: 'Get DNS server statistics'
+ summary: Get DNS server statistics
responses:
- 200:
- description: 'Returns statistics data'
- schema:
- $ref: "#/definitions/Stats"
-
+ "200":
+ description: Returns statistics data
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Stats"
/stats_reset:
post:
tags:
- stats
operationId: statsReset
- summary: "Reset all statistics to zeroes"
+ summary: Reset all statistics to zeroes
responses:
- 200:
+ "200":
description: OK
-
/stats_info:
get:
tags:
- stats
operationId: statsInfo
- summary: 'Get statistics parameters'
+ summary: Get statistics parameters
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/StatsConfig"
-
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/StatsConfig"
/stats_config:
post:
tags:
- stats
operationId: statsConfig
- summary: "Set statistics parameters"
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- schema:
- $ref: "#/definitions/StatsConfig"
+ summary: Set statistics parameters
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/StatsConfig"
responses:
- 200:
+ "200":
description: OK
-
- # --------------------------------------------------
- # TLS server methods
- # --------------------------------------------------
-
/tls/status:
get:
tags:
- tls
operationId: tlsStatus
- summary: "Returns TLS configuration and its status"
+ summary: Returns TLS configuration and its status
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/TlsConfig"
-
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TlsConfig"
/tls/configure:
post:
tags:
- tls
operationId: tlsConfigure
- summary: "Updates current TLS configuration"
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- description: "TLS configuration JSON"
- required: true
- schema:
- $ref: "#/definitions/TlsConfig"
+ summary: Updates current TLS configuration
+ requestBody:
+ $ref: "#/components/requestBodies/TlsConfig"
responses:
- 200:
- description: "TLS configuration and its status"
- schema:
- $ref: "#/definitions/TlsConfig"
- 400:
- description: "Invalid configuration or unavailable port"
- 500:
- description: "Error occurred while applying configuration"
-
+ "200":
+ description: TLS configuration and its status
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TlsConfig"
+ "400":
+ description: Invalid configuration or unavailable port
+ "500":
+ description: Error occurred while applying configuration
/tls/validate:
post:
tags:
- tls
operationId: tlsValidate
- summary: "Checks if the current TLS configuration is valid"
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- description: "TLS configuration JSON"
- required: true
- schema:
- $ref: "#/definitions/TlsConfig"
+ summary: Checks if the current TLS configuration is valid
+ requestBody:
+ $ref: "#/components/requestBodies/TlsConfig"
responses:
- 200:
- description: "TLS configuration and its status"
- schema:
- $ref: "#/definitions/TlsConfig"
- 400:
- description: "Invalid configuration or unavailable port"
-
- # --------------------------------------------------
- # DHCP server methods
- # --------------------------------------------------
-
+ "200":
+ description: TLS configuration and its status
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/TlsConfig"
+ "400":
+ description: Invalid configuration or unavailable port
/dhcp/status:
get:
tags:
- dhcp
operationId: dhcpStatus
- summary: "Gets the current DHCP settings and status"
+ summary: Gets the current DHCP settings and status
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/DhcpStatus"
-
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/DhcpStatus"
/dhcp/set_config:
post:
tags:
- dhcp
operationId: dhcpSetConfig
- summary: "Updates the current DHCP server configuration"
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- description: "DHCP configuration JSON"
- required: true
- schema:
- $ref: "#/definitions/DhcpConfig"
+ summary: Updates the current DHCP server configuration
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/DhcpConfig"
+ description: DHCP configuration JSON
+ required: true
responses:
- 200:
+ "200":
description: OK
-
/dhcp/find_active_dhcp:
- post:
- tags:
- - dhcp
- operationId: checkActiveDhcp
- summary: "Searches for an active DHCP server on the network"
- responses:
- 200:
- description: OK
- schema:
- $ref: "#/definitions/DhcpSearchResult"
-
+ post:
+ tags:
+ - dhcp
+ operationId: checkActiveDhcp
+ summary: Searches for an active DHCP server on the network
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/DhcpSearchResult"
/dhcp/add_static_lease:
post:
tags:
- dhcp
operationId: dhcpAddStaticLease
- summary: "Adds a static lease"
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- required: true
- schema:
- $ref: "#/definitions/DhcpStaticLease"
+ summary: Adds a static lease
+ requestBody:
+ $ref: "#/components/requestBodies/DhcpStaticLease"
responses:
- 200:
+ "200":
description: OK
-
/dhcp/remove_static_lease:
post:
tags:
- dhcp
operationId: dhcpRemoveStaticLease
- summary: "Removes a static lease"
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- required: true
- schema:
- $ref: "#/definitions/DhcpStaticLease"
+ summary: Removes a static lease
+ requestBody:
+ $ref: "#/components/requestBodies/DhcpStaticLease"
responses:
- 200:
+ "200":
description: OK
-
/dhcp/reset:
post:
tags:
- dhcp
operationId: dhcpReset
- summary: "Reset DHCP configuration"
+ summary: Reset DHCP configuration
responses:
- 200:
+ "200":
description: OK
-
- # --------------------------------------------------
- # Filtering status methods
- # --------------------------------------------------
-
/filtering/status:
get:
tags:
- filtering
operationId: filteringStatus
- summary: 'Get filtering parameters'
+ summary: Get filtering parameters
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/FilterStatus"
-
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/FilterStatus"
/filtering/config:
post:
tags:
- filtering
operationId: filteringConfig
- summary: 'Set filtering parameters'
- parameters:
- - in: "body"
- name: "body"
- required: true
- schema:
- $ref: "#/definitions/FilterConfig"
+ summary: Set filtering parameters
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/FilterConfig"
+ required: true
responses:
- 200:
+ "200":
description: OK
-
/filtering/add_url:
post:
tags:
- filtering
operationId: filteringAddURL
- summary: 'Add filter URL or an absolute file path'
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- required: true
- schema:
- $ref: "#/definitions/AddUrlRequest"
+ summary: Add filter URL or an absolute file path
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddUrlRequest"
+ required: true
responses:
- 200:
+ "200":
description: OK
-
/filtering/remove_url:
post:
tags:
- filtering
operationId: filteringRemoveURL
- summary: 'Remove filter URL'
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- required: true
- schema:
- $ref: "#/definitions/RemoveUrlRequest"
+ summary: Remove filter URL
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RemoveUrlRequest"
+ required: true
responses:
- 200:
+ "200":
description: OK
-
/filtering/set_url:
post:
tags:
- filtering
operationId: filteringSetURL
- summary: 'Set URL parameters'
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- schema:
- $ref: "#/definitions/FilterSetUrl"
+ summary: Set URL parameters
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/FilterSetUrl"
responses:
- 200:
+ "200":
description: OK
-
/filtering/refresh:
post:
tags:
- filtering
operationId: filteringRefresh
- summary: |
+ summary: >
Reload filtering rules from URLs
+
This might be needed if new URL was just added and you dont want to wait for automatic refresh to kick in.
+
This API request is ratelimited, so you can call it freely as often as you like, it wont create unneccessary burden on servers that host the URL.
+
This should work as intended, a `force` parameter is offered as last-resort attempt to make filter lists fresh.
- If you ever find yourself using `force` to make something work that otherwise wont, this is a bug and report it accordingly.
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- schema:
- $ref: "#/definitions/FilterRefreshRequest"
- responses:
- 200:
- description: OK
- schema:
- $ref: "#/definitions/FilterRefreshResponse"
+ If you ever find yourself using `force` to make something work that otherwise wont, this is a bug and report it accordingly.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/FilterRefreshRequest"
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/FilterRefreshResponse"
/filtering/set_rules:
post:
tags:
- filtering
operationId: filteringSetRules
- summary: 'Set user-defined filter rules'
- consumes:
- - text/plain
- parameters:
- - in: body
- name: rules
- description: 'All filtering rules, one line per rule'
- schema:
- # TODO: move to definitions
- type: string
- example: '@@||yandex.ru^|'
+ summary: Set user-defined filter rules
+ requestBody:
+ content:
+ text/plain:
+ schema:
+ type: string
+ example: "@@||yandex.ru^|"
+ description: All filtering rules, one line per rule
responses:
- 200:
+ "200":
description: OK
-
/filtering/check_host:
get:
tags:
- filtering
operationId: filteringCheckHost
- summary: 'Check if host name is filtered'
+ summary: Check if host name is filtered
parameters:
- name: name
in: query
- type: string
+ description: Filter by host name
+ schema:
+ type: string
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/FilterCheckHostResponse"
-
- # --------------------------------------------------
- # Safebrowsing methods
- # --------------------------------------------------
-
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/FilterCheckHostResponse"
/safebrowsing/enable:
post:
tags:
- safebrowsing
operationId: safebrowsingEnable
- summary: 'Enable safebrowsing'
+ summary: Enable safebrowsing
responses:
- 200:
+ "200":
description: OK
-
/safebrowsing/disable:
post:
tags:
- safebrowsing
operationId: safebrowsingDisable
- summary: 'Disable safebrowsing'
+ summary: Disable safebrowsing
responses:
- 200:
+ "200":
description: OK
-
/safebrowsing/status:
get:
tags:
- safebrowsing
operationId: safebrowsingStatus
- summary: 'Get safebrowsing status'
+ summary: Get safebrowsing status
responses:
- 200:
+ "200":
description: OK
- examples:
+ content:
application/json:
- enabled: false
-
- # --------------------------------------------------
- # Parental control methods
- # --------------------------------------------------
-
+ examples:
+ response:
+ value:
+ enabled: false
/parental/enable:
post:
tags:
- parental
operationId: parentalEnable
- summary: 'Enable parental filtering'
- consumes:
- - text/plain
- parameters:
- - in: body
- name: sensitivity
- description: |
- Age sensitivity for parental filtering,
- EARLY_CHILDHOOD is 3
- YOUNG is 10
- TEEN is 13
- MATURE is 17
-
- required: true
- schema:
- type: string
- enum:
- - EARLY_CHILDHOOD
- - YOUNG
- - TEEN
- - MATURE
- example: 'sensitivity=TEEN'
+ summary: Enable parental filtering
+ requestBody:
+ content:
+ text/plain:
+ schema:
+ type: string
+ enum:
+ - EARLY_CHILDHOOD
+ - YOUNG
+ - TEEN
+ - MATURE
+ example: sensitivity=TEEN
+ description: |
+ Age sensitivity for parental filtering,
+ EARLY_CHILDHOOD is 3
+ YOUNG is 10
+ TEEN is 13
+ MATURE is 17
+ required: true
responses:
- 200:
+ "200":
description: OK
-
/parental/disable:
post:
tags:
- parental
operationId: parentalDisable
- summary: 'Disable parental filtering'
+ summary: Disable parental filtering
responses:
- 200:
+ "200":
description: OK
-
/parental/status:
get:
tags:
- parental
operationId: parentalStatus
- summary: 'Get parental filtering status'
+ summary: Get parental filtering status
responses:
- 200:
+ "200":
description: OK
- examples:
+ content:
application/json:
- enabled: true
- sensitivity: 13
-
- # --------------------------------------------------
- # Safe search methods
- # --------------------------------------------------
-
+ examples:
+ response:
+ value:
+ enabled: true
+ sensitivity: 13
/safesearch/enable:
post:
tags:
- safesearch
operationId: safesearchEnable
- summary: 'Enable safesearch'
+ summary: Enable safesearch
responses:
- 200:
+ "200":
description: OK
-
/safesearch/disable:
post:
tags:
- safesearch
operationId: safesearchDisable
- summary: 'Disable safesearch'
+ summary: Disable safesearch
responses:
- 200:
+ "200":
description: OK
-
/safesearch/status:
get:
tags:
- safesearch
operationId: safesearchStatus
- summary: 'Get safesearch status'
+ summary: Get safesearch status
responses:
- 200:
+ "200":
description: OK
- examples:
+ content:
application/json:
- enabled: false
-
- # --------------------------------------------------
- # Clients list methods
- # --------------------------------------------------
-
+ examples:
+ response:
+ value:
+ enabled: false
/clients:
get:
tags:
- clients
operationId: clientsStatus
- summary: 'Get information about configured clients'
+ summary: Get information about configured clients
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/Clients"
-
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Clients"
/clients/add:
post:
tags:
- clients
operationId: clientsAdd
- summary: 'Add a new client'
- parameters:
- - in: "body"
- name: "body"
- required: true
- schema:
- $ref: "#/definitions/Client"
+ summary: Add a new client
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Client"
+ required: true
responses:
- 200:
+ "200":
description: OK
-
/clients/delete:
post:
tags:
- clients
operationId: clientsDelete
- summary: 'Remove a client'
- parameters:
- - in: "body"
- name: "body"
- required: true
- schema:
- $ref: "#/definitions/ClientDelete"
+ summary: Remove a client
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ClientDelete"
+ required: true
responses:
- 200:
+ "200":
description: OK
-
/clients/update:
post:
tags:
- clients
operationId: clientsUpdate
- summary: 'Update client information'
- parameters:
- - in: "body"
- name: "body"
- required: true
- schema:
- $ref: "#/definitions/ClientUpdate"
+ summary: Update client information
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ClientUpdate"
+ required: true
responses:
- 200:
+ "200":
description: OK
-
/clients/find:
get:
tags:
- clients
operationId: clientsFind
- summary: 'Get information about selected clients by their IP address'
+ summary: Get information about selected clients by their IP address
parameters:
- name: ip0
in: query
- type: string
+ description: Filter by IP address
+ schema:
+ type: string
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/ClientsFindResponse"
-
-
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ClientsFindResponse"
/blocked_services/list:
get:
tags:
- blocked_services
operationId: blockedServicesList
- summary: 'Get blocked services list'
+ summary: Get blocked services list
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/BlockedServicesArray"
-
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/BlockedServicesArray"
/blocked_services/set:
post:
tags:
- blocked_services
operationId: blockedServicesSet
- summary: 'Set blocked services list'
- parameters:
- - in: body
- name: "body"
- schema:
- $ref: "#/definitions/BlockedServicesArray"
+ summary: Set blocked services list
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/BlockedServicesArray"
responses:
- 200:
+ "200":
description: OK
-
-
- # --------------------------------------------------
- # Rewrite methods
- # --------------------------------------------------
-
/rewrite/list:
get:
tags:
- rewrite
operationId: rewriteList
- summary: 'Get list of Rewrite rules'
+ summary: Get list of Rewrite rules
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/RewriteList"
-
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RewriteList"
/rewrite/add:
post:
tags:
- rewrite
operationId: rewriteAdd
- summary: 'Add a new Rewrite rule'
- parameters:
- - in: "body"
- name: "body"
- required: true
- schema:
- $ref: "#/definitions/RewriteEntry"
+ summary: Add a new Rewrite rule
+ requestBody:
+ $ref: "#/components/requestBodies/RewriteEntry"
responses:
- 200:
+ "200":
description: OK
-
/rewrite/delete:
post:
tags:
- rewrite
operationId: rewriteDelete
- summary: 'Remove a Rewrite rule'
- parameters:
- - in: "body"
- name: "body"
- required: true
- schema:
- $ref: "#/definitions/RewriteEntry"
+ summary: Remove a Rewrite rule
+ requestBody:
+ $ref: "#/components/requestBodies/RewriteEntry"
responses:
- 200:
+ "200":
description: OK
-
- # --------------------------------------------------
- # I18N methods
- # --------------------------------------------------
-
/i18n/change_language:
post:
tags:
- i18n
operationId: changeLanguage
- summary: "Change current language. Argument must be an ISO 639-1 two-letter code"
- consumes:
- - text/plain
- parameters:
- - in: body
- name: language
- description: "New language. It must be known to the server and must be an ISO 639-1 two-letter code"
- schema:
- # TODO: use JSON?
- type: string
- example: en
+ summary: Change current language. Argument must be an ISO 639-1 two-letter code
+ requestBody:
+ content:
+ text/plain:
+ schema:
+ type: string
+ example: en
+ description: New language. It must be known to the server and must be an ISO 639-1
+ two-letter code
responses:
- 200:
+ "200":
description: OK
-
/i18n/current_language:
get:
tags:
- i18n
operationId: currentLanguage
- summary: "Get currently set language. Result is ISO 639-1 two-letter code. Empty result means default language."
+ summary: Get currently set language. Result is ISO 639-1 two-letter code. Empty
+ result means default language.
responses:
- 200:
+ "200":
description: OK
- examples:
+ content:
text/plain:
- en
-
- # --------------------------------------------------
- # First-time install configuration methods
- # --------------------------------------------------
-
+ examples:
+ response:
+ value: en
/install/get_addresses:
get:
tags:
- install
operationId: installGetAddresses
- summary: "Gets the network interfaces information."
+ summary: Gets the network interfaces information.
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/AddressesInfo"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/AddressesInfo"
/install/check_config:
post:
tags:
- install
operationId: installCheckConfig
- summary: "Checks configuration"
- parameters:
- - in: "body"
- name: "body"
- description: "Configuration to be checked"
- required: true
- schema:
- $ref: "#/definitions/CheckConfigRequest"
+ summary: Checks configuration
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CheckConfigRequest"
+ description: Configuration to be checked
+ required: true
responses:
- 200:
+ "200":
description: OK
- schema:
- $ref: "#/definitions/CheckConfigResponse"
- 400:
- description: "Failed to parse JSON or cannot listen on the specified address"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/CheckConfigResponse"
+ "400":
+ description: Failed to parse JSON or cannot listen on the specified address
/install/configure:
post:
tags:
- install
operationId: installConfigure
- summary: "Applies the initial configuration."
- parameters:
- - in: "body"
- name: "body"
- description: "Initial configuration JSON"
- required: true
- schema:
- $ref: "#/definitions/InitialConfiguration"
+ summary: Applies the initial configuration.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/InitialConfiguration"
+ description: Initial configuration JSON
+ required: true
responses:
- 200:
+ "200":
description: OK
- 400:
- description: "Failed to parse initial configuration or cannot listen to the specified addresses"
- 500:
- description: "Cannot start the DNS server"
-
+ "400":
+ description: Failed to parse initial configuration or cannot listen to the
+ specified addresses
+ "500":
+ description: Cannot start the DNS server
/login:
post:
tags:
- global
operationId: login
- summary: "Perform administrator log-in"
- consumes:
- - application/json
- parameters:
- - in: "body"
- name: "body"
- required: true
- schema:
- $ref: "#/definitions/Login"
+ summary: Perform administrator log-in
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Login"
+ required: true
responses:
- 200:
+ "200":
description: OK
-
/logout:
get:
tags:
- global
operationId: logout
- summary: "Perform administrator log-out"
+ summary: Perform administrator log-out
responses:
- 302:
+ "302":
description: OK
-
/profile:
get:
tags:
@@ -1018,912 +901,920 @@ paths:
operationId: getProfile
summary: ""
responses:
- 200:
+ "200":
description: OK
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/ProfileInfo"
+
+components:
+ requestBodies:
+ TlsConfig:
+ content:
+ application/json:
schema:
- $ref: "#/definitions/ProfileInfo"
-
-definitions:
- ServerStatus:
- type: "object"
- description: "AdGuard Home server status and configuration"
- required:
- - "dns_address"
- - "dns_port"
- - "protection_enabled"
- - "querylog_enabled"
- - "running"
- - "bootstrap_dns"
- - "upstream_dns"
- - "version"
- - "language"
- properties:
- dns_address:
- type: "string"
- example: "127.0.0.1"
- dns_port:
- type: "integer"
- format: "int32"
- example: 53
- minimum: 1
- maximum: 65535
- protection_enabled:
- type: "boolean"
- querylog_enabled:
- type: "boolean"
- running:
- type: "boolean"
- version:
- type: "string"
- example: "0.1"
- language:
- type: "string"
- example: "en"
-
- DNSConfig:
- type: "object"
- description: "Query log configuration"
- properties:
- bootstrap_dns:
- type: "array"
- description: 'Bootstrap servers, port is optional after colon. Empty value will reset it to default values'
- items:
- type: "string"
- example:
- - "8.8.8.8:53"
- - "1.1.1.1:53"
- upstream_dns:
- type: "array"
- description: 'Upstream servers, port is optional after colon. Empty value will reset it to default values'
- items:
- type: "string"
- example:
- - "tls://1.1.1.1"
- - "tls://1.0.0.1"
- protection_enabled:
- type: "boolean"
- ratelimit:
- type: "integer"
- blocking_mode:
- type: "string"
- enum:
- - "default"
- - "nxdomain"
- - "null_ip"
- - "custom_ip"
- blocking_ipv4:
- type: "string"
- blocking_ipv6:
- type: "string"
- edns_cs_enabled:
- type: "boolean"
- dnssec_enabled:
- type: "boolean"
- fastest_addr:
- type: "boolean"
- parallel_requests:
- type: "boolean"
- description: "If true, parallel queries to all configured upstream servers are enabled"
-
- UpstreamsConfig:
- type: "object"
- description: "Upstreams configuration"
- required:
- - "bootstrap_dns"
- - "upstream_dns"
- properties:
- bootstrap_dns:
- type: "array"
- description: 'Bootstrap servers, port is optional after colon. Empty value will reset it to default values'
- items:
- type: "string"
- example:
- - "8.8.8.8:53"
- - "1.1.1.1:53"
- upstream_dns:
- type: "array"
- description: 'Upstream servers, port is optional after colon. Empty value will reset it to default values'
- items:
- type: "string"
- example:
- - "tls://1.1.1.1"
- - "tls://1.0.0.1"
-
- Filter:
- type: "object"
- description: "Filter subscription info"
- required:
- - "enabled"
- - "id"
- - "lastUpdated"
- - "name"
- - "rulesCount"
- - "url"
- properties:
- enabled:
- type: "boolean"
- id:
- type: "integer"
- example: 1234
- lastUpdated:
- type: "string"
- format: "date-time"
- example: "2018-10-30T12:18:57+03:00"
- name:
- type: "string"
- example: "AdGuard Simplified Domain Names filter"
- rulesCount:
- type: "integer"
- example: 5912
- url:
- type: "string"
- example: "https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt"
-
- FilterStatus:
- type: "object"
- description: "Filtering settings"
- properties:
- enabled:
- type: "boolean"
- interval:
- type: "integer"
- filters:
- type: "array"
- items:
- $ref: "#/definitions/Filter"
- user_rules:
- type: "array"
- items:
- type: "string"
-
- FilterConfig:
- type: "object"
- description: "Filtering settings"
- properties:
- enabled:
- type: "boolean"
- interval:
- type: "integer"
-
- FilterSetUrl:
- type: "object"
- description: "Filtering URL settings"
- properties:
- url:
- type: "string"
- enabled:
- type: "boolean"
-
- FilterRefreshRequest:
- type: "object"
- description: "Refresh Filters request data"
- properties:
- whitelist:
- type: "boolean"
-
- FilterCheckHostResponse:
- type: "object"
- description: "Check Host Result"
- properties:
- reason:
- type: "string"
- description: "DNS filter status"
- enum:
- - "NotFilteredNotFound"
- - "NotFilteredWhiteList"
- - "NotFilteredError"
- - "FilteredBlackList"
- - "FilteredSafeBrowsing"
- - "FilteredParental"
- - "FilteredInvalid"
- - "FilteredSafeSearch"
- - "FilteredBlockedService"
- - "ReasonRewrite"
- filter_id:
- type: "integer"
- rule:
- type: "string"
- example: "||example.org^"
- description: "Filtering rule applied to the request (if any)"
- service_name:
- type: "string"
- description: "Set if reason=FilteredBlockedService"
- cname:
- type: "string"
- description: "Set if reason=ReasonRewrite"
- ip_addrs:
- type: "array"
- items:
- type: "string"
- description: "Set if reason=ReasonRewrite"
-
- FilterRefreshResponse:
- type: "object"
- description: "/filtering/refresh response data"
- properties:
- updated:
- type: "integer"
-
- GetVersionRequest:
- type: "object"
- description: "/version.json request data"
- properties:
- recheck_now:
- description: "If false, server will check for a new version data only once in several hours"
- type: "boolean"
- VersionInfo:
- type: "object"
- description: "Information about the latest available version of AdGuard Home"
- properties:
- new_version:
- type: "string"
- example: "v0.9"
- announcement:
- type: "string"
- example: "AdGuard Home v0.9 is now available!"
- announcement_url:
- type: "string"
- example: "https://github.com/AdguardTeam/AdGuardHome/releases/tag/v0.9"
- can_autoupdate:
- type: "boolean"
- Stats:
- type: "object"
- description: "Server statistics data"
- properties:
- time_units:
- type: "string"
- description: "Time units (hours | days)"
- example: "hours"
- num_dns_queries:
- type: "integer"
- description: "Total number of DNS queries"
- example: 123
- num_blocked_filtering:
- type: "integer"
- description: "Number of requests blocked by filtering rules"
- example: 50
- num_replaced_safebrowsing:
- type: "integer"
- description: "Number of requests blocked by safebrowsing module"
- example: 5
- num_replaced_safesearch:
- type: "integer"
- description: "Number of requests blocked by safesearch module"
- example: 5
- num_replaced_parental:
- type: "integer"
- description: "Number of blocked adult websites"
- example: 15
- avg_processing_time:
- type: "number"
- format: "float"
- description: "Average time in milliseconds on processing a DNS"
- example: 0.34
- top_queried_domains:
- type: "array"
- items:
- type: "object"
- top_clients:
- type: "array"
- items:
- type: "object"
- top_blocked_domains:
- type: "array"
- items:
- type: "object"
- dns_queries:
- type: "array"
- items:
- type: "integer"
- blocked_filtering:
- type: "array"
- items:
- type: "integer"
- replaced_safebrowsing:
- type: "array"
- items:
- type: "integer"
- replaced_parental:
- type: "array"
- items:
- type: "integer"
-
- StatsConfig:
- type: "object"
- description: "Statistics configuration"
- properties:
- interval:
- type: "integer"
- description: "Time period to keep data (1 | 7 | 30 | 90)"
-
- DhcpConfig:
- type: "object"
- description: "Built-in DHCP server configuration"
- required:
- - "enabled"
- - "gateway_ip"
- - "subnet_mask"
- - "range_start"
- - "range_end"
- - "lease_duration"
- properties:
- enabled:
- type: "boolean"
- gateway_ip:
- type: "string"
- example: "192.168.1.1"
- subnet_mask:
- type: "string"
- example: "255.255.255.0"
- range_start:
- type: "string"
- example: "192.168.1.2"
- range_end:
- type: "string"
- example: "192.168.10.50"
- lease_duration:
- type: "string"
- example: "12h"
- DhcpLease:
- type: "object"
- description: "DHCP lease information"
- required:
- - "mac"
- - "ip"
- - "hostname"
- - "expires"
- properties:
- mac:
- type: "string"
- example: "00:11:09:b3:b3:b8"
- ip:
- type: "string"
- example: "192.168.1.22"
- hostname:
- type: "string"
- example: "dell"
- expires:
- type: "string"
- format: "date-time"
- example: "2017-07-21T17:32:28Z"
- DhcpStaticLease:
- type: "object"
- description: "DHCP static lease information"
- required:
- - "mac"
- - "ip"
- - "hostname"
- - "expires"
- properties:
- mac:
- type: "string"
- example: "00:11:09:b3:b3:b8"
- ip:
- type: "string"
- example: "192.168.1.22"
- hostname:
- type: "string"
- example: "dell"
- DhcpStatus:
- type: "object"
- description: "Built-in DHCP server configuration and status"
- required:
- - "config"
- - "leases"
- properties:
- config:
- $ref: "#/definitions/DhcpConfig"
- leases:
- type: "array"
- items:
- $ref: "#/definitions/DhcpLease"
- static_leases :
- type: "array"
- items:
- $ref: "#/definitions/DhcpStaticLease"
- DhcpSearchResult:
- type: "object"
- description: "Information about a DHCP server discovered in the current network"
- properties:
- other_server:
- $ref: "#/definitions/DhcpSearchResultOtherServer"
- static_ip:
- $ref: "#/definitions/DhcpSearchResultStaticIP"
- DhcpSearchResultOtherServer:
- type: "object"
- properties:
- found:
- type: "string"
- description: "yes|no|error"
- example: "no"
- error:
- type: "string"
- description: "Set if found=error"
- example: ""
- DhcpSearchResultStaticIP:
- type: "object"
- properties:
- static:
- type: "string"
- description: "yes|no|error"
- example: "yes"
- ip:
- type: "string"
- description: "Set if static=no"
- example: ""
- DnsAnswer:
- type: "object"
- description: "DNS answer section"
- properties:
- ttl:
- type: "integer"
- example: 55
- type:
- type: "string"
- example: "A"
- value:
- type: "string"
- example: "217.69.139.201"
- DnsQuestion:
- type: "object"
- description: "DNS question section"
- properties:
- class:
- type: "string"
- example: "IN"
- host:
- type: "string"
- example: "example.org"
- type:
- type: "string"
- example: "A"
- AddUrlRequest:
- type: "object"
- description: "/add_url request data"
- properties:
- name:
- type: "string"
- url:
- description: "URL or an absolute path to the file containing filtering rules"
- type: "string"
- example: "https://filters.adtidy.org/windows/filters/15.txt"
- RemoveUrlRequest:
- type: "object"
- description: "/remove_url request data"
- properties:
- url:
- description: "Previously added URL containing filtering rules"
- type: "string"
- example: "https://filters.adtidy.org/windows/filters/15.txt"
- QueryLogItem:
- type: "object"
- description: "Query log item"
- properties:
- answer:
- type: "array"
- items:
- $ref: "#/definitions/DnsAnswer"
- original_answer:
- type: "array"
- description: "Answer from upstream server (optional)"
- items:
- $ref: "#/definitions/DnsAnswer"
- answer_dnssec:
- type: "boolean"
- client:
- type: "string"
- example: "192.168.0.1"
- elapsedMs:
- type: "string"
- example: "54.023928"
- question:
- $ref: "#/definitions/DnsQuestion"
- filterId:
- type: "integer"
- example: 123123
- description: "In case if there's a rule applied to this DNS request, this is ID of the filter that rule belongs to."
- rule:
- type: "string"
- example: "||example.org^"
- description: "Filtering rule applied to the request (if any)"
- reason:
- type: "string"
- description: "DNS filter status"
- enum:
- - "NotFilteredNotFound"
- - "NotFilteredWhiteList"
- - "NotFilteredError"
- - "FilteredBlackList"
- - "FilteredSafeBrowsing"
- - "FilteredParental"
- - "FilteredInvalid"
- - "FilteredSafeSearch"
- - "FilteredBlockedService"
- - "ReasonRewrite"
- service_name:
- type: "string"
- description: "Set if reason=FilteredBlockedService"
- status:
- type: "string"
- description: "DNS response status"
- example: "NOERROR"
- time:
- type: "string"
- description: "DNS request processing start time"
- example: "2018-11-26T00:02:41+03:00"
-
- QueryLog:
- type: "object"
- description: "Query log"
- properties:
- oldest:
- type: "string"
- example: "2018-11-26T00:02:41+03:00"
- data:
- type: "array"
- items:
- $ref: "#/definitions/QueryLogItem"
-
- QueryLogConfig:
- type: "object"
- description: "Query log configuration"
- properties:
- enabled:
- type: "boolean"
- description: "Is query log enabled"
- interval:
- type: "integer"
- description: "Time period to keep data (1 | 7 | 30 | 90)"
- anonymize_client_ip:
- type: "boolean"
- description: "Anonymize clients' IP addresses"
-
- TlsConfig:
- type: "object"
- description: "TLS configuration settings and status"
- properties:
- # TLS configuration
- enabled:
- type: "boolean"
- example: "true"
- description: "enabled is the encryption (DOT/DOH/HTTPS) status"
- server_name:
- type: "string"
- example: "example.org"
- description: "server_name is the hostname of your HTTPS/TLS server"
- force_https:
- type: "boolean"
- example: "true"
- description: "if true, forces HTTP->HTTPS redirect"
- port_https:
- type: "integer"
- format: "int32"
- example: 443
- description: "HTTPS port. If 0, HTTPS will be disabled."
- port_dns_over_tls:
- type: "integer"
- format: "int32"
- example: 853
- description: "DNS-over-TLS port. If 0, DOT will be disabled."
- certificate_chain:
- type: "string"
- description: "Base64 string with PEM-encoded certificates chain"
- private_key:
- type: "string"
- description: "Base64 string with PEM-encoded private key"
- certificate_path:
- type: "string"
- description: "Path to certificate file"
- private_key_path:
- type: "string"
- description: "Path to private key file"
- # Below goes validation fields
- valid_cert:
- type: "boolean"
- example: "true"
- description: "valid_cert is true if the specified certificates chain is a valid chain of X509 certificates"
- valid_chain:
- type: "boolean"
- example: "true"
- description: "valid_chain is true if the specified certificates chain is verified and issued by a known CA"
- subject:
- type: "string"
- example: "CN=example.org"
- description: "subject is the subject of the first certificate in the chain"
- issuer:
- type: "string"
- example: "CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US"
- description: "issuer is the issuer of the first certificate in the chain"
- not_before:
- type: "string"
- example: "2019-01-31T10:47:32Z"
- description: "not_before is the NotBefore field of the first certificate in the chain"
- not_after:
- type: "string"
- example: "2019-05-01T10:47:32Z"
- description: "not_after is the NotAfter field of the first certificate in the chain"
- dns_names:
- type: "array"
- items:
- type: "string"
- description: "dns_names is the value of SubjectAltNames field of the first certificate in the chain"
- example:
- - "*.example.org"
- valid_key:
- type: "boolean"
- example: "true"
- description: "valid_key is true if the key is a valid private key"
- key_type:
- type: "string"
- example: "RSA"
- description: "key_type is either RSA or ECDSA"
- warning_validation:
- type: "string"
- example: "You have specified an empty certificate"
- description: "warning_validation is a validation warning message with the issue description"
- valid_pair:
- type: "boolean"
- example: "true"
- description: "valid_pair is true if both certificate and private key are correct"
- NetInterface:
- type: "object"
- description: "Network interface info"
- properties:
- flags:
- type: "string"
- example: "up|broadcast|multicast"
- hardware_address:
- type: "string"
- example: "52:54:00:11:09:ba"
- mtu:
- type: "integer"
- format: "int32"
- example: 1500
- name:
- type: "string"
- example: "eth0"
- ip_addresses:
- type: "array"
- items:
- type: "string"
- example:
- - "127.0.0.1"
- AddressInfo:
- type: "object"
- description: "Port information"
- properties:
- ip:
- type: "string"
- example: "127.0.0.1"
- port:
- type: "integer"
- format: "int32"
- example: 53
- AddressesInfo:
- type: "object"
- description: "AdGuard Home addresses configuration"
- properties:
- dns_port:
- type: "integer"
- format: "int32"
- example: 53
- web_port:
- type: "integer"
- format: "int32"
- example: 80
- interfaces:
- type: "object"
- description: "Network interfaces dictionary (key is the interface name)"
- additionalProperties:
- $ref: "#/definitions/NetInterface"
-
- ProfileInfo:
- type: "object"
- description: "Information about the current user"
- properties:
- name:
- type: "string"
-
- Client:
- type: "object"
- description: "Client information"
- properties:
- name:
- type: "string"
- description: "Name"
- example: "localhost"
- ids:
- type: "array"
- description: "IP, CIDR or MAC address"
- items:
- type: "string"
- use_global_settings:
- type: "boolean"
- filtering_enabled:
- type: "boolean"
- parental_enabled:
- type: "boolean"
- safebrowsing_enabled:
- type: "boolean"
- safesearch_enabled:
- type: "boolean"
- use_global_blocked_services:
- type: "boolean"
- blocked_services:
- type: "array"
- items:
- type: "string"
- upstreams:
- type: "array"
- items:
- type: "string"
- ClientAuto:
- type: "object"
- description: "Auto-Client information"
- properties:
- ip:
- type: "string"
- description: "IP address"
- example: "127.0.0.1"
- name:
- type: "string"
- description: "Name"
- example: "localhost"
- source:
- type: "string"
- description: "The source of this information"
- example: "etc/hosts"
- ClientUpdate:
- type: "object"
- description: "Client update request"
- properties:
- name:
- type: "string"
- data:
- $ref: "#/definitions/Client"
- ClientDelete:
- type: "object"
- description: "Client delete request"
- properties:
- name:
- type: "string"
-
- ClientsFindResponse:
- type: "array"
- description: "Response to clients find operation"
- items:
- $ref: "#/definitions/ClientsFindEntry"
-
- ClientsFindEntry:
- type: "object"
- properties:
- "1.2.3.4":
- items:
- $ref: "#/definitions/Client"
-
- Clients:
- type: "object"
- properties:
- clients:
- $ref: "#/definitions/ClientsArray"
- auto_clients:
- $ref: "#/definitions/ClientsAutoArray"
- ClientsArray:
- type: "array"
- items:
- $ref: "#/definitions/Client"
- description: "Clients array"
- ClientsAutoArray:
- type: "array"
- items:
- $ref: "#/definitions/ClientAuto"
- description: "Auto-Clients array"
-
- RewriteList:
- type: "array"
- items:
- $ref: "#/definitions/RewriteEntry"
- description: "Rewrite rules array"
- RewriteEntry:
- type: "object"
- description: "Rewrite rule"
- properties:
- domain:
- type: "string"
- description: "Domain name"
- example: "example.org"
- answer:
- type: "string"
- description: "value of A, AAAA or CNAME DNS record"
- example: "127.0.0.1"
-
- BlockedServicesArray:
- type: "array"
- items:
- type: "string"
-
- CheckConfigRequest:
- type: "object"
- description: "Configuration to be checked"
- properties:
- dns:
- $ref: "#/definitions/CheckConfigRequestInfo"
- web:
- $ref: "#/definitions/CheckConfigRequestInfo"
- set_static_ip:
- type: "boolean"
- example: false
- CheckConfigRequestInfo:
- type: "object"
- properties:
- ip:
- type: "string"
- example: "127.0.0.1"
- port:
- type: "integer"
- format: "int32"
- example: 53
- autofix:
- type: "boolean"
- example: false
- CheckConfigResponse:
- type: "object"
- properties:
- dns:
- $ref: "#/definitions/CheckConfigResponseInfo"
- web:
- $ref: "#/definitions/CheckConfigResponseInfo"
- static_ip:
- $ref: "#/definitions/CheckConfigStaticIpInfo"
- CheckConfigResponseInfo:
- type: "object"
- properties:
- status:
- type: "string"
- example: ""
- can_autofix:
- type: "boolean"
- example: false
- CheckConfigStaticIpInfo:
- type: "object"
- properties:
- static:
- type: "string"
- example: "no"
- description: "Can be: yes, no, error"
- ip:
- type: "string"
- example: "192.168.1.1"
- description: "Current dynamic IP address. Set if static=no"
- error:
- type: "string"
- example: ""
- description: "Error text. Set if static=error"
-
-
- InitialConfiguration:
- type: "object"
- description: "AdGuard Home initial configuration (for the first-install wizard)"
- properties:
- dns:
- $ref: "#/definitions/AddressInfo"
- web:
- $ref: "#/definitions/AddressInfo"
- username:
- type: "string"
- description: "Basic auth username"
- example: "admin"
- password:
- type: "string"
- description: "Basic auth password"
- example: "password"
- Login:
- type: "object"
- description: "Login request data"
- properties:
- username:
- type: "string"
- description: "User name"
- password:
- type: "string"
- description: "Password"
+ $ref: "#/components/schemas/TlsConfig"
+ description: TLS configuration JSON
+ required: true
+ DhcpStaticLease:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/DhcpStaticLease"
+ required: true
+ RewriteEntry:
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/RewriteEntry"
+ required: true
+ schemas:
+ ServerStatus:
+ type: object
+ description: AdGuard Home server status and configuration
+ required:
+ - dns_address
+ - dns_port
+ - protection_enabled
+ - querylog_enabled
+ - running
+ - bootstrap_dns
+ - upstream_dns
+ - version
+ - language
+ properties:
+ dns_address:
+ type: string
+ example: 127.0.0.1
+ dns_port:
+ type: integer
+ format: int32
+ example: 53
+ minimum: 1
+ maximum: 65535
+ protection_enabled:
+ type: boolean
+ querylog_enabled:
+ type: boolean
+ running:
+ type: boolean
+ version:
+ type: string
+ example: "0.1"
+ language:
+ type: string
+ example: en
+ DNSConfig:
+ type: object
+ description: Query log configuration
+ properties:
+ bootstrap_dns:
+ type: array
+ description: Bootstrap servers, port is optional after colon. Empty value will
+ reset it to default values
+ items:
+ type: string
+ example:
+ - 8.8.8.8:53
+ - 1.1.1.1:53
+ upstream_dns:
+ type: array
+ description: Upstream servers, port is optional after colon. Empty value will
+ reset it to default values
+ items:
+ type: string
+ example:
+ - tls://1.1.1.1
+ - tls://1.0.0.1
+ protection_enabled:
+ type: boolean
+ ratelimit:
+ type: integer
+ blocking_mode:
+ type: string
+ enum:
+ - default
+ - nxdomain
+ - null_ip
+ - custom_ip
+ blocking_ipv4:
+ type: string
+ blocking_ipv6:
+ type: string
+ edns_cs_enabled:
+ type: boolean
+ dnssec_enabled:
+ type: boolean
+ fastest_addr:
+ type: boolean
+ parallel_requests:
+ type: boolean
+ description: If true, parallel queries to all configured upstream servers are
+ enabled
+ UpstreamsConfig:
+ type: object
+ description: Upstreams configuration
+ required:
+ - bootstrap_dns
+ - upstream_dns
+ properties:
+ bootstrap_dns:
+ type: array
+ description: Bootstrap servers, port is optional after colon. Empty value will
+ reset it to default values
+ items:
+ type: string
+ example:
+ - 8.8.8.8:53
+ - 1.1.1.1:53
+ upstream_dns:
+ type: array
+ description: Upstream servers, port is optional after colon. Empty value will
+ reset it to default values
+ items:
+ type: string
+ example:
+ - tls://1.1.1.1
+ - tls://1.0.0.1
+ Filter:
+ type: object
+ description: Filter subscription info
+ required:
+ - enabled
+ - id
+ - lastUpdated
+ - name
+ - rulesCount
+ - url
+ properties:
+ enabled:
+ type: boolean
+ id:
+ type: integer
+ example: 1234
+ lastUpdated:
+ type: string
+ format: date-time
+ example: 2018-10-30T12:18:57+03:00
+ name:
+ type: string
+ example: AdGuard Simplified Domain Names filter
+ rulesCount:
+ type: integer
+ example: 5912
+ url:
+ type: string
+ example: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
+ FilterStatus:
+ type: object
+ description: Filtering settings
+ properties:
+ enabled:
+ type: boolean
+ interval:
+ type: integer
+ filters:
+ type: array
+ items:
+ $ref: "#/components/schemas/Filter"
+ user_rules:
+ type: array
+ items:
+ type: string
+ FilterConfig:
+ type: object
+ description: Filtering settings
+ properties:
+ enabled:
+ type: boolean
+ interval:
+ type: integer
+ FilterSetUrl:
+ type: object
+ description: Filtering URL settings
+ properties:
+ url:
+ type: string
+ enabled:
+ type: boolean
+ FilterRefreshRequest:
+ type: object
+ description: Refresh Filters request data
+ properties:
+ whitelist:
+ type: boolean
+ FilterCheckHostResponse:
+ type: object
+ description: Check Host Result
+ properties:
+ reason:
+ type: string
+ description: DNS filter status
+ enum:
+ - NotFilteredNotFound
+ - NotFilteredWhiteList
+ - NotFilteredError
+ - FilteredBlackList
+ - FilteredSafeBrowsing
+ - FilteredParental
+ - FilteredInvalid
+ - FilteredSafeSearch
+ - FilteredBlockedService
+ - ReasonRewrite
+ filter_id:
+ type: integer
+ rule:
+ type: string
+ example: "||example.org^"
+ description: Filtering rule applied to the request (if any)
+ service_name:
+ type: string
+ description: Set if reason=FilteredBlockedService
+ cname:
+ type: string
+ description: Set if reason=ReasonRewrite
+ ip_addrs:
+ type: array
+ items:
+ type: string
+ description: Set if reason=ReasonRewrite
+ FilterRefreshResponse:
+ type: object
+ description: /filtering/refresh response data
+ properties:
+ updated:
+ type: integer
+ GetVersionRequest:
+ type: object
+ description: /version.json request data
+ properties:
+ recheck_now:
+ description: If false, server will check for a new version data only once in
+ several hours
+ type: boolean
+ VersionInfo:
+ type: object
+ description: Information about the latest available version of AdGuard Home
+ properties:
+ new_version:
+ type: string
+ example: v0.9
+ announcement:
+ type: string
+ example: AdGuard Home v0.9 is now available!
+ announcement_url:
+ type: string
+ example: https://github.com/AdguardTeam/AdGuardHome/releases/tag/v0.9
+ can_autoupdate:
+ type: boolean
+ Stats:
+ type: object
+ description: Server statistics data
+ properties:
+ time_units:
+ type: string
+ description: Time units (hours | days)
+ example: hours
+ num_dns_queries:
+ type: integer
+ description: Total number of DNS queries
+ example: 123
+ num_blocked_filtering:
+ type: integer
+ description: Number of requests blocked by filtering rules
+ example: 50
+ num_replaced_safebrowsing:
+ type: integer
+ description: Number of requests blocked by safebrowsing module
+ example: 5
+ num_replaced_safesearch:
+ type: integer
+ description: Number of requests blocked by safesearch module
+ example: 5
+ num_replaced_parental:
+ type: integer
+ description: Number of blocked adult websites
+ example: 15
+ avg_processing_time:
+ type: number
+ format: float
+ description: Average time in milliseconds on processing a DNS
+ example: 0.34
+ top_queried_domains:
+ type: array
+ items:
+ type: object
+ top_clients:
+ type: array
+ items:
+ type: object
+ top_blocked_domains:
+ type: array
+ items:
+ type: object
+ dns_queries:
+ type: array
+ items:
+ type: integer
+ blocked_filtering:
+ type: array
+ items:
+ type: integer
+ replaced_safebrowsing:
+ type: array
+ items:
+ type: integer
+ replaced_parental:
+ type: array
+ items:
+ type: integer
+ StatsConfig:
+ type: object
+ description: Statistics configuration
+ properties:
+ interval:
+ type: integer
+ description: Time period to keep data (1 | 7 | 30 | 90)
+ DhcpConfig:
+ type: object
+ description: Built-in DHCP server configuration
+ required:
+ - enabled
+ - gateway_ip
+ - subnet_mask
+ - range_start
+ - range_end
+ - lease_duration
+ properties:
+ enabled:
+ type: boolean
+ gateway_ip:
+ type: string
+ example: 192.168.1.1
+ subnet_mask:
+ type: string
+ example: 255.255.255.0
+ range_start:
+ type: string
+ example: 192.168.1.2
+ range_end:
+ type: string
+ example: 192.168.10.50
+ lease_duration:
+ type: string
+ example: 12h
+ DhcpLease:
+ type: object
+ description: DHCP lease information
+ required:
+ - mac
+ - ip
+ - hostname
+ - expires
+ properties:
+ mac:
+ type: string
+ example: 00:11:09:b3:b3:b8
+ ip:
+ type: string
+ example: 192.168.1.22
+ hostname:
+ type: string
+ example: dell
+ expires:
+ type: string
+ format: date-time
+ example: 2017-07-21T17:32:28Z
+ DhcpStaticLease:
+ type: object
+ description: DHCP static lease information
+ required:
+ - mac
+ - ip
+ - hostname
+ - expires
+ properties:
+ mac:
+ type: string
+ example: 00:11:09:b3:b3:b8
+ ip:
+ type: string
+ example: 192.168.1.22
+ hostname:
+ type: string
+ example: dell
+ DhcpStatus:
+ type: object
+ description: Built-in DHCP server configuration and status
+ required:
+ - config
+ - leases
+ properties:
+ config:
+ $ref: "#/components/schemas/DhcpConfig"
+ leases:
+ type: array
+ items:
+ $ref: "#/components/schemas/DhcpLease"
+ static_leases:
+ type: array
+ items:
+ $ref: "#/components/schemas/DhcpStaticLease"
+ DhcpSearchResult:
+ type: object
+ description: Information about a DHCP server discovered in the current network
+ properties:
+ other_server:
+ $ref: "#/components/schemas/DhcpSearchResultOtherServer"
+ static_ip:
+ $ref: "#/components/schemas/DhcpSearchResultStaticIP"
+ DhcpSearchResultOtherServer:
+ type: object
+ properties:
+ found:
+ type: string
+ description: yes|no|error
+ example: no
+ error:
+ type: string
+ description: Set if found=error
+ example: ""
+ DhcpSearchResultStaticIP:
+ type: object
+ properties:
+ static:
+ type: string
+ description: yes|no|error
+ example: yes
+ ip:
+ type: string
+ description: Set if static=no
+ example: ""
+ DnsAnswer:
+ type: object
+ description: DNS answer section
+ properties:
+ ttl:
+ type: integer
+ example: 55
+ type:
+ type: string
+ example: A
+ value:
+ type: string
+ example: 217.69.139.201
+ DnsQuestion:
+ type: object
+ description: DNS question section
+ properties:
+ class:
+ type: string
+ example: IN
+ host:
+ type: string
+ example: example.org
+ type:
+ type: string
+ example: A
+ AddUrlRequest:
+ type: object
+ description: /add_url request data
+ properties:
+ name:
+ type: string
+ url:
+ description: URL or an absolute path to the file containing filtering rules
+ type: string
+ example: https://filters.adtidy.org/windows/filters/15.txt
+ RemoveUrlRequest:
+ type: object
+ description: /remove_url request data
+ properties:
+ url:
+ description: Previously added URL containing filtering rules
+ type: string
+ example: https://filters.adtidy.org/windows/filters/15.txt
+ QueryLogItem:
+ type: object
+ description: Query log item
+ properties:
+ answer:
+ type: array
+ items:
+ $ref: "#/components/schemas/DnsAnswer"
+ original_answer:
+ type: array
+ description: Answer from upstream server (optional)
+ items:
+ $ref: "#/components/schemas/DnsAnswer"
+ answer_dnssec:
+ type: boolean
+ client:
+ type: string
+ example: 192.168.0.1
+ elapsedMs:
+ type: string
+ example: "54.023928"
+ question:
+ $ref: "#/components/schemas/DnsQuestion"
+ filterId:
+ type: integer
+ example: 123123
+ description: In case if there's a rule applied to this DNS request, this is ID of
+ the filter that rule belongs to.
+ rule:
+ type: string
+ example: "||example.org^"
+ description: Filtering rule applied to the request (if any)
+ reason:
+ type: string
+ description: DNS filter status
+ enum:
+ - NotFilteredNotFound
+ - NotFilteredWhiteList
+ - NotFilteredError
+ - FilteredBlackList
+ - FilteredSafeBrowsing
+ - FilteredParental
+ - FilteredInvalid
+ - FilteredSafeSearch
+ - FilteredBlockedService
+ - ReasonRewrite
+ service_name:
+ type: string
+ description: Set if reason=FilteredBlockedService
+ status:
+ type: string
+ description: DNS response status
+ example: NOERROR
+ time:
+ type: string
+ description: DNS request processing start time
+ example: 2018-11-26T00:02:41+03:00
+ QueryLog:
+ type: object
+ description: Query log
+ properties:
+ oldest:
+ type: string
+ example: 2018-11-26T00:02:41+03:00
+ data:
+ type: array
+ items:
+ $ref: "#/components/schemas/QueryLogItem"
+ QueryLogConfig:
+ type: object
+ description: Query log configuration
+ properties:
+ enabled:
+ type: boolean
+ description: Is query log enabled
+ interval:
+ type: integer
+ description: Time period to keep data (1 | 7 | 30 | 90)
+ anonymize_client_ip:
+ type: boolean
+ description: Anonymize clients' IP addresses
+ TlsConfig:
+ type: object
+ description: TLS configuration settings and status
+ properties:
+ enabled:
+ type: boolean
+ example: "true"
+ description: enabled is the encryption (DOT/DOH/HTTPS) status
+ server_name:
+ type: string
+ example: example.org
+ description: server_name is the hostname of your HTTPS/TLS server
+ force_https:
+ type: boolean
+ example: "true"
+ description: if true, forces HTTP->HTTPS redirect
+ port_https:
+ type: integer
+ format: int32
+ example: 443
+ description: HTTPS port. If 0, HTTPS will be disabled.
+ port_dns_over_tls:
+ type: integer
+ format: int32
+ example: 853
+ description: DNS-over-TLS port. If 0, DOT will be disabled.
+ certificate_chain:
+ type: string
+ description: Base64 string with PEM-encoded certificates chain
+ private_key:
+ type: string
+ description: Base64 string with PEM-encoded private key
+ certificate_path:
+ type: string
+ description: Path to certificate file
+ private_key_path:
+ type: string
+ description: Path to private key file
+ valid_cert:
+ type: boolean
+ example: "true"
+ description: valid_cert is true if the specified certificates chain is a valid
+ chain of X509 certificates
+ valid_chain:
+ type: boolean
+ example: "true"
+ description: valid_chain is true if the specified certificates chain is verified
+ and issued by a known CA
+ subject:
+ type: string
+ example: CN=example.org
+ description: subject is the subject of the first certificate in the chain
+ issuer:
+ type: string
+ example: CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US
+ description: issuer is the issuer of the first certificate in the chain
+ not_before:
+ type: string
+ example: 2019-01-31T10:47:32Z
+ description: not_before is the NotBefore field of the first certificate in the
+ chain
+ not_after:
+ type: string
+ example: 2019-05-01T10:47:32Z
+ description: not_after is the NotAfter field of the first certificate in the chain
+ dns_names:
+ type: array
+ items:
+ type: string
+ description: dns_names is the value of SubjectAltNames field of the first
+ certificate in the chain
+ example:
+ - "*.example.org"
+ valid_key:
+ type: boolean
+ example: "true"
+ description: valid_key is true if the key is a valid private key
+ key_type:
+ type: string
+ example: RSA
+ description: key_type is either RSA or ECDSA
+ warning_validation:
+ type: string
+ example: You have specified an empty certificate
+ description: warning_validation is a validation warning message with the issue
+ description
+ valid_pair:
+ type: boolean
+ example: "true"
+ description: valid_pair is true if both certificate and private key are correct
+ NetInterface:
+ type: object
+ description: Network interface info
+ properties:
+ flags:
+ type: string
+ example: up|broadcast|multicast
+ hardware_address:
+ type: string
+ example: 52:54:00:11:09:ba
+ mtu:
+ type: integer
+ format: int32
+ example: 1500
+ name:
+ type: string
+ example: eth0
+ ip_addresses:
+ type: array
+ items:
+ type: string
+ example:
+ - 127.0.0.1
+ AddressInfo:
+ type: object
+ description: Port information
+ properties:
+ ip:
+ type: string
+ example: 127.0.0.1
+ port:
+ type: integer
+ format: int32
+ example: 53
+ AddressesInfo:
+ type: object
+ description: AdGuard Home addresses configuration
+ properties:
+ dns_port:
+ type: integer
+ format: int32
+ example: 53
+ web_port:
+ type: integer
+ format: int32
+ example: 80
+ interfaces:
+ type: object
+ description: Network interfaces dictionary (key is the interface name)
+ additionalProperties:
+ $ref: "#/components/schemas/NetInterface"
+ ProfileInfo:
+ type: object
+ description: Information about the current user
+ properties:
+ name:
+ type: string
+ Client:
+ type: object
+ description: Client information
+ properties:
+ name:
+ type: string
+ description: Name
+ example: localhost
+ ids:
+ type: array
+ description: IP, CIDR or MAC address
+ items:
+ type: string
+ use_global_settings:
+ type: boolean
+ filtering_enabled:
+ type: boolean
+ parental_enabled:
+ type: boolean
+ safebrowsing_enabled:
+ type: boolean
+ safesearch_enabled:
+ type: boolean
+ use_global_blocked_services:
+ type: boolean
+ blocked_services:
+ type: array
+ items:
+ type: string
+ upstreams:
+ type: array
+ items:
+ type: string
+ ClientAuto:
+ type: object
+ description: Auto-Client information
+ properties:
+ ip:
+ type: string
+ description: IP address
+ example: 127.0.0.1
+ name:
+ type: string
+ description: Name
+ example: localhost
+ source:
+ type: string
+ description: The source of this information
+ example: etc/hosts
+ ClientUpdate:
+ type: object
+ description: Client update request
+ properties:
+ name:
+ type: string
+ data:
+ $ref: "#/components/schemas/Client"
+ ClientDelete:
+ type: object
+ description: Client delete request
+ properties:
+ name:
+ type: string
+ ClientsFindResponse:
+ type: array
+ description: Response to clients find operation
+ items:
+ $ref: "#/components/schemas/ClientsFindEntry"
+ ClientsFindEntry:
+ type: object
+ properties:
+ 1.2.3.4:
+ items:
+ $ref: "#/components/schemas/Client"
+ Clients:
+ type: object
+ properties:
+ clients:
+ $ref: "#/components/schemas/ClientsArray"
+ auto_clients:
+ $ref: "#/components/schemas/ClientsAutoArray"
+ ClientsArray:
+ type: array
+ items:
+ $ref: "#/components/schemas/Client"
+ description: Clients array
+ ClientsAutoArray:
+ type: array
+ items:
+ $ref: "#/components/schemas/ClientAuto"
+ description: Auto-Clients array
+ RewriteList:
+ type: array
+ items:
+ $ref: "#/components/schemas/RewriteEntry"
+ description: Rewrite rules array
+ RewriteEntry:
+ type: object
+ description: Rewrite rule
+ properties:
+ domain:
+ type: string
+ description: Domain name
+ example: example.org
+ answer:
+ type: string
+ description: value of A, AAAA or CNAME DNS record
+ example: 127.0.0.1
+ BlockedServicesArray:
+ type: array
+ items:
+ type: string
+ CheckConfigRequest:
+ type: object
+ description: Configuration to be checked
+ properties:
+ dns:
+ $ref: "#/components/schemas/CheckConfigRequestInfo"
+ web:
+ $ref: "#/components/schemas/CheckConfigRequestInfo"
+ set_static_ip:
+ type: boolean
+ example: false
+ CheckConfigRequestInfo:
+ type: object
+ properties:
+ ip:
+ type: string
+ example: 127.0.0.1
+ port:
+ type: integer
+ format: int32
+ example: 53
+ autofix:
+ type: boolean
+ example: false
+ CheckConfigResponse:
+ type: object
+ properties:
+ dns:
+ $ref: "#/components/schemas/CheckConfigResponseInfo"
+ web:
+ $ref: "#/components/schemas/CheckConfigResponseInfo"
+ static_ip:
+ $ref: "#/components/schemas/CheckConfigStaticIpInfo"
+ CheckConfigResponseInfo:
+ type: object
+ properties:
+ status:
+ type: string
+ example: ""
+ can_autofix:
+ type: boolean
+ example: false
+ CheckConfigStaticIpInfo:
+ type: object
+ properties:
+ static:
+ type: string
+ example: no
+ description: "Can be: yes, no, error"
+ ip:
+ type: string
+ example: 192.168.1.1
+ description: Current dynamic IP address. Set if static=no
+ error:
+ type: string
+ example: ""
+ description: Error text. Set if static=error
+ InitialConfiguration:
+ type: object
+ description: AdGuard Home initial configuration (for the first-install wizard)
+ properties:
+ dns:
+ $ref: "#/components/schemas/AddressInfo"
+ web:
+ $ref: "#/components/schemas/AddressInfo"
+ username:
+ type: string
+ description: Basic auth username
+ example: admin
+ password:
+ type: string
+ description: Basic auth password
+ example: password
+ Login:
+ type: object
+ description: Login request data
+ properties:
+ username:
+ type: string
+ description: User name
+ password:
+ type: string
+ description: Password
diff --git a/openapi/package.json b/openapi/package.json
index 9b3d78ed..34faf487 100644
--- a/openapi/package.json
+++ b/openapi/package.json
@@ -3,10 +3,13 @@
"version": "0.1.0",
"private": true,
"scripts": {
- "start": "node index.js"
+ "start": "node_modules/.bin/speccy serve -p 4000 openapi.yaml",
+ "start-old": "node index.js",
+ "test": "node_modules/.bin/speccy lint openapi.yaml"
},
"dependencies": {
"express": "^4.16.4",
- "swagger-ui-dist": "^3.20.1"
+ "speccy": "^0.11.0",
+ "swagger-ui-dist": "^3.25.1"
}
}
diff --git a/openapi/yarn.lock b/openapi/yarn.lock
index 2eeacbe0..b111fca7 100644
--- a/openapi/yarn.lock
+++ b/openapi/yarn.lock
@@ -2,44 +2,263 @@
# yarn lockfile v1
-accepts@~1.3.5:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
- integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I=
+"@babel/code-frame@^7.0.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e"
+ integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==
dependencies:
- mime-types "~2.1.18"
- negotiator "0.6.1"
+ "@babel/highlight" "^7.8.3"
+
+"@babel/helper-validator-identifier@^7.9.0":
+ version "7.9.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80"
+ integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==
+
+"@babel/highlight@^7.8.3":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079"
+ integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.9.0"
+ chalk "^2.0.0"
+ js-tokens "^4.0.0"
+
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.8.7":
+ version "7.9.2"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06"
+ integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
+"@cloudflare/json-schema-walker@^0.1.1":
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/@cloudflare/json-schema-walker/-/json-schema-walker-0.1.1.tgz#d1cc94065327b0b3800158db40cb78124a3476de"
+ integrity sha512-P3n0hEgk1m6uKWgL4Yb1owzXVG4pM70G4kRnDQxZXiVvfCRtaqiHu+ZRiRPzmwGBiLTO1LWc2yR1M8oz0YkXww==
+
+"@types/color-name@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
+ integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
+
+accepts@~1.3.7:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
+ integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
+ dependencies:
+ mime-types "~2.1.24"
+ negotiator "0.6.2"
+
+ajv@^5.5.2:
+ version "5.5.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
+ integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=
+ dependencies:
+ co "^4.6.0"
+ fast-deep-equal "^1.0.0"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.3.0"
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
+
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+ integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
+
+ansi-regex@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
+ integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+ansi-styles@^4.0.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
+ integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
+ dependencies:
+ "@types/color-name" "^1.1.1"
+ color-convert "^2.0.1"
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
array-flatten@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
-body-parser@1.18.3:
- version "1.18.3"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4"
- integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=
+async@^1.4.0:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+ integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
+
+better-ajv-errors@^0.6.1, better-ajv-errors@^0.6.7:
+ version "0.6.7"
+ resolved "https://registry.yarnpkg.com/better-ajv-errors/-/better-ajv-errors-0.6.7.tgz#b5344af1ce10f434fe02fc4390a5a9c811e470d1"
+ integrity sha512-PYgt/sCzR4aGpyNy5+ViSQ77ognMnWq7745zM+/flYO4/Yisdtp9wDQW2IKCyVYPUxQt3E/b5GBSwfhd1LPdlg==
dependencies:
- bytes "3.0.0"
+ "@babel/code-frame" "^7.0.0"
+ "@babel/runtime" "^7.0.0"
+ chalk "^2.4.1"
+ core-js "^3.2.1"
+ json-to-ast "^2.0.3"
+ jsonpointer "^4.0.1"
+ leven "^3.1.0"
+
+big.js@^5.2.2:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+ integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
+body-parser@1.19.0:
+ version "1.19.0"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
+ integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
+ dependencies:
+ bytes "3.1.0"
content-type "~1.0.4"
debug "2.6.9"
depd "~1.1.2"
- http-errors "~1.6.3"
- iconv-lite "0.4.23"
+ http-errors "1.7.2"
+ iconv-lite "0.4.24"
on-finished "~2.3.0"
- qs "6.5.2"
- raw-body "2.3.3"
- type-is "~1.6.16"
+ qs "6.7.0"
+ raw-body "2.4.0"
+ type-is "~1.6.17"
-bytes@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
- integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
+bytes@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
+ integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
-content-disposition@0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
- integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ=
+call-me-maybe@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
+ integrity sha1-JtII6onje1y95gJQoV8DHBak1ms=
+
+camelcase@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
+ integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
+
+camelcase@^5.0.0:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
+chalk@^2.0.0, chalk@^2.4.1:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+classnames@^2.2.0, classnames@^2.2.3, classnames@^2.2.6:
+ version "2.2.6"
+ resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
+ integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==
+
+clipboard@^2.0.0:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376"
+ integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==
+ dependencies:
+ good-listener "^1.2.2"
+ select "^1.1.2"
+ tiny-emitter "^2.0.0"
+
+cliui@^3.0.3:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
+ integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wrap-ansi "^2.0.0"
+
+cliui@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
+ integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==
+ dependencies:
+ string-width "^2.1.1"
+ strip-ansi "^4.0.0"
+ wrap-ansi "^2.0.0"
+
+cliui@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
+ integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^6.2.0"
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
+
+code-error-fragment@0.0.230:
+ version "0.0.230"
+ resolved "https://registry.yarnpkg.com/code-error-fragment/-/code-error-fragment-0.0.230.tgz#d736d75c832445342eca1d1fedbf17d9618b14d7"
+ integrity sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+ integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+
+color-convert@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+commander@^2.18.0:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+content-disposition@0.5.3:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
+ integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
+ dependencies:
+ safe-buffer "5.1.2"
content-type@~1.0.4:
version "1.0.4"
@@ -51,10 +270,26 @@ cookie-signature@1.0.6:
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
-cookie@0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
- integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=
+cookie@0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
+ integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
+
+core-js@^3.2.1:
+ version "3.6.5"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a"
+ integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==
+
+cross-spawn@^6.0.0:
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+ integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
+ dependencies:
+ nice-try "^1.0.4"
+ path-key "^2.0.1"
+ semver "^5.5.0"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
debug@2.6.9:
version "2.6.9"
@@ -63,6 +298,21 @@ debug@2.6.9:
dependencies:
ms "2.0.0"
+decamelize@^1.1.1, decamelize@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+ integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+
+decko@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decko/-/decko-1.2.0.tgz#fd43c735e967b8013306884a56fbe665996b6817"
+ integrity sha1-/UPHNelnuAEzBohKVvvmZZlraBc=
+
+delegate@^3.1.2:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
+ integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==
+
depd@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -73,75 +323,185 @@ destroy@~1.0.4:
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
+dom-walk@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
+ integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
+
+dompurify@^1.0.10:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-1.0.11.tgz#fe0f4a40d147f7cebbe31a50a1357539cfc1eb4d"
+ integrity sha512-XywCTXZtc/qCX3iprD1pIklRVk/uhl8BKpkTxr+ZyMVUzSUg7wkQXRBp/euJ5J5moa1QvfpvaPQVP71z1O59dQ==
+
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
+ejs@^2.5.2:
+ version "2.7.4"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
+ integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
+
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+emojis-list@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+ integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
+
encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
+end-of-stream@^1.1.0:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+ dependencies:
+ once "^1.4.0"
+
+es6-promise@^3.2.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
+ integrity sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=
+
escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
+escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+esprima@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
etag@~1.8.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
-express@^4.16.4:
- version "4.16.4"
- resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e"
- integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==
+eventemitter3@^3.0.0:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
+ integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
+
+execa@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
+ integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
dependencies:
- accepts "~1.3.5"
+ cross-spawn "^6.0.0"
+ get-stream "^4.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+express@^4.14.0, express@^4.16.4:
+ version "4.17.1"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
+ integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
+ dependencies:
+ accepts "~1.3.7"
array-flatten "1.1.1"
- body-parser "1.18.3"
- content-disposition "0.5.2"
+ body-parser "1.19.0"
+ content-disposition "0.5.3"
content-type "~1.0.4"
- cookie "0.3.1"
+ cookie "0.4.0"
cookie-signature "1.0.6"
debug "2.6.9"
depd "~1.1.2"
encodeurl "~1.0.2"
escape-html "~1.0.3"
etag "~1.8.1"
- finalhandler "1.1.1"
+ finalhandler "~1.1.2"
fresh "0.5.2"
merge-descriptors "1.0.1"
methods "~1.1.2"
on-finished "~2.3.0"
- parseurl "~1.3.2"
+ parseurl "~1.3.3"
path-to-regexp "0.1.7"
- proxy-addr "~2.0.4"
- qs "6.5.2"
- range-parser "~1.2.0"
+ proxy-addr "~2.0.5"
+ qs "6.7.0"
+ range-parser "~1.2.1"
safe-buffer "5.1.2"
- send "0.16.2"
- serve-static "1.13.2"
- setprototypeof "1.1.0"
- statuses "~1.4.0"
- type-is "~1.6.16"
+ send "0.17.1"
+ serve-static "1.14.1"
+ setprototypeof "1.1.1"
+ statuses "~1.5.0"
+ type-is "~1.6.18"
utils-merge "1.0.1"
vary "~1.1.2"
-finalhandler@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105"
- integrity sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==
+fast-deep-equal@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
+ integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
+
+fast-levenshtein@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+
+fast-safe-stringify@^2.0.7:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743"
+ integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==
+
+finalhandler@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
+ integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
dependencies:
debug "2.6.9"
encodeurl "~1.0.2"
escape-html "~1.0.3"
on-finished "~2.3.0"
- parseurl "~1.3.2"
- statuses "~1.4.0"
+ parseurl "~1.3.3"
+ statuses "~1.5.0"
unpipe "~1.0.0"
+find-up@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+ integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
+ dependencies:
+ locate-path "^3.0.0"
+
+find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
+foreach@^2.0.4:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
+ integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k=
+
+format-util@^1.0.3:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/format-util/-/format-util-1.0.5.tgz#1ffb450c8a03e7bccffe40643180918cc297d271"
+ integrity sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg==
+
forwarded@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
@@ -152,20 +512,86 @@ fresh@0.5.2:
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
-http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3:
- version "1.6.3"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
- integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
+get-caller-file@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+ integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
+
+get-caller-file@^2.0.1:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+get-stream@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+ integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+ dependencies:
+ pump "^3.0.0"
+
+global@^4.3.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"
+ integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==
+ dependencies:
+ min-document "^2.19.0"
+ process "^0.11.10"
+
+good-listener@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
+ integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=
+ dependencies:
+ delegate "^3.1.2"
+
+grapheme-splitter@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
+ integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
+ integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+ dependencies:
+ react-is "^16.7.0"
+
+http-errors@1.7.2:
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
+ integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
dependencies:
depd "~1.1.2"
inherits "2.0.3"
- setprototypeof "1.1.0"
- statuses ">= 1.4.0 < 2"
+ setprototypeof "1.1.1"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.0"
-iconv-lite@0.4.23:
- version "0.4.23"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
- integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==
+http-errors@~1.7.2:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
+ integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.4"
+ setprototypeof "1.1.1"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.0"
+
+http2-client@^1.2.5:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/http2-client/-/http2-client-1.3.3.tgz#90fc15d646cca86956b156d07c83947d57d659a9"
+ integrity sha512-nUxLymWQ9pzkzTmir24p2RtsgruLmhje7lH3hLX1IpwvyTg77fW+1brenPPP3USAR+rQ36p5sTA/x7sjCJVkAA==
+
+iconv-lite@0.4.24:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
dependencies:
safer-buffer ">= 2.1.2 < 3"
@@ -174,16 +600,210 @@ inherits@2.0.3:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
-ipaddr.js@1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e"
- integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4=
+inherits@2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+ini@^1.3.0:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
+ integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
+
+invert-kv@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+ integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
+
+invert-kv@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
+ integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
+
+ipaddr.js@1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
+
+is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+ integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+ integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@^3.12.1, js-yaml@^3.2.3:
+ version "3.13.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
+ integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+json-pointer@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/json-pointer/-/json-pointer-0.6.0.tgz#8e500550a6aac5464a473377da57aa6cc22828d7"
+ integrity sha1-jlAFUKaqxUZKRzN32leqbMIoKNc=
+ dependencies:
+ foreach "^2.0.4"
+
+json-schema-ref-parser@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-6.1.0.tgz#30af34aeab5bee0431da805dac0eb21b574bf63d"
+ integrity sha512-pXe9H1m6IgIpXmE5JSb8epilNTGsmTb2iPohAXpOdhqGFbQjNeHHsZxU+C8w6T81GZxSPFLeUoqDJmzxx5IGuw==
+ dependencies:
+ call-me-maybe "^1.0.1"
+ js-yaml "^3.12.1"
+ ono "^4.0.11"
+
+json-schema-to-openapi-schema@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/json-schema-to-openapi-schema/-/json-schema-to-openapi-schema-0.3.0.tgz#d8d4a1a321b3aa00dce71fa27ba5016f2d50288b"
+ integrity sha512-UaaAmmbAq61yQM5yLoVOM99GP1JI8YNVEv3QWbD/79YDNNKk99uGn1k2pa+ZSfdLILi/euGguVG8URmv5gR/Bw==
+ dependencies:
+ "@cloudflare/json-schema-walker" "^0.1.1"
+
+json-schema-traverse@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
+ integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=
+
+json-to-ast@^2.0.3:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/json-to-ast/-/json-to-ast-2.1.0.tgz#041a9fcd03c0845036acb670d29f425cea4faaf9"
+ integrity sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==
+ dependencies:
+ code-error-fragment "0.0.230"
+ grapheme-splitter "^1.0.4"
+
+json5@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
+ integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
+ dependencies:
+ minimist "^1.2.0"
+
+jsonpointer@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
+ integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk=
+
+lcid@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+ integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
+ dependencies:
+ invert-kv "^1.0.0"
+
+lcid@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
+ integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==
+ dependencies:
+ invert-kv "^2.0.0"
+
+leven@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
+ integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+
+loader-utils@^1.1.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
+ integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^1.0.1"
+
+locate-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+ integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
+ dependencies:
+ p-locate "^3.0.0"
+ path-exists "^3.0.0"
+
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
+loose-envify@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+lunr@2.3.6:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.6.tgz#f278beee7ffd56ad86e6e478ce02ab2b98c78dd5"
+ integrity sha512-swStvEyDqQ85MGpABCMBclZcLI/pBIlu8FFDtmX197+oEgKloJ67QnB+Tidh0340HmLMs39c4GrkPY3cmkXp6Q==
+
+map-age-cleaner@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
+ integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
+ dependencies:
+ p-defer "^1.0.0"
+
+mark.js@^8.11.1:
+ version "8.11.1"
+ resolved "https://registry.yarnpkg.com/mark.js/-/mark.js-8.11.1.tgz#180f1f9ebef8b0e638e4166ad52db879beb2ffc5"
+ integrity sha1-GA8fnr74sOY45BZq1S24eb6y/8U=
+
+marked@^0.6.1:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/marked/-/marked-0.6.3.tgz#79babad78af638ba4d522a9e715cdfdd2429e946"
+ integrity sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ==
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
+mem@^4.0.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
+ integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==
+ dependencies:
+ map-age-cleaner "^0.1.1"
+ mimic-fn "^2.0.0"
+ p-is-promise "^2.0.0"
+
+memoize-one@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0"
+ integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==
+
merge-descriptors@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
@@ -194,32 +814,167 @@ methods@~1.1.2:
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
-mime-db@~1.37.0:
- version "1.37.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8"
- integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==
+mime-db@1.43.0:
+ version "1.43.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58"
+ integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==
-mime-types@~2.1.18:
- version "2.1.21"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96"
- integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==
+mime-types@~2.1.24:
+ version "2.1.26"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06"
+ integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==
dependencies:
- mime-db "~1.37.0"
+ mime-db "1.43.0"
-mime@1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
- integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==
+mime@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+ integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+
+mimic-fn@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+min-document@^2.19.0:
+ version "2.19.0"
+ resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
+ integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=
+ dependencies:
+ dom-walk "^0.1.0"
+
+minimist@^1.2.0:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
+mobx-react@^5.4.3:
+ version "5.4.4"
+ resolved "https://registry.yarnpkg.com/mobx-react/-/mobx-react-5.4.4.tgz#b3de9c6eabcd0ed8a40036888cb0221ab9568b80"
+ integrity sha512-2mTzpyEjVB/RGk2i6KbcmP4HWcAUFox5ZRCrGvSyz49w20I4C4qql63grPpYrS9E9GKwgydBHQlA4y665LuRCQ==
+ dependencies:
+ hoist-non-react-statics "^3.0.0"
+ react-lifecycles-compat "^3.0.2"
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
-negotiator@0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
- integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=
+ms@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
+ integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
+
+nconf-yaml@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/nconf-yaml/-/nconf-yaml-1.0.2.tgz#fea065333cf42b77a5e8060517969799d4156575"
+ integrity sha1-/qBlMzz0K3el6AYFF5aXmdQVZXU=
+ dependencies:
+ js-yaml "^3.2.3"
+
+nconf@^0.10.0:
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/nconf/-/nconf-0.10.0.tgz#da1285ee95d0a922ca6cee75adcf861f48205ad2"
+ integrity sha512-fKiXMQrpP7CYWJQzKkPPx9hPgmq+YLDyxcG9N8RpiE9FoCkCbzD0NyW0YhE3xn3Aupe7nnDeIx4PFzYehpHT9Q==
+ dependencies:
+ async "^1.4.0"
+ ini "^1.3.0"
+ secure-keys "^1.0.0"
+ yargs "^3.19.0"
+
+negotiator@0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
+ integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
+
+nice-try@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+
+node-fetch-h2@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz#c6188325f9bd3d834020bf0f2d6dc17ced2241ac"
+ integrity sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==
+ dependencies:
+ http2-client "^1.2.5"
+
+node-fetch@^2.3.0:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
+ integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
+
+node-readfiles@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/node-readfiles/-/node-readfiles-0.2.0.tgz#dbbd4af12134e2e635c245ef93ffcf6f60673a5d"
+ integrity sha1-271K8SE04uY1wkXvk//Pb2BnOl0=
+ dependencies:
+ es6-promise "^3.2.1"
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
+ dependencies:
+ path-key "^2.0.0"
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+ integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
+
+oas-kit-common@^1.0.7, oas-kit-common@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/oas-kit-common/-/oas-kit-common-1.0.8.tgz#6d8cacf6e9097967a4c7ea8bcbcbd77018e1f535"
+ integrity sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==
+ dependencies:
+ fast-safe-stringify "^2.0.7"
+
+oas-linter@^3.0.0, oas-linter@^3.1.0:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/oas-linter/-/oas-linter-3.1.2.tgz#ff5eae63290cd2c0ef195bae9bcf5e91b6884c19"
+ integrity sha512-mv3HBG9aQz8PLGvonewIN9Y2Ra8QL6jvotRvf7NCdZ20n5vg4dO4y61UZh6s+KRDfJaU1PO+9Oxrn3EUN4Xygw==
+ dependencies:
+ should "^13.2.1"
+ yaml "^1.8.3"
+
+oas-resolver@^2.2.4, oas-resolver@^2.3.0:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/oas-resolver/-/oas-resolver-2.3.2.tgz#990a722ddcafe9b0b85893362963b829190b236f"
+ integrity sha512-toGCUv8wyZZmUAAsw4jn+511xNpUFW2ZLp4sAZ7xpERIeosrbxBxtkVxot9kXvdUHtPjRafi5+bkJ56TwQeYSQ==
+ dependencies:
+ node-fetch-h2 "^2.3.0"
+ oas-kit-common "^1.0.8"
+ reftools "^1.1.1"
+ yaml "^1.8.3"
+ yargs "^15.3.1"
+
+oas-schema-walker@^1.1.3:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/oas-schema-walker/-/oas-schema-walker-1.1.4.tgz#4b9d090c3622039741334d3e138510ff38197618"
+ integrity sha512-foVDDS0RJYMfhQEDh/WdBuCzydTcsCnGo9EeD8SpWq1uW10JXiz+8SfYVDA7LO87kjmlnTRZle/2gr5qxabaEA==
+
+oas-validator@^3.0.1, oas-validator@^3.4.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/oas-validator/-/oas-validator-3.4.0.tgz#7633b02e495af4a4e0224b249288b0928748476d"
+ integrity sha512-l/SxykuACi2U51osSsBXTxdsFc8Fw41xI7AsZkzgVgWJAzoEFaaNptt35WgY9C3757RUclsm6ye5GvSyYoozLQ==
+ dependencies:
+ ajv "^5.5.2"
+ better-ajv-errors "^0.6.7"
+ call-me-maybe "^1.0.1"
+ oas-kit-common "^1.0.7"
+ oas-linter "^3.1.0"
+ oas-resolver "^2.3.0"
+ oas-schema-walker "^1.1.3"
+ reftools "^1.1.0"
+ should "^13.2.1"
+ yaml "^1.8.3"
+
+object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
on-finished@~2.3.0:
version "2.3.0"
@@ -228,44 +983,271 @@ on-finished@~2.3.0:
dependencies:
ee-first "1.1.1"
-parseurl@~1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
- integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=
+once@^1.3.1, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+ dependencies:
+ wrappy "1"
+
+ono@^4.0.11:
+ version "4.0.11"
+ resolved "https://registry.yarnpkg.com/ono/-/ono-4.0.11.tgz#c7f4209b3e396e8a44ef43b9cedc7f5d791d221d"
+ integrity sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==
+ dependencies:
+ format-util "^1.0.3"
+
+openapi-sampler@1.0.0-beta.14:
+ version "1.0.0-beta.14"
+ resolved "https://registry.yarnpkg.com/openapi-sampler/-/openapi-sampler-1.0.0-beta.14.tgz#e06807f33a9c0fab841e212f5fb90e7af4acf30c"
+ integrity sha512-NNmH9YAN5AaCE4w6MQXdCrmsOJJQTswHVSp075+h+iiG+OTonpZE8HzwocozovD2imx4lamkuxGLs4E4bO4Z+g==
+ dependencies:
+ json-pointer "^0.6.0"
+
+os-locale@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
+ integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=
+ dependencies:
+ lcid "^1.0.0"
+
+os-locale@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
+ integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
+ dependencies:
+ execa "^1.0.0"
+ lcid "^2.0.0"
+ mem "^4.0.0"
+
+p-defer@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
+ integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+ integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
+
+p-is-promise@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
+ integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==
+
+p-limit@^2.0.0, p-limit@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+ dependencies:
+ p-try "^2.0.0"
+
+p-locate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+ integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
+ dependencies:
+ p-limit "^2.0.0"
+
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
+p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+parseurl@~1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+ integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-key@^2.0.0, path-key@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+ integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
path-to-regexp@0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
-proxy-addr@~2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93"
- integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==
+perfect-scrollbar@^1.4.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz#821d224ed8ff61990c23f26db63048cdc75b6b83"
+ integrity sha512-NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA==
+
+polished@^3.0.3:
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/polished/-/polished-3.5.1.tgz#657b6faf4c2308f3e0b1951196803a5e5d67b122"
+ integrity sha512-GVbvskpBiDV5TknurGL6OyFfLHsCknxbU8w5iMppT8rW0tLEoQHrIRfrPNPqGXNj3HGhkjRvhmg59Fy7HSnCAw==
+ dependencies:
+ "@babel/runtime" "^7.8.7"
+
+prismjs@^1.15.0:
+ version "1.20.0"
+ resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.20.0.tgz#9b685fc480a3514ee7198eac6a3bf5024319ff03"
+ integrity sha512-AEDjSrVNkynnw6A+B1DsFkd6AVdTnp+/WoUixFRULlCLZVRZlVQMVWio/16jv7G1FscUxQxOQhWwApgbnxr6kQ==
+ optionalDependencies:
+ clipboard "^2.0.0"
+
+process@^0.11.10:
+ version "0.11.10"
+ resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+ integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
+
+prop-types@^15.5.0, prop-types@^15.6.1, prop-types@^15.7.2:
+ version "15.7.2"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
+ integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
+ dependencies:
+ loose-envify "^1.4.0"
+ object-assign "^4.1.1"
+ react-is "^16.8.1"
+
+proxy-addr@~2.0.5:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
+ integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==
dependencies:
forwarded "~0.1.2"
- ipaddr.js "1.8.0"
+ ipaddr.js "1.9.1"
-qs@6.5.2:
- version "6.5.2"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
- integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
-
-range-parser@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
- integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=
-
-raw-body@2.3.3:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3"
- integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==
+pump@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
dependencies:
- bytes "3.0.0"
- http-errors "1.6.3"
- iconv-lite "0.4.23"
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+qs@6.7.0:
+ version "6.7.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
+ integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
+
+range-parser@~1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+
+raw-body@2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
+ integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
+ dependencies:
+ bytes "3.1.0"
+ http-errors "1.7.2"
+ iconv-lite "0.4.24"
unpipe "1.0.0"
+react-dropdown@^1.6.4:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/react-dropdown/-/react-dropdown-1.7.0.tgz#20287aafabdece49a6595ebe40e3fa1a37c26456"
+ integrity sha512-zFZ73pgLA32hArpE4j/7DtOEhOMg240XG5QvbAb0/VinGekkHDVIakMyAFUKC5jDz8jqXEltgriqFW9R5iCtPQ==
+ dependencies:
+ classnames "^2.2.3"
+
+react-hot-loader@^4.8.0:
+ version "4.12.20"
+ resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.12.20.tgz#c2c42362a7578e5c30357a5ff7afa680aa0bef8a"
+ integrity sha512-lPlv1HVizi0lsi+UFACBJaydtRYILWkfHAC/lyCs6ZlAxlOZRQIfYHDqiGaRvL/GF7zyti+Qn9XpnDAUvdFA4A==
+ dependencies:
+ fast-levenshtein "^2.0.6"
+ global "^4.3.0"
+ hoist-non-react-statics "^3.3.0"
+ loader-utils "^1.1.0"
+ prop-types "^15.6.1"
+ react-lifecycles-compat "^3.0.4"
+ shallowequal "^1.1.0"
+ source-map "^0.7.3"
+
+react-is@^16.7.0, react-is@^16.8.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
+react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
+ integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
+
+react-tabs@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/react-tabs/-/react-tabs-3.1.0.tgz#ecc50f034c1d6da2606fab9293055bbc861b382e"
+ integrity sha512-9RKc77HCPsjQDVPyZEw37g3JPtg26oSQ9o4mtaVXjJuLedDX5+TQcE+MRNKR+4aO3GMAY4YslCePGG1//MQ3Jg==
+ dependencies:
+ classnames "^2.2.0"
+ prop-types "^15.5.0"
+
+redoc@v2.0.0-rc.8-1:
+ version "2.0.0-rc.8-1"
+ resolved "https://registry.yarnpkg.com/redoc/-/redoc-2.0.0-rc.8-1.tgz#53e441f54e79ce25782525d937cd499af3b25e2d"
+ integrity sha512-/YoCdcl2QtveKz4CTXaqtOfCIaVgZZgcnfUNC5xK7xBl/LxTiNj3tUbgFmrYMLTZGzNdQ9TUJpsa7lXDKcr8Pw==
+ dependencies:
+ classnames "^2.2.6"
+ decko "^1.2.0"
+ dompurify "^1.0.10"
+ eventemitter3 "^3.0.0"
+ json-pointer "^0.6.0"
+ json-schema-ref-parser "^6.1.0"
+ lunr "2.3.6"
+ mark.js "^8.11.1"
+ marked "^0.6.1"
+ memoize-one "^5.0.0"
+ mobx-react "^5.4.3"
+ openapi-sampler "1.0.0-beta.14"
+ perfect-scrollbar "^1.4.0"
+ polished "^3.0.3"
+ prismjs "^1.15.0"
+ prop-types "^15.7.2"
+ react-dropdown "^1.6.4"
+ react-hot-loader "^4.8.0"
+ react-tabs "^3.0.0"
+ slugify "^1.3.4"
+ stickyfill "^1.1.1"
+ swagger2openapi "^5.2.3"
+ tslib "^1.9.3"
+
+reftools@^1.1.0, reftools@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/reftools/-/reftools-1.1.1.tgz#09cff48f62c09cae40bd1fe9683f5412d2a4656d"
+ integrity sha512-7ySkzK7YpUeJP16rzJqEXTZ7IrAq/AL/p+wWejD9wdKQOe+mYYVAOB3w5ZTs2eoHfmAidwr/6PcC+q+LzPF/DQ==
+
+regenerator-runtime@^0.13.4:
+ version "0.13.5"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
+ integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+
+require-main-filename@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+ integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
+
+require-main-filename@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
+ integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
+
safe-buffer@5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
@@ -276,10 +1258,25 @@ safe-buffer@5.1.2:
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-send@0.16.2:
- version "0.16.2"
- resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1"
- integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==
+secure-keys@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/secure-keys/-/secure-keys-1.0.0.tgz#f0c82d98a3b139a8776a8808050b824431087fca"
+ integrity sha1-8MgtmKOxOah3aogIBQuCRDEIf8o=
+
+select@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
+ integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=
+
+semver@^5.5.0:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+ integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+
+send@0.17.1:
+ version "0.17.1"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
+ integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
dependencies:
debug "2.6.9"
depd "~1.1.2"
@@ -288,50 +1285,246 @@ send@0.16.2:
escape-html "~1.0.3"
etag "~1.8.1"
fresh "0.5.2"
- http-errors "~1.6.2"
- mime "1.4.1"
- ms "2.0.0"
+ http-errors "~1.7.2"
+ mime "1.6.0"
+ ms "2.1.1"
on-finished "~2.3.0"
- range-parser "~1.2.0"
- statuses "~1.4.0"
+ range-parser "~1.2.1"
+ statuses "~1.5.0"
-serve-static@1.13.2:
- version "1.13.2"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1"
- integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==
+serve-static@1.14.1:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
+ integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
dependencies:
encodeurl "~1.0.2"
escape-html "~1.0.3"
- parseurl "~1.3.2"
- send "0.16.2"
+ parseurl "~1.3.3"
+ send "0.17.1"
-setprototypeof@1.1.0:
+set-blocking@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+ integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+
+setprototypeof@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
+ integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
+
+shallowequal@^1.1.0:
version "1.1.0"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
- integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
+ resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
+ integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==
-"statuses@>= 1.4.0 < 2":
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
+ dependencies:
+ shebang-regex "^1.0.0"
+
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+ integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
+
+should-equal@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3"
+ integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==
+ dependencies:
+ should-type "^1.4.0"
+
+should-format@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1"
+ integrity sha1-m/yPdPo5IFxT04w01xcwPidxJPE=
+ dependencies:
+ should-type "^1.3.0"
+ should-type-adaptors "^1.0.1"
+
+should-type-adaptors@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a"
+ integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==
+ dependencies:
+ should-type "^1.3.0"
+ should-util "^1.0.0"
+
+should-type@^1.3.0, should-type@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3"
+ integrity sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=
+
+should-util@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.1.tgz#fb0d71338f532a3a149213639e2d32cbea8bcb28"
+ integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==
+
+should@^13.2.1:
+ version "13.2.3"
+ resolved "https://registry.yarnpkg.com/should/-/should-13.2.3.tgz#96d8e5acf3e97b49d89b51feaa5ae8d07ef58f10"
+ integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==
+ dependencies:
+ should-equal "^2.0.0"
+ should-format "^3.0.3"
+ should-type "^1.4.0"
+ should-type-adaptors "^1.0.1"
+ should-util "^1.0.0"
+
+signal-exit@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
+ integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
+
+slugify@^1.3.4:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.4.0.tgz#c9557c653c54b0c7f7a8e786ef3431add676d2cb"
+ integrity sha512-FtLNsMGBSRB/0JOE2A0fxlqjI6fJsgHGS13iTuVT28kViI4JjUiNqp/vyis0ZXYcMnpR3fzGNkv+6vRlI2GwdQ==
+
+source-map@^0.7.3:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+ integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
+speccy@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/speccy/-/speccy-0.11.0.tgz#8edcb76d3ebc146ae39a44f5ed095bd326fb07ff"
+ integrity sha512-f9XXngfae43WR9uz8m3yk935nsJIJH1YaRNNjEYqF+uL3yNlabFgixPKncJKXT2LfiMhhszwVSgrDgUaUvGBVQ==
+ dependencies:
+ commander "^2.18.0"
+ ejs "^2.5.2"
+ express "^4.14.0"
+ json-schema-to-openapi-schema "^0.3.0"
+ nconf "^0.10.0"
+ nconf-yaml "^1.0.2"
+ node-fetch "^2.3.0"
+ node-readfiles "^0.2.0"
+ oas-linter "^3.0.0"
+ oas-resolver "^2.2.4"
+ oas-validator "^3.0.1"
+ redoc v2.0.0-rc.8-1
+ yaml "^1.5.0"
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
+"statuses@>= 1.5.0 < 2", statuses@~1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
-statuses@~1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
- integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==
+stickyfill@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/stickyfill/-/stickyfill-1.1.1.tgz#39413fee9d025c74a7e59ceecb23784cc0f17f02"
+ integrity sha1-OUE/7p0CXHSn5ZzuyyN4TMDxfwI=
+
+string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+string-width@^2.0.0, string-width@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+string-width@^4.1.0, string-width@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
+ integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.0"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
+ dependencies:
+ ansi-regex "^3.0.0"
+
+strip-ansi@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
+ integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+ dependencies:
+ ansi-regex "^5.0.0"
+
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+ integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
+
+supports-color@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
swagger-ui-dist@^3.20.1:
- version "3.20.1"
- resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.20.1.tgz#2e871faf29984bc5f253b8641ba38b244001cfa4"
- integrity sha512-iqFNNmJWH24leUj/ohS5iZTHLZSPZse8c9F+WSCMi6ZJcRBgYKcT413c8BR5BEdKvU1kkIwvYy7C8DOjTRq9hQ==
+ version "3.25.0"
+ resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.25.0.tgz#90279cdcc56e591fcfbe7b5240a9d653b989336d"
+ integrity sha512-vwvJPPbdooTvDwLGzjIXinOXizDJJ6U1hxnJL3y6U3aL1d2MSXDmKg2139XaLBhsVZdnQJV2bOkX4reB+RXamg==
-type-is@~1.6.16:
- version "1.6.16"
- resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
- integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==
+swagger2openapi@^5.2.3:
+ version "5.4.0"
+ resolved "https://registry.yarnpkg.com/swagger2openapi/-/swagger2openapi-5.4.0.tgz#1e1c8909f7966b1f455bf1b66490093ac1c0029c"
+ integrity sha512-f5QqfXawiVijhjMtYqWZ55ESHPZFqrPC8L9idhIiuSX8O2qsa1i4MVGtCM3TQF+Smzr/6WfT/7zBuzG3aTgPAA==
+ dependencies:
+ better-ajv-errors "^0.6.1"
+ call-me-maybe "^1.0.1"
+ node-fetch-h2 "^2.3.0"
+ node-readfiles "^0.2.0"
+ oas-kit-common "^1.0.7"
+ oas-resolver "^2.3.0"
+ oas-schema-walker "^1.1.3"
+ oas-validator "^3.4.0"
+ reftools "^1.1.0"
+ yaml "^1.8.3"
+ yargs "^12.0.5"
+
+tiny-emitter@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
+ integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
+
+toidentifier@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
+ integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
+
+tslib@^1.9.3:
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
+ integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
+
+type-is@~1.6.17, type-is@~1.6.18:
+ version "1.6.18"
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
dependencies:
media-typer "0.3.0"
- mime-types "~2.1.18"
+ mime-types "~2.1.24"
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
@@ -347,3 +1540,123 @@ vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
+
+which-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+ integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
+
+which@^1.2.9:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+ dependencies:
+ isexe "^2.0.0"
+
+window-size@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876"
+ integrity sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=
+
+wrap-ansi@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+
+wrap-ansi@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+y18n@^3.2.0:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+ integrity sha1-bRX7qITAhnnA136I53WegR4H+kE=
+
+"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
+ integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
+
+yaml@^1.5.0, yaml@^1.8.3:
+ version "1.8.3"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.8.3.tgz#2f420fca58b68ce3a332d0ca64be1d191dd3f87a"
+ integrity sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw==
+ dependencies:
+ "@babel/runtime" "^7.8.7"
+
+yargs-parser@^11.1.1:
+ version "11.1.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
+ integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+yargs-parser@^18.1.1:
+ version "18.1.2"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1"
+ integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+yargs@^12.0.5:
+ version "12.0.5"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
+ integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==
+ dependencies:
+ cliui "^4.0.0"
+ decamelize "^1.2.0"
+ find-up "^3.0.0"
+ get-caller-file "^1.0.1"
+ os-locale "^3.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1 || ^4.0.0"
+ yargs-parser "^11.1.1"
+
+yargs@^15.3.1:
+ version "15.3.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b"
+ integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==
+ dependencies:
+ cliui "^6.0.0"
+ decamelize "^1.2.0"
+ find-up "^4.1.0"
+ get-caller-file "^2.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^2.0.0"
+ set-blocking "^2.0.0"
+ string-width "^4.2.0"
+ which-module "^2.0.0"
+ y18n "^4.0.0"
+ yargs-parser "^18.1.1"
+
+yargs@^3.19.0:
+ version "3.32.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995"
+ integrity sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=
+ dependencies:
+ camelcase "^2.0.1"
+ cliui "^3.0.3"
+ decamelize "^1.1.1"
+ os-locale "^1.4.0"
+ string-width "^1.0.1"
+ window-size "^0.1.4"
+ y18n "^3.2.0"