feat(v3): WIP: Revise API specs for Core and Enterprise

- Adds basic support for core and enterprise in getswagger.sh
- Adds custom OpenAPI info for Core and Enterprise
- Validates as OpenAPI 3.0 (using Spectral)
    - operationId
    - tags
- Revises use of Legacy, v2
- TODO: need to check and validate in UI, adjust tags if nec.
jts/core-api-ref
Jason Stirnaman 2025-02-04 18:04:47 -06:00
parent 29fcede1e3
commit 40ce1d56e7
12 changed files with 1719 additions and 24 deletions

2
.gitignore vendored
View File

@ -8,7 +8,7 @@ node_modules
*.log
/resources
.hugo_build.lock
/content/influxdb/*/api/**/*.html
/content/influxdb*/*/api/**/*.html
/api-docs/redoc-static.html*
.vscode/*
.idea

View File

@ -62,7 +62,7 @@ function showHelp {
subcommand=$1
case "$subcommand" in
cloud-dedicated-v2|cloud-dedicated-management|cloud-serverless-v2|clustered-v2|cloud-v2|v2|v1-compat|all)
cloud-dedicated-v2|cloud-dedicated-management|cloud-serverless-v2|clustered-v2|cloud-v2|v2|v1-compat|core-v3|enterprise-v3|all)
product=$1
shift
@ -176,6 +176,17 @@ function updateCloudDedicatedV2 {
postProcess $outFile 'influxdb3/cloud-dedicated/.config.yml' v2@2
}
function updateCloudServerlessV2 {
outFile="influxdb3/cloud-serverless/v2/ref.yml"
if [[ -z "$baseUrl" ]];
then
echo "Using existing $outFile"
else
curl $UPDATE_OPTIONS ${baseUrl}/contracts/ref/cloud.yml -o $outFile
fi
postProcess $outFile 'influxdb3/cloud-serverless/.config.yml' v2@2
}
function updateClusteredV2 {
outFile="influxdb3/clustered/v2/ref.yml"
if [[ -z "$baseUrl" ]];
@ -187,15 +198,28 @@ function updateClusteredV2 {
postProcess $outFile 'influxdb3/clustered/.config.yml' v2@2
}
function updateCloudServerlessV2 {
outFile="influxdb3/cloud-serverless/v2/ref.yml"
function updateCoreV3 {
outFile="influxdb3/core/v3/ref.yml"
if [[ -z "$baseUrl" ]];
then
echo "Using existing $outFile"
else
curl $UPDATE_OPTIONS ${baseUrl}/contracts/ref/cloud.yml -o $outFile
local url="${baseUrl}/TO_BE_DECIDED"
curl $UPDATE_OPTIONS $url -o $outFile
fi
postProcess $outFile 'influxdb3/cloud-serverless/.config.yml' v2@2
postProcess $outFile 'influxdb3/core/.config.yml' v3@3
}
function updateEnterpriseV3 {
outFile="influxdb3/enterprise/v3/ref.yml"
if [[ -z "$baseUrl" ]];
then
echo "Using existing $outFile"
else
local url="${baseUrl}/TO_BE_DECIDED"
curl $UPDATE_OPTIONS $url -o $outFile
fi
postProcess $outFile 'influxdb3/enterprise/.config.yml' v3@3
}
function updateOSSV2 {
@ -220,7 +244,7 @@ function updateV1Compat {
postProcess $outFile 'influxdb/cloud/.config.yml' 'v1-compatibility'
outFile="influxdb/v2/v1-compatibility/swaggerV1Compat.yml"
cp cloud/v1-compatibility/swaggerV1Compat.yml $outFile
cp influxdb/cloud/v1-compatibility/swaggerV1Compat.yml $outFile
postProcess $outFile 'influxdb/v2/.config.yml' 'v1-compatibility'
outFile="influxdb3/cloud-dedicated/v1-compatibility/swaggerV1Compat.yml"
@ -257,6 +281,12 @@ then
elif [ "$product" = "clustered-v2" ];
then
updateClusteredV2
elif [ "$product" = "core-v3" ];
then
updateCoreV3
elif [ "$product" = "enterprise-v3" ];
then
updateEnterpriseV3
elif [ "$product" = "v2" ];
then
updateOSSV2
@ -270,9 +300,11 @@ then
updateCloudDedicatedManagement
updateCloudServerlessV2
updateClusteredV2
updateCoreV3
updateEnterpriseV3
updateOSSV2
updateV1Compat
else
echo "Provide a product argument: cloud-v2, cloud-serverless-v2, cloud-dedicated-v2, clustered-v2, v2, v1-compat, or all."
echo "Provide a product argument: cloud-v2, cloud-serverless-v2, cloud-dedicated-v2, cloud-dedicated-management, clustered-v2, core-v3, enterprise-v3, v2, v1-compat, or all."
showHelp
fi

View File

@ -0,0 +1,19 @@
title: InfluxDB 3 Core API Service
x-influxdata-short-title: InfluxDB 3 API
summary: The InfluxDB HTTP API for InfluxDB 3 Core provides a programmatic interface for writing data stored in an InfluxDB 3 Core database.
description: |
Write and query data, and perform administrative tasks, such as managing databases and processing engine plugins.
The InfluxDB HTTP API for InfluxDB 3 Core includes endpoints for compatibility with InfluxDB 2.x and InfluxDB 1.x APIs.
<!-- TODO: verify where to host the spec that users can download.
This documentation is generated from the
[InfluxDB OpenAPI specification](https://raw.githubusercontent.com/influxdata/openapi/master/contracts/ref/cloud.yml).
-->
license:
name: MIT
url: 'https://opensource.org/licenses/MIT'
contact:
name: InfluxData
url: https://www.influxdata.com
email: support@influxdata.com

View File

@ -0,0 +1,8 @@
- url: https://{baseurl}
description: InfluxDB 3 Core API URL
variables:
baseurl:
enum:
- 'localhost:8080'
default: 'localhost:8080'
description: InfluxDB 3 Core URL

View File

@ -0,0 +1,13 @@
- name: Using the InfluxDB HTTP API
tags:
- Quick start
- Authentication
- Headers
- Pagination
- Response codes
- System information endpoints
- name: All endpoints
tags:
- Ping
- Query
- Write

View File

@ -3,13 +3,57 @@ info:
title: InfluxDB 3 Core HTTP API
description: HTTP API service for managing, writing to, and querying from InfluxDB 3 Core.
version: 1.0.2
license:
name: MIT
url: 'https://opensource.org/licenses/MIT'
contact:
name: InfluxData
url: https://www.influxdata.com
email: support@influxdata.com
servers:
- url: http://localhost:8080
description: Local development server
tags:
- name: Legacy v1-compatible
description: Endpoints compatible with InfluxDB 1.x client libraries and third-party integrations.
- name: Legacy v2-compatible
description: Endpoints compatible with InfluxDB 2.x client libraries and third-party integrations.
- name: Write data
description: Endpoints for writing data to InfluxDB.
- name: Query data
description: Endpoints for querying data from InfluxDB.
- name: InfluxQL query
description: Endpoints for executing InfluxQL queries.
- name: SQL query
description: Endpoints for executing SQL queries.
- name: Server
description: Endpoints for checking the status and health of the service and retrieving service metrics.
- name: List
description: Endpoints for listing databases, tables, and other resources.
- name: Database
description: Endpoints for creating, deleting, and listing databases.
- name: Create
description: Endpoints for creating resources.
- name: Delete
description: Endpoints for deleting resources.
- name: Table
description: Endpoints for creating, deleting, and listing tables.
- name: Cache
description: Endpoints for creating and deleting caches.
- name: Processing engine
description: Endpoints for creating, deleting, and testing processing engine plugins and triggers.
paths:
/write:
post:
summary: Write Line Protocol (Legacy)
operationId: PostLegacyV1Write
summary: Write line protocol (v1-compatible)
description: >
Accepts line protocol data and writes it to the database.
Write options are provided via query parameters.
Writes line protocol to the specified database.
Use this endpoint to send data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) format to InfluxDB.
Use query parameters to specify options for writing data.
This endpoint is compatible with InfluxDB 1.x client libraries and Telegraf plugins.
parameters:
- name: db
in: query
@ -60,12 +104,20 @@ paths:
description: Request entity too large.
security:
- BearerAuth: []
tags:
- Legacy v1-compatible
- Write data
/api/v2/write:
post:
summary: Write Line Protocol (v2)
operationId: PostLegacyV2Write
summary: Write line protocol (v2-compatible)
description: >
Accepts line protocol data and writes it to the database.
Write options are provided via query parameters.
Writes line protocol to the specified database.
Use this endpoint to send data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) format to InfluxDB.
Use query parameters to specify options for writing data.
This endpoint is compatible with InfluxDB 2.x client libraries and Telegraf plugins.
parameters:
- name: db
in: query
@ -116,12 +168,18 @@ paths:
description: Request entity too large.
security:
- BearerAuth: []
tags:
- Legacy v2-compatible
- Write data
/api/v3/write_lp:
post:
summary: Write Line Protocol (v3)
operationId: PostWriteLPV3
summary: Write line protocol
description: >
Accepts line protocol data and writes it to the database.
Write options are provided via query parameters.
Writes line protocol to the specified database.
Use this endpoint to send data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) format to InfluxDB.
Use query parameters to specify options for writing data.
parameters:
- name: db
in: query
@ -174,9 +232,12 @@ paths:
description: Unprocessable entity.
security:
- BearerAuth: []
tags:
- Write data
/api/v3/query_sql:
get:
summary: Execute SQL Query
operationId: GetSQLQuery
summary: Execute SQL query
description: Executes an SQL query against the database.
parameters:
- name: db
@ -231,8 +292,11 @@ paths:
description: Unprocessable entity.
security:
- BearerAuth: []
tags:
- Query data
post:
summary: Execute SQL Query
operationId: PostSQLQuery
summary: Execute SQL query
description: Executes an SQL query against the database.
parameters:
- $ref: '#/components/parameters/ContentType'
@ -272,9 +336,12 @@ paths:
description: Unprocessable entity.
security:
- BearerAuth: []
tags:
- Query data
/api/v3/query_influxql:
get:
summary: Execute InfluxQL Query (v3)
operationId: GetInfluxQLQueryV3
summary: Execute InfluxQL query
description: Executes an InfluxQL query against the database.
parameters:
- name: db
@ -323,8 +390,11 @@ paths:
description: Unprocessable entity.
security:
- BearerAuth: []
tags:
- InfluxQL query
post:
summary: Execute InfluxQL Query (v3)
operationId: PostInfluxQLQueryV3
summary: Execute InfluxQL query
description: Executes an InfluxQL query against the database.
parameters:
- $ref: '#/components/parameters/ContentType'
@ -364,10 +434,18 @@ paths:
description: Unprocessable entity.
security:
- BearerAuth: []
tags:
- InfluxQL query
/query:
get:
summary: Execute InfluxQL Query
description: Executes an InfluxQL query against the database.
operationId: GetQueryV1
summary: Execute InfluxQL query (v1-compatible)
description: |
Executes an InfluxQL query against the specified database.
Use query parameters to specify the database and the InfluxQL query.
This endpoint is compatible with InfluxDB 1.x client libraries and third-party integrations such as Grafana.
parameters:
- name: db
in: query
@ -415,8 +493,12 @@ paths:
description: Unprocessable entity.
security:
- BearerAuth: []
tags:
- Query data
- Legacy v1-compatible
post:
summary: Execute InfluxQL Query
operationId: PostQueryV1
summary: Execute InfluxQL query (v1-compatible)
description: Executes an InfluxQL query against the database.
parameters:
- $ref: '#/components/parameters/ContentType'
@ -456,8 +538,12 @@ paths:
description: Unprocessable entity.
security:
- BearerAuth: []
tags:
- Query data
- Legacy v1-compatible
/health:
get:
operationId: GetHealth
summary: Health Check
description: Returns the status of the service.
responses:
@ -465,8 +551,11 @@ paths:
description: Service is running.
"500":
description: Service is unavailable.
tags:
- Server
/api/v1/health:
get:
operationId: GetHealthV1
summary: Health Check (v1)
description: Returns the status of the service.
responses:
@ -474,8 +563,14 @@ paths:
description: Service is running.
"500":
description: Service is unavailable.
tags:
- Server
- Legacy v1-compatible
/ping:
get:
operationId: GetPing
tags:
- Server
summary: Ping the Server
description: Returns basic server information.
responses:
@ -483,13 +578,17 @@ paths:
description: Server is reachable.
/metrics:
get:
operationId: GetMetrics
summary: Metrics
description: Retrieves Prometheus-compatible metrics.
responses:
"200":
description: Metrics returned.
tags:
- Server
/api/v3/configure/database:
get:
operationId: GetConfigureDatabase
summary: List Databases
description: Retrieves a list of databases.
responses:
@ -507,7 +606,11 @@ paths:
description: Database not found.
security:
- BearerAuth: []
tags:
- List
- Database
post:
operationId: PostConfigureDatabase
summary: Create a Database
description: Creates a new database in the system.
requestBody:
@ -527,7 +630,11 @@ paths:
description: Database already exists.
security:
- BearerAuth: []
tags:
- Create
- Database
delete:
operationId: DeleteConfigureDatabase
summary: Delete a Database
description: Soft deletes a database.
parameters:
@ -545,8 +652,12 @@ paths:
description: Database not found.
security:
- BearerAuth: []
tags:
- Delete
- Database
/api/v3/configure/table:
post:
operationId: PostConfigureTable
summary: Create a Table
description: Creates a new table within a database.
requestBody:
@ -566,7 +677,11 @@ paths:
description: Database not found.
security:
- BearerAuth: []
tags:
- Create
- Table
delete:
operationId: DeleteConfigureTable
summary: Delete a Table
description: Soft deletes a table.
parameters:
@ -589,8 +704,12 @@ paths:
description: Table not found.
security:
- BearerAuth: []
tags:
- Delete
- Table
/api/v3/configure/distinct_cache:
post:
operationId: PostConfigureDistinctCache
summary: Create Distinct Cache
description: Creates a distinct cache for a table.
requestBody:
@ -612,7 +731,11 @@ paths:
description: Cache already exists.
security:
- BearerAuth: []
tags:
- Create
- Cache
delete:
operationId: DeleteConfigureDistinctCache
summary: Delete Distinct Cache
description: Deletes a distinct cache.
parameters:
@ -642,8 +765,12 @@ paths:
description: Cache not found.
security:
- BearerAuth: []
tags:
- Delete
- Cache
/api/v3/configure/last_cache:
post:
operationId: PostConfigureLastCache
summary: Create Last Cache
description: Creates a last cache for a table.
requestBody:
@ -665,7 +792,11 @@ paths:
description: Cache already exists.
security:
- BearerAuth: []
tags:
- Create
- Cache
delete:
operationId: DeleteConfigureLastCache
summary: Delete Last Cache
description: Deletes a last cache.
parameters:
@ -695,8 +826,12 @@ paths:
description: Cache not found.
security:
- BearerAuth: []
tags:
- Delete
- Cache
/api/v3/configure/processing_engine_trigger:
post:
operationId: PostConfigureProcessingEngineTrigger
summary: Create Processing Engine Trigger
description: Creates a new processing engine trigger.
requestBody:
@ -716,7 +851,11 @@ paths:
description: Trigger not found.
security:
- BearerAuth: []
tags:
- Create
- Processing engine
delete:
operationId: DeleteConfigureProcessingEngineTrigger
summary: Delete Processing Engine Trigger
description: Deletes a processing engine trigger.
parameters:
@ -747,8 +886,12 @@ paths:
description: Trigger not found.
security:
- BearerAuth: []
tags:
- Delete
- Processing engine
/api/v3/configure/processing_engine_trigger/disable:
post:
operationId: PostDisableProcessingEngineTrigger
summary: Disable Processing Engine Trigger
description: Disables a processing engine trigger.
parameters:
@ -770,8 +913,11 @@ paths:
description: Trigger not found.
security:
- BearerAuth: []
tags:
- Processing engine
/api/v3/configure/processing_engine_trigger/enable:
post:
operationId: PostEnableProcessingEngineTrigger
summary: Enable Processing Engine Trigger
description: Enables a processing engine trigger.
parameters:
@ -793,8 +939,11 @@ paths:
description: Trigger not found.
security:
- BearerAuth: []
tags:
- Processing engine
/api/v3/configure/plugin_environment/install_packages:
post:
operationId: PostInstallPluginPackages
summary: Install Plugin Packages
description: Installs packages for the plugin environment.
parameters:
@ -815,8 +964,11 @@ paths:
$ref: '#/components/responses/Unauthorized'
security:
- BearerAuth: []
tags:
- Processing engine
/api/v3/configure/plugin_environment/install_requirements:
post:
operationId: PostInstallPluginRequirements
summary: Install Plugin Requirements
description: Installs requirements for the plugin environment.
parameters:
@ -837,8 +989,11 @@ paths:
$ref: '#/components/responses/Unauthorized'
security:
- BearerAuth: []
tags:
- Processing engine
/api/v3/plugin_test/wal:
post:
operationId: PostTestWALPlugin
summary: Test WAL Plugin
description: Executes a plugin test for write-ahead logging.
responses:
@ -852,8 +1007,11 @@ paths:
description: Plugin not enabled.
security:
- BearerAuth: []
tags:
- Processing engine
/api/v3/plugin_test/schedule:
post:
operationId: PostTestSchedulingPlugin
summary: Test Scheduling Plugin
description: Executes a plugin test for scheduling.
responses:
@ -867,6 +1025,8 @@ paths:
description: Plugin not enabled.
security:
- BearerAuth: []
tags:
- Processing engine
/api/v3/engine/{plugin_path}:
parameters:
- name: plugin_path
@ -875,6 +1035,7 @@ paths:
schema:
type: string
get:
operationId: GetProcessingEnginePluginRequest
summary: Custom Processing Engine Request (GET)
description: Sends a custom request to a processing engine plugin.
parameters:
@ -892,7 +1053,10 @@ paths:
description: Processing failure.
security:
- BearerAuth: []
tags:
- Processing engine
post:
operationId: PostProcessingEnginePluginRequest
summary: Custom Processing Engine Request (POST)
description: Sends a custom request to a processing engine plugin.
parameters:
@ -917,6 +1081,8 @@ paths:
description: Processing failure.
security:
- BearerAuth: []
tags:
- Processing engine
components:
parameters:
ContentEncoding:
@ -1166,3 +1332,5 @@ components:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: Bearer token for authentication. The API token must be provided in the Authorization header.

View File

@ -0,0 +1,19 @@
title: InfluxDB 3 Enterprise API Service
x-influxdata-short-title: InfluxDB 3 API
summary: The InfluxDB HTTP API for InfluxDB 3 Enterprise provides a programmatic interface for writing data stored in an InfluxDB 3 Enterprise database.
description: |
Write and query data, and perform administrative tasks, such as managing databases and processing engine plugins.
The InfluxDB HTTP API for InfluxDB 3 Enterprise includes endpoints for compatibility with InfluxDB 2.x and InfluxDB 1.x APIs.
<!-- TODO: verify where to host the spec that users can download.
This documentation is generated from the
[InfluxDB OpenAPI specification](https://raw.githubusercontent.com/influxdata/openapi/master/contracts/ref/cloud.yml).
-->
license:
name: MIT
url: 'https://opensource.org/licenses/MIT'
contact:
name: InfluxData
url: https://www.influxdata.com
email: support@influxdata.com

View File

@ -0,0 +1,8 @@
- url: https://{baseurl}
description: InfluxDB 3 Core API URL
variables:
baseurl:
enum:
- 'localhost:8080'
default: 'localhost:8080'
description: InfluxDB 3 Core URL

View File

@ -0,0 +1,13 @@
- name: Using the InfluxDB HTTP API
tags:
- Quick start
- Authentication
- Headers
- Pagination
- Response codes
- System information endpoints
- name: All endpoints
tags:
- Ping
- Query
- Write

File diff suppressed because it is too large Load Diff

View File

@ -6,5 +6,8 @@
"license": "MIT",
"dependencies": {
"js-yaml": "^4.1.0"
},
"devDependencies": {
"spectral": "^0.0.0"
}
}

View File

@ -2,14 +2,90 @@
# yarn lockfile v1
ansi-regex@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==
argparse@^2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
chalk@^1.0.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
dependencies:
ansi-styles "^2.2.1"
escape-string-regexp "^1.0.2"
has-ansi "^2.0.0"
strip-ansi "^3.0.0"
supports-color "^2.0.0"
commander@^2.8.1:
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==
escape-string-regexp@^1.0.2:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
extend@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-2.0.2.tgz#1b74985400171b85554894459c978de6ef453ab7"
integrity sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ==
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==
dependencies:
ansi-regex "^2.0.0"
js-yaml@^4.1.0:
version "4.1.0"
resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
dependencies:
argparse "^2.0.1"
moment@^2.10.3:
version "2.30.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
spectral@^0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/spectral/-/spectral-0.0.0.tgz#a244b28c0726a7907374ad39c58024f934b9e8a1"
integrity sha512-tJamrVCLdpHt3geQn9ypWLlcS7K02+TZV5hj1bnPjGcjQs5N0dtxzJVitcmHbR9tZQgjwj2hAO1f8v1fzzwF1Q==
dependencies:
chalk "^1.0.0"
commander "^2.8.1"
extend "^2.0.1"
moment "^2.10.3"
string-etc "^0.2.0"
string-etc@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/string-etc/-/string-etc-0.2.0.tgz#a0f84a2d8816082266384a3c7229acbb8064eda5"
integrity sha512-J9RfI2DvBDlnISBhfOBOAXPFxE4cpEgNC6zJTjULmagQaMuu2sYrE44H8h5Paxf3Bm9Wcer92DJv9n77OAHIRg==
strip-ansi@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==
dependencies:
ansi-regex "^2.0.0"
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==