From 5dc465f3a74d2f600e2d997bf26aa8cb567df7d3 Mon Sep 17 00:00:00 2001 From: garyluu Date: Tue, 14 Nov 2017 16:35:16 -0500 Subject: [PATCH 001/102] Add x-example to all parameters --- .../resources/swagger/ga4gh-tool-discovery.yaml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 503d7acb..0bcfc79f 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -23,6 +23,7 @@ paths: required: true type: string description: A unique identifier of the tool, scoped to this registry, for example `123456` + x-example: 'registry.hub.docker.com/sequenza/sequenza' responses: '200': description: A tool. @@ -41,6 +42,7 @@ paths: required: true type: string description: A unique identifier of the tool, scoped to this registry, for example `123456` + x-example: 'registry.hub.docker.com/sequenza/sequenza' responses: '200': description: An array of tool versions @@ -61,11 +63,13 @@ paths: required: true type: string description: A unique identifier of the tool, scoped to this registry, for example `123456` + x-example: 'registry.hub.docker.com/sequenza/sequenza' - name: version-id in: path required: true type: string description: An identifier of the tool version, scoped to this registry, for example `v1` + x-example: 'latest' responses: '200': description: A tool version. @@ -152,16 +156,19 @@ paths: - WDL - plain-CWL - plain-WDL + x-example: 'CWL' - name: id in: path description: A unique identifier of the tool, scoped to this registry, for example `123456` required: true type: string + x-example: 'registry.hub.docker.com/sequenza/sequenza' - name: version-id in: path required: true type: string description: An identifier of the tool version for this particular tool registry, for example `v1` + x-example: 'latest' responses: '200': description: The tool descriptor. @@ -190,21 +197,25 @@ paths: - WDL - plain-CWL - plain-WDL + x-example: 'CWL' - name: id in: path description: A unique identifier of the tool, scoped to this registry, for example `123456` required: true type: string + x-example: 'registry.hub.docker.com/sequenza/sequenza' - name: version-id in: path required: true type: string description: An identifier of the tool version for this particular tool registry, for example `v1` + x-example: 'latest' - name: relative-path in: path required: true type: string description: A relative path to the additional file (same directory or subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from the same directory as the main descriptor + x-example: '/sequenza.cwl' responses: '200': description: The tool descriptor. @@ -232,16 +243,19 @@ paths: - WDL - plain-CWL - plain-WDL + x-example: 'CWL' - name: id in: path description: A unique identifier of the tool, scoped to this registry, for example `123456` required: true type: string + x-example: 'registry.hub.docker.com/sequenza/sequenza' - name: version-id in: path required: true type: string description: An identifier of the tool version for this particular tool registry, for example `v1` + x-example: 'latest' responses: '200': description: The tool test JSON response. @@ -266,11 +280,13 @@ paths: description: A unique identifier of the tool, scoped to this registry, for example `123456` required: true type: string + x-example: 'registry.hub.docker.com/sequenza/sequenza' - name: version-id in: path required: true type: string description: An identifier of the tool version for this particular tool registry, for example `v1` + x-example: 'latest' responses: '200': description: The tool payload. @@ -500,4 +516,3 @@ parameters: externalDocs: description: Description of GA4GH Tool Registry (Exchange) Schema url: 'https://github.com/ga4gh/tool-registry-schemas' - From f1de12207f2bc98fbfef0610a0791e6df492ddae Mon Sep 17 00:00:00 2001 From: garyluu Date: Tue, 14 Nov 2017 17:29:54 -0500 Subject: [PATCH 002/102] Convert to snake case --- .../swagger/ga4gh-tool-discovery.yaml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 0bcfc79f..62575d8a 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -51,7 +51,7 @@ paths: items: $ref: '#/definitions/ToolVersion' - /tools/{id}/versions/{version-id}: + /tools/{id}/versions/{version_id}: get: summary: List one specific tool version, acts as an anchor for self references description: This endpoint returns one specific tool version @@ -64,7 +64,7 @@ paths: type: string description: A unique identifier of the tool, scoped to this registry, for example `123456` x-example: 'registry.hub.docker.com/sequenza/sequenza' - - name: version-id + - name: version_id in: path required: true type: string @@ -138,7 +138,7 @@ paths: - /tools/{id}/versions/{version-id}/{type}/descriptor: + /tools/{id}/versions/{version_id}/{type}/descriptor: get: summary: Get the tool descriptor (CWL/WDL) for the specified tool. description: Returns the CWL or WDL descriptor for the specified tool. @@ -163,7 +163,7 @@ paths: required: true type: string x-example: 'registry.hub.docker.com/sequenza/sequenza' - - name: version-id + - name: version_id in: path required: true type: string @@ -179,7 +179,7 @@ paths: schema: $ref: '#/definitions/Error' - /tools/{id}/versions/{version-id}/{type}/descriptor/{relative-path}: + /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}: get: summary: Get additional tool descriptor files (CWL/WDL) relative to the main file description: Returns additional CWL or WDL descriptors for the specified tool in the same or subdirectories @@ -204,13 +204,13 @@ paths: required: true type: string x-example: 'registry.hub.docker.com/sequenza/sequenza' - - name: version-id + - name: version_id in: path required: true type: string description: An identifier of the tool version for this particular tool registry, for example `v1` x-example: 'latest' - - name: relative-path + - name: relative_path in: path required: true type: string @@ -226,7 +226,7 @@ paths: schema: $ref: '#/definitions/Error' - /tools/{id}/versions/{version-id}/{type}/tests: + /tools/{id}/versions/{version_id}/{type}/tests: get: summary: Get an array of test JSONs suitable for use with this descriptor type. tags: @@ -250,7 +250,7 @@ paths: required: true type: string x-example: 'registry.hub.docker.com/sequenza/sequenza' - - name: version-id + - name: version_id in: path required: true type: string @@ -268,7 +268,7 @@ paths: schema: $ref: '#/definitions/Error' - /tools/{id}/versions/{version-id}/dockerfile: + /tools/{id}/versions/{version_id}/dockerfile: get: summary: Get the dockerfile for the specified image. description: Returns the dockerfile for the specified image. @@ -281,7 +281,7 @@ paths: required: true type: string x-example: 'registry.hub.docker.com/sequenza/sequenza' - - name: version-id + - name: version_id in: path required: true type: string From 601850670afae0bfec049c58e5bf1e3d8f6933a1 Mon Sep 17 00:00:00 2001 From: garyluu Date: Wed, 15 Nov 2017 09:30:47 -0500 Subject: [PATCH 003/102] Explicitly define type in definitions --- src/main/resources/swagger/ga4gh-tool-discovery.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 62575d8a..d10e5fd3 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -326,6 +326,7 @@ paths: definitions: ToolClass: + type: object # thought. it would be nicer if ToolClasses are consistent across registries. How would we accomplish this? Operate a MIME-type like list? description: Describes a class (type) of tool allowing us to categorize workflows, tools, and maybe even other entities (such as services) separately properties: @@ -339,6 +340,7 @@ definitions: type: string description: A longer explanation of what this class is and what it can accomplish Tool: + type: object description: A tool (or described tool) describes one pairing of a tool as described in a descriptor file (which potentially describes multiple tools) and a Docker image. required: - url @@ -392,6 +394,7 @@ definitions: items: $ref: '#/definitions/ToolVersion' ToolVersion: + type: object description: A tool version describes a particular iteration of a tool as described by a reference to a specific image and dockerfile. required: - url @@ -431,6 +434,7 @@ definitions: type: string description: Source of metadata that can support a verified tool, such as an email or URL ToolDescriptor: + type: object description: A tool descriptor is a metadata document that describes one or more tools. required: - type @@ -448,6 +452,7 @@ definitions: type: string description: 'Optional url to the tool descriptor used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl )' ToolTests: + type: object description: A tool document that describes how to test with one or more sample test JSON. required: - test @@ -459,6 +464,7 @@ definitions: type: string description: 'Optional url to the test JSON used to test this tool' ToolDockerfile: + type: object description: A tool dockerfile is a document that describes how to build a particular Docker image. required: - dockerfile @@ -470,6 +476,7 @@ definitions: type: string description: 'Optional url to the dockerfile used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile )' Metadata: + type: object description: Describes this registry to better allow for mirroring and indexing. required: - version @@ -489,6 +496,7 @@ definitions: description: A friendly name that can be used in addition to the hostname to describe a registry Error: + type: object required: - code properties: From c4c6f6d0801de5be9b04a3de63246d774fd3ee6e Mon Sep 17 00:00:00 2001 From: garyluu Date: Wed, 15 Nov 2017 17:05:24 -0500 Subject: [PATCH 004/102] Change properties to snakes case and endpoints to camelcase --- .../swagger/ga4gh-tool-discovery.yaml | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index d10e5fd3..bf23f285 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -123,16 +123,16 @@ paths: items: $ref: '#/definitions/Tool' headers: - next-page: + next_page: description: A URL that can be used to reach the next page based on the current offset and page record limit type: string - last-page: + last_page: description: A URL that can be used to reach the last page based on the current page record limit type: string - current-offset: + current_offset: description: The current start index of the paging used for this result type: string - current-limit: + current_limit: description: The current page record limit used for this result type: integer @@ -309,7 +309,7 @@ paths: schema: $ref: '#/definitions/Metadata' - /tool-classes: + /toolClasses: get: summary: List all tool types description: > @@ -347,7 +347,7 @@ definitions: - id - organization - author - - meta-version + - meta_version - toolclass - versions properties: @@ -371,7 +371,7 @@ definitions: author: type: string description: Contact information for the author of this tool entry in the registry. (More complex authorship information is handled by the descriptor) - meta-version: + meta_version: type: string description: 'The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated.' contains: @@ -399,7 +399,7 @@ definitions: required: - url - id - - meta-version + - meta_version properties: name: type: string @@ -413,7 +413,7 @@ definitions: image: type: string description: The docker path to the image (and version) for this tool. (e.g. quay.io/seqware/seqware_full/1.1) - descriptor-type: + descriptor_type: type: array description: The type (or types) of descriptors available. items: @@ -424,13 +424,13 @@ definitions: dockerfile: type: boolean description: Reports if this tool has a dockerfile available. - meta-version: + meta_version: type: string description: 'The version of this tool version in the registry. Iterates when fields like the description, author, etc. are updated.' verified: type: boolean description: Reports whether this tool has been verified by a specific organization or individual - verified-source: + verified_source: type: string description: Source of metadata that can support a verified tool, such as an email or URL ToolDescriptor: @@ -480,18 +480,18 @@ definitions: description: Describes this registry to better allow for mirroring and indexing. required: - version - - api-version + - api_version properties: version: type: string description: The version of this registry - api-version: + api_version: type: string description: The version of the GA4GH tool-registry API supported by this registry country: type: string description: A country code for the registry (ISO 3166-1 alpha-3) - friendly-name: + friendly_name: type: string description: A friendly name that can be used in addition to the hostname to describe a registry From d0a2be5e714e2ba49c8602d87020ca3575307c6d Mon Sep 17 00:00:00 2001 From: garyluu Date: Fri, 17 Nov 2017 16:21:40 -0500 Subject: [PATCH 005/102] Change enum path param to query param due to protobuf limitations --- .../resources/swagger/ga4gh-tool-discovery.yaml | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index bf23f285..5750d3e8 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -138,7 +138,7 @@ paths: - /tools/{id}/versions/{version_id}/{type}/descriptor: + /tools/{id}/versions/{version_id}/descriptor: get: summary: Get the tool descriptor (CWL/WDL) for the specified tool. description: Returns the CWL or WDL descriptor for the specified tool. @@ -147,7 +147,7 @@ paths: parameters: - name: type required: true - in: path + in: query description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata type: string @@ -156,7 +156,6 @@ paths: - WDL - plain-CWL - plain-WDL - x-example: 'CWL' - name: id in: path description: A unique identifier of the tool, scoped to this registry, for example `123456` @@ -179,7 +178,7 @@ paths: schema: $ref: '#/definitions/Error' - /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}: + /tools/{id}/versions/{version_id}/descriptor/{relative_path}: get: summary: Get additional tool descriptor files (CWL/WDL) relative to the main file description: Returns additional CWL or WDL descriptors for the specified tool in the same or subdirectories @@ -187,7 +186,7 @@ paths: - GA4GH parameters: - name: type - in: path + in: query required: true description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata @@ -197,7 +196,6 @@ paths: - WDL - plain-CWL - plain-WDL - x-example: 'CWL' - name: id in: path description: A unique identifier of the tool, scoped to this registry, for example `123456` @@ -226,7 +224,7 @@ paths: schema: $ref: '#/definitions/Error' - /tools/{id}/versions/{version_id}/{type}/tests: + /tools/{id}/versions/{version_id}/tests: get: summary: Get an array of test JSONs suitable for use with this descriptor type. tags: @@ -234,7 +232,7 @@ paths: parameters: - name: type required: true - in: path + in: query description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata type: string @@ -243,7 +241,6 @@ paths: - WDL - plain-CWL - plain-WDL - x-example: 'CWL' - name: id in: path description: A unique identifier of the tool, scoped to this registry, for example `123456` From c606590546e0a4c7d57f918a8a780cd1ff8e3656 Mon Sep 17 00:00:00 2001 From: garyluu Date: Fri, 17 Nov 2017 16:22:40 -0500 Subject: [PATCH 006/102] Style according to protobuf --- .../resources/swagger/ga4gh-tool-discovery.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 5750d3e8..c25916ba 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -154,8 +154,8 @@ paths: enum: - CWL - WDL - - plain-CWL - - plain-WDL + - PLAIN_CWL + - PLAIN_WDL - name: id in: path description: A unique identifier of the tool, scoped to this registry, for example `123456` @@ -194,8 +194,8 @@ paths: enum: - CWL - WDL - - plain-CWL - - plain-WDL + - PLAIN_CWL + - PLAIN_WDL - name: id in: path description: A unique identifier of the tool, scoped to this registry, for example `123456` @@ -239,8 +239,8 @@ paths: enum: - CWL - WDL - - plain-CWL - - plain-WDL + - PLAIN_CWL + - PLAIN_WDL - name: id in: path description: A unique identifier of the tool, scoped to this registry, for example `123456` @@ -379,7 +379,7 @@ definitions: verified: type: boolean description: Reports whether this tool has been verified by a specific organization or individual - verified-source: + verified_source: type: string description: Source of metadata that can support a verified tool, such as an email or URL signed: From 7b7b866b937ba374fb2d586bc0860277fcf24bdd Mon Sep 17 00:00:00 2001 From: garyluu Date: Wed, 22 Nov 2017 13:46:19 -0500 Subject: [PATCH 007/102] Revert "Add x-example to all parameters" This reverts commit 5dc465f3a74d2f600e2d997bf26aa8cb567df7d3. --- .../resources/swagger/ga4gh-tool-discovery.yaml | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index c25916ba..daaf950f 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -23,7 +23,6 @@ paths: required: true type: string description: A unique identifier of the tool, scoped to this registry, for example `123456` - x-example: 'registry.hub.docker.com/sequenza/sequenza' responses: '200': description: A tool. @@ -42,7 +41,6 @@ paths: required: true type: string description: A unique identifier of the tool, scoped to this registry, for example `123456` - x-example: 'registry.hub.docker.com/sequenza/sequenza' responses: '200': description: An array of tool versions @@ -63,13 +61,11 @@ paths: required: true type: string description: A unique identifier of the tool, scoped to this registry, for example `123456` - x-example: 'registry.hub.docker.com/sequenza/sequenza' - name: version_id in: path required: true type: string description: An identifier of the tool version, scoped to this registry, for example `v1` - x-example: 'latest' responses: '200': description: A tool version. @@ -161,13 +157,11 @@ paths: description: A unique identifier of the tool, scoped to this registry, for example `123456` required: true type: string - x-example: 'registry.hub.docker.com/sequenza/sequenza' - name: version_id in: path required: true type: string description: An identifier of the tool version for this particular tool registry, for example `v1` - x-example: 'latest' responses: '200': description: The tool descriptor. @@ -201,19 +195,16 @@ paths: description: A unique identifier of the tool, scoped to this registry, for example `123456` required: true type: string - x-example: 'registry.hub.docker.com/sequenza/sequenza' - name: version_id in: path required: true type: string description: An identifier of the tool version for this particular tool registry, for example `v1` - x-example: 'latest' - name: relative_path in: path required: true type: string description: A relative path to the additional file (same directory or subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from the same directory as the main descriptor - x-example: '/sequenza.cwl' responses: '200': description: The tool descriptor. @@ -246,13 +237,11 @@ paths: description: A unique identifier of the tool, scoped to this registry, for example `123456` required: true type: string - x-example: 'registry.hub.docker.com/sequenza/sequenza' - name: version_id in: path required: true type: string description: An identifier of the tool version for this particular tool registry, for example `v1` - x-example: 'latest' responses: '200': description: The tool test JSON response. @@ -277,13 +266,11 @@ paths: description: A unique identifier of the tool, scoped to this registry, for example `123456` required: true type: string - x-example: 'registry.hub.docker.com/sequenza/sequenza' - name: version_id in: path required: true type: string description: An identifier of the tool version for this particular tool registry, for example `v1` - x-example: 'latest' responses: '200': description: The tool payload. @@ -521,3 +508,4 @@ parameters: externalDocs: description: Description of GA4GH Tool Registry (Exchange) Schema url: 'https://github.com/ga4gh/tool-registry-schemas' + From a069ec2608c2e59ebce79c1576bbbc75413e8cc7 Mon Sep 17 00:00:00 2001 From: garyluu Date: Fri, 1 Dec 2017 11:39:34 -0500 Subject: [PATCH 008/102] Move enum to its own definition --- .../resources/swagger/ga4gh-tool-discovery.yaml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index daaf950f..551fcbe8 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -401,10 +401,7 @@ definitions: type: array description: The type (or types) of descriptors available. items: - type: string - enum: - - CWL - - WDL + $ref: '#/definitions/DescriptorType' dockerfile: type: boolean description: Reports if this tool has a dockerfile available. @@ -417,6 +414,11 @@ definitions: verified_source: type: string description: Source of metadata that can support a verified tool, such as an email or URL + DescriptorType: + type: string + enum: + - CWL + - WDL ToolDescriptor: type: object description: A tool descriptor is a metadata document that describes one or more tools. @@ -425,10 +427,7 @@ definitions: - descriptor properties: type: - type: string - enum: - - CWL - - WDL + $ref: '#/definitions/DescriptorType' descriptor: type: string description: The descriptor that represents this version of the tool. (CWL or WDL) From 1aa9006070450c6a493a400ed078bd6bc2b6a5c1 Mon Sep 17 00:00:00 2001 From: garyluu Date: Fri, 1 Dec 2017 13:43:53 -0500 Subject: [PATCH 009/102] Sample GA4GH.proto generated from openapi2proto and then manually modified enums --- src/main/resources/swagger/GA4GH.proto | 294 +++++++++++++++++++++++++ 1 file changed, 294 insertions(+) create mode 100644 src/main/resources/swagger/GA4GH.proto diff --git a/src/main/resources/swagger/GA4GH.proto b/src/main/resources/swagger/GA4GH.proto new file mode 100644 index 00000000..f16ff1f8 --- /dev/null +++ b/src/main/resources/swagger/GA4GH.proto @@ -0,0 +1,294 @@ +syntax = "proto3"; + +import "google/protobuf/empty.proto"; + +import "google/api/annotations.proto"; + + +message GetToolClassesResponse { + repeated ToolClass items = 1; +} + +message GetToolsRequest { + // The author of the tool (TODO a thought occurs, are we assuming that the author of the CWL and the image are the same?). + string author = 1; + // The description of the tool. + string description = 2; + // A unique identifier of the tool, scoped to this registry, for example `123456` + string id = 3; + int32 limit = 4; + // The name of the image. + string name = 5; + string offset = 6; + // The organization in the registry that published the image. + string organization = 7; + // The image registry that contains the image. + string registry = 8; + // The name of the tool. + string toolname = 9; +} + +message GetToolsResponse { + repeated Tool items = 1; +} + +message GetToolsIdRequest { + // A unique identifier of the tool, scoped to this registry, for example `123456` + string id = 1; +} + +message GetToolsIdVersionsRequest { + // A unique identifier of the tool, scoped to this registry, for example `123456` + string id = 1; +} + +message GetToolsIdVersionsResponse { + repeated ToolVersion items = 1; +} + +message GetToolsIdVersionsVersion_idRequest { + // A unique identifier of the tool, scoped to this registry, for example `123456` + string id = 1; + // An identifier of the tool version, scoped to this registry, for example `v1` + string version_id = 2; +} + +message GetToolsIdVersionsVersion_idDescriptorRequest { + // A unique identifier of the tool, scoped to this registry, for example `123456` + string id = 1; + // The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata + enum GetToolsIdVersionsVersion_idDescriptorRequest_Type { + CWL = 0; + WDL = 1; + PLAIN_CWL = 2; + PLAIN_WDL = 3; + } + GetToolsIdVersionsVersion_idDescriptorRequest_Type type = 2; + // An identifier of the tool version for this particular tool registry, for example `v1` + string version_id = 3; +} + +message GetToolsIdVersionsVersion_idDescriptorRelative_pathRequest { + // A unique identifier of the tool, scoped to this registry, for example `123456` + string id = 1; + // A relative path to the additional file (same directory or subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from the same directory as the main descriptor + string relative_path = 2; + // The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata + enum GetToolsIdVersionsVersion_idDescriptorRelative_pathRequest_Type { + CWL = 0; + WDL = 1; + PLAIN_CWL = 2; + PLAIN_WDL = 3; + } + GetToolsIdVersionsVersion_idDescriptorRelative_pathRequest_Type type = 3; + // An identifier of the tool version for this particular tool registry, for example `v1` + string version_id = 4; +} + +message GetToolsIdVersionsVersion_idDockerfileRequest { + // A unique identifier of the tool, scoped to this registry, for example `123456` + string id = 1; + // An identifier of the tool version for this particular tool registry, for example `v1` + string version_id = 2; +} + +message GetToolsIdVersionsVersion_idTestsRequest { + // A unique identifier of the tool, scoped to this registry, for example `123456` + string id = 1; + // The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata + enum GetToolsIdVersionsVersion_idTestsRequest_Type { + CWL = 0; + WDL = 1; + PLAIN_CWL = 2; + PLAIN_WDL = 3; + } + GetToolsIdVersionsVersion_idTestsRequest_Type type = 2; + // An identifier of the tool version for this particular tool registry, for example `v1` + string version_id = 3; +} + +message GetToolsIdVersionsVersion_idTestsResponse { + repeated ToolTests items = 1; +} + +enum DescriptorType { + CWL = 0; + WDL = 1; +} + +message Error { + int32 code = 1; + string message = 2; +} + +message Metadata { + // The version of the GA4GH tool-registry API supported by this registry + string api_version = 1; + // A country code for the registry (ISO 3166-1 alpha-3) + string country = 2; + // A friendly name that can be used in addition to the hostname to describe a registry + string friendly_name = 3; + // The version of this registry + string version = 4; +} + +message Tool { + // Contact information for the author of this tool entry in the registry. (More complex authorship information is handled by the descriptor) + string author = 1; + // An array of IDs for the applications that are stored inside this tool (for example `https://bio.tools/tool/mytum.de/SNAP2/1`) + repeated string contains = 2; + // The description of the tool. + string description = 3; + // A unique identifier of the tool, scoped to this registry, for example `123456` or `123456_v1` + string id = 4; + // The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated. + string meta_version = 5; + // The organization that published the image. + string organization = 6; + // Reports whether this tool has been signed. + bool signed = 7; + ToolClass toolclass = 8; + // The name of the tool. + string toolname = 9; + // The URL for this tool in this registry, for example `http://agora.broadinstitute.org/tools/123456` + string url = 10; + // Reports whether this tool has been verified by a specific organization or individual + bool verified = 11; + // Source of metadata that can support a verified tool, such as an email or URL + string verified_source = 12; + // A list of versions for this tool + repeated ToolVersion versions = 13; +} + +message ToolClass { + // A longer explanation of what this class is and what it can accomplish + string description = 1; + // The unique identifier for the class + string id = 2; + // A short friendly name for the class + string name = 3; +} + +message ToolDescriptor { + // The descriptor that represents this version of the tool. (CWL or WDL) + string descriptor = 1; + DescriptorType type = 2; + // Optional url to the tool descriptor used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl ) + string url = 3; +} + +message ToolDockerfile { + // The dockerfile content for this tool. + string dockerfile = 1; + // Optional url to the dockerfile used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile ) + string url = 2; +} + +message ToolTests { + // The test JSON content for this tool. + string test = 1; + // Optional url to the test JSON used to test this tool + string url = 2; +} + +message ToolVersion { + // The type (or types) of descriptors available. + repeated DescriptorType descriptor_type = 1; + // Reports if this tool has a dockerfile available. + bool dockerfile = 2; + // An identifier of the version of this tool for this particular tool registry, for example `v1` + string id = 3; + // The docker path to the image (and version) for this tool. (e.g. quay.io/seqware/seqware_full/1.1) + string image = 4; + // The version of this tool version in the registry. Iterates when fields like the description, author, etc. are updated. + string meta_version = 5; + // The name of the version. + string name = 6; + // The URL for this tool in this registry, for example `http://agora.broadinstitute.org/tools/123456/1` + string url = 7; + // Reports whether this tool has been verified by a specific organization or individual + bool verified = 8; + // Source of metadata that can support a verified tool, such as an email or URL + string verified_source = 9; +} + +service TrsService { + // Return some metadata that is useful for describing this registry + // + // Return some metadata that is useful for describing this registry + rpc GetMetadata(google.protobuf.Empty) returns (Metadata) { + option (google.api.http) = { + get: "/api/ga4gh/v1/metadata" + }; + } + // List all tool types + // + // This endpoint returns all tool-classes available + rpc GetToolClasses(google.protobuf.Empty) returns (GetToolClassesResponse) { + option (google.api.http) = { + get: "/api/ga4gh/v1/toolClasses" + }; + } + // List all tools + // + // This endpoint returns all tools available or a filtered subset using metadata query parameters. + rpc GetTools(GetToolsRequest) returns (GetToolsResponse) { + option (google.api.http) = { + get: "/api/ga4gh/v1/tools" + }; + } + // List one specific tool, acts as an anchor for self references + // + // This endpoint returns one specific tool (which has ToolVersions nested inside it) + rpc GetToolsId(GetToolsIdRequest) returns (Tool) { + option (google.api.http) = { + get: "/api/ga4gh/v1/tools/{id}" + }; + } + // List versions of a tool + // + // Returns all versions of the specified tool + rpc GetToolsIdVersions(GetToolsIdVersionsRequest) returns (GetToolsIdVersionsResponse) { + option (google.api.http) = { + get: "/api/ga4gh/v1/tools/{id}/versions" + }; + } + // List one specific tool version, acts as an anchor for self references + // + // This endpoint returns one specific tool version + rpc GetToolsIdVersionsVersion_id(GetToolsIdVersionsVersion_idRequest) returns (ToolVersion) { + option (google.api.http) = { + get: "/api/ga4gh/v1/tools/{id}/versions/{version_id}" + }; + } + // Get the tool descriptor (CWL/WDL) for the specified tool. + // + // Returns the CWL or WDL descriptor for the specified tool. + rpc GetToolsIdVersionsVersion_idDescriptor(GetToolsIdVersionsVersion_idDescriptorRequest) returns (ToolDescriptor) { + option (google.api.http) = { + get: "/api/ga4gh/v1/tools/{id}/versions/{version_id}/descriptor" + }; + } + // Get additional tool descriptor files (CWL/WDL) relative to the main file + // + // Returns additional CWL or WDL descriptors for the specified tool in the same or subdirectories + rpc GetToolsIdVersionsVersion_idDescriptorRelative_path(GetToolsIdVersionsVersion_idDescriptorRelative_pathRequest) returns (ToolDescriptor) { + option (google.api.http) = { + get: "/api/ga4gh/v1/tools/{id}/versions/{version_id}/descriptor/{relative_path}" + }; + } + // Get the dockerfile for the specified image. + // + // Returns the dockerfile for the specified image. + rpc GetToolsIdVersionsVersion_idDockerfile(GetToolsIdVersionsVersion_idDockerfileRequest) returns (ToolDockerfile) { + option (google.api.http) = { + get: "/api/ga4gh/v1/tools/{id}/versions/{version_id}/dockerfile" + }; + } + // Get an array of test JSONs suitable for use with this descriptor type. + rpc GetToolsIdVersionsVersion_idTests(GetToolsIdVersionsVersion_idTestsRequest) returns (GetToolsIdVersionsVersion_idTestsResponse) { + option (google.api.http) = { + get: "/api/ga4gh/v1/tools/{id}/versions/{version_id}/tests" + }; + } +} From 0d56bbb973284a620039eb121334a3ef5103a90b Mon Sep 17 00:00:00 2001 From: garyluu Date: Fri, 1 Dec 2017 16:39:35 -0500 Subject: [PATCH 010/102] Incrementing version due to breaking changes --- src/main/resources/swagger/ga4gh-tool-discovery.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 551fcbe8..d2d3973d 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -6,7 +6,7 @@ info: produces: - application/json - text/plain -basePath: /api/ga4gh/v1 +basePath: /api/ga4gh/v2 tags: - name: GA4GH description: A set of resources proposed as a common standard for tool repositories From 34b5da7ccbb1a741f1c3b751c390a4286db65726 Mon Sep 17 00:00:00 2001 From: garyluu Date: Mon, 4 Dec 2017 12:35:28 -0500 Subject: [PATCH 011/102] Revert "Change enum path param to query param due to protobuf limitations" This reverts commit d0a2be5e714e2ba49c8602d87020ca3575307c6d. --- .../swagger/ga4gh-tool-discovery.yaml | 36 +++++-------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index d2d3973d..db74dbf8 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -134,7 +134,7 @@ paths: - /tools/{id}/versions/{version_id}/descriptor: + /tools/{id}/versions/{version_id}/{type}/descriptor: get: summary: Get the tool descriptor (CWL/WDL) for the specified tool. description: Returns the CWL or WDL descriptor for the specified tool. @@ -143,15 +143,9 @@ paths: parameters: - name: type required: true - in: query - description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped - with metadata + in: path + description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are "CWL", "WDL", "PLAIN_CWL", "PLAIN_WDL". type: string - enum: - - CWL - - WDL - - PLAIN_CWL - - PLAIN_WDL - name: id in: path description: A unique identifier of the tool, scoped to this registry, for example `123456` @@ -172,7 +166,7 @@ paths: schema: $ref: '#/definitions/Error' - /tools/{id}/versions/{version_id}/descriptor/{relative_path}: + /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}: get: summary: Get additional tool descriptor files (CWL/WDL) relative to the main file description: Returns additional CWL or WDL descriptors for the specified tool in the same or subdirectories @@ -180,16 +174,10 @@ paths: - GA4GH parameters: - name: type - in: query + in: path required: true - description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped - with metadata + description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are "CWL", "WDL", "PLAIN_CWL", "PLAIN_WDL". type: string - enum: - - CWL - - WDL - - PLAIN_CWL - - PLAIN_WDL - name: id in: path description: A unique identifier of the tool, scoped to this registry, for example `123456` @@ -215,7 +203,7 @@ paths: schema: $ref: '#/definitions/Error' - /tools/{id}/versions/{version_id}/tests: + /tools/{id}/versions/{version_id}/{type}/tests: get: summary: Get an array of test JSONs suitable for use with this descriptor type. tags: @@ -223,15 +211,9 @@ paths: parameters: - name: type required: true - in: query - description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped - with metadata + in: path + description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are "CWL", "WDL", "PLAIN_CWL", "PLAIN_WDL". type: string - enum: - - CWL - - WDL - - PLAIN_CWL - - PLAIN_WDL - name: id in: path description: A unique identifier of the tool, scoped to this registry, for example `123456` From 350157d247df5a39cdfa1d67621d8c9b3e593e83 Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Mon, 11 Dec 2017 12:49:16 -0500 Subject: [PATCH 012/102] Create README.md --- src/main/resources/swagger/README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/main/resources/swagger/README.md diff --git a/src/main/resources/swagger/README.md b/src/main/resources/swagger/README.md new file mode 100644 index 00000000..c7468479 --- /dev/null +++ b/src/main/resources/swagger/README.md @@ -0,0 +1,24 @@ +## Instruction for modifying the TRS + +To make changes to the TRS, modify the swagger yaml file. This swagger yaml file will be used in the validation server. +A protobuf file will be automatically generated through Travis using Openapi2proto and some post processing. +A 2nd swagger yaml will be generated from the newly generated protobuf file using protoc-gen-swagger and will have basic checks to determine that vital information is not lost between these conversions. +After successful conversion checks, the protobuf file will be uploaded back to this repository and branch using the repository's deploy key. + +A few notes: +Some information is lost during the swagger.yaml to protobuf conversion such as optional/required properties, headers, content-type, etc. +If making these type of changes in the swagger yaml, ensure there's a comment in the swagger yaml indicating it. +In general, comments are carried over from swagger to protobuf. In the event of ambiguity or conversion issues, use comments. + +https://groups.google.com/a/genomicsandhealth.org/forum/?hl=en-GB#!topic/ga4gh-cloud/ElieFuwHgcM lists a bunch of other issues that will need to be taken into account when editing the swagger yaml. + +To preserve as much compatibility with protobuf as possible, here are some things to avoid using in the swagger yaml: +- Required properties in objects. Protobuf will consider all of them as optional +- All header info for example: no-cache, max-age, max-stale, all encoding related headers, authorization, content-type, etc +- Enum path parameters +- Custom error response objects +- More than 1 successful response object +- Global enums that have the same property names +- HTTP methods that are HEAD, TRACE, OPTIONS, and CONNECT due to tooling (protobuf could use custom http patterns but too complicated for automated conversion) +- Nullable properties (even swagger doesn't support it very well) +- all vendor extensions such as x-example, x-description, x-summary, etc From e227ccadee74d1a9fcbba0e223da8da11c0cfd3e Mon Sep 17 00:00:00 2001 From: garyluu Date: Fri, 5 Jan 2018 13:18:53 -0500 Subject: [PATCH 013/102] New endpoint and object definition to describe available files --- .../swagger/ga4gh-tool-discovery.yaml | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index db74dbf8..64c000b2 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -235,6 +235,38 @@ paths: description: The tool can not be output in the specified type. schema: $ref: '#/definitions/Error' + /tools/{id}/versions/{version_id}/{type}/files: + get: + summary: Get an array of test JSONs suitable for use with this descriptor type. + tags: + - GA4GH + parameters: + - name: type + required: true + in: path + description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are "CWL", "WDL", "PLAIN_CWL", "PLAIN_WDL". + type: string + - name: id + in: path + description: A unique identifier of the tool, scoped to this registry, for example `123456` + required: true + type: string + - name: version_id + in: path + required: true + type: string + description: An identifier of the tool version for this particular tool registry, for example `v1` + responses: + '200': + description: The tool test JSON response. + schema: + type: array + items: + $ref: '#/definitions/File' + '404': + description: The tool can not be output in the specified type. + schema: + $ref: '#/definitions/Error' /tools/{id}/versions/{version_id}/dockerfile: get: @@ -291,6 +323,18 @@ paths: $ref: '#/definitions/ToolClass' definitions: + File: + type: object + properties: + path: + type: string + description: path of the file + file_type: + type: string + enum: + - TEST_FILE + - PRIMARY_DESCRIPTOR + - SECONDARY_DESCRIPTOR ToolClass: type: object # thought. it would be nicer if ToolClasses are consistent across registries. How would we accomplish this? Operate a MIME-type like list? @@ -490,3 +534,4 @@ externalDocs: description: Description of GA4GH Tool Registry (Exchange) Schema url: 'https://github.com/ga4gh/tool-registry-schemas' + From e86b41c67f068308c2237f70603f7d93518cddea Mon Sep 17 00:00:00 2001 From: garyluu Date: Mon, 8 Jan 2018 11:26:45 -0500 Subject: [PATCH 014/102] Better descriptions --- src/main/resources/swagger/ga4gh-tool-discovery.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 64c000b2..b1325428 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -258,7 +258,7 @@ paths: description: An identifier of the tool version for this particular tool registry, for example `v1` responses: '200': - description: The tool test JSON response. + description: The array of File JSON responses. schema: type: array items: @@ -328,7 +328,7 @@ definitions: properties: path: type: string - description: path of the file + description: relative path of the file that can be used with the GA4GH .../{type}/descriptor/{relative_path} endpoint if it's a descriptor file_type: type: string enum: From 608f90ac3ca9d97f00b94e5e1309da8ab7c9fdb8 Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Mon, 8 Jan 2018 13:29:38 -0500 Subject: [PATCH 015/102] Update README.md --- src/main/resources/swagger/README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/resources/swagger/README.md b/src/main/resources/swagger/README.md index c7468479..c9fe91ed 100644 --- a/src/main/resources/swagger/README.md +++ b/src/main/resources/swagger/README.md @@ -5,7 +5,12 @@ A protobuf file will be automatically generated through Travis using Openapi2pro A 2nd swagger yaml will be generated from the newly generated protobuf file using protoc-gen-swagger and will have basic checks to determine that vital information is not lost between these conversions. After successful conversion checks, the protobuf file will be uploaded back to this repository and branch using the repository's deploy key. -A few notes: +### Current protobuf generation status: +The .travis.yml that automatically generates the protobuf file is currently not present in this pull request because there's currently no deploy key for this repository yet (Travis would definitely fail the build). + +See https://github.com/garyluu/validator/blob/master/.travis.yml for an similar travis file that automatically generates and uploads the protobuf file. + +### A few notes: Some information is lost during the swagger.yaml to protobuf conversion such as optional/required properties, headers, content-type, etc. If making these type of changes in the swagger yaml, ensure there's a comment in the swagger yaml indicating it. In general, comments are carried over from swagger to protobuf. In the event of ambiguity or conversion issues, use comments. From f0884c3b797ae9acd13436f80570dd8c935f5b43 Mon Sep 17 00:00:00 2001 From: garyluu Date: Mon, 8 Jan 2018 15:55:51 -0500 Subject: [PATCH 016/102] For issues #21 and #22 --- src/main/resources/swagger/ga4gh-tool-discovery.yaml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index b1325428..7f4ad8ea 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -442,6 +442,7 @@ definitions: description: Source of metadata that can support a verified tool, such as an email or URL DescriptorType: type: string + description: The type of descriptor that represents this version of the tool (CWL or WDL). enum: - CWL - WDL @@ -450,16 +451,15 @@ definitions: description: A tool descriptor is a metadata document that describes one or more tools. required: - type - - descriptor properties: type: $ref: '#/definitions/DescriptorType' descriptor: type: string - description: The descriptor that represents this version of the tool. (CWL or WDL) + description: The descriptor content for this tool. One of url or descriptor is required. url: type: string - description: 'Optional url to the tool descriptor used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl )' + description: URL to the tool descriptor used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl ). One of url or descriptor is required. ToolTests: type: object description: A tool document that describes how to test with one or more sample test JSON. @@ -475,15 +475,13 @@ definitions: ToolDockerfile: type: object description: A tool dockerfile is a document that describes how to build a particular Docker image. - required: - - dockerfile properties: dockerfile: type: string - description: The dockerfile content for this tool. + description: The dockerfile content for this tool. One of url or dockerfile is required. url: type: string - description: 'Optional url to the dockerfile used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile )' + description: Optional url to the dockerfile used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile ). One of url or dockerfile is required. Metadata: type: object description: Describes this registry to better allow for mirroring and indexing. From e903b502d7f2aba2a8e065a757948e14a3be3e86 Mon Sep 17 00:00:00 2001 From: garyluu Date: Tue, 9 Jan 2018 14:22:29 -0500 Subject: [PATCH 017/102] Renamed File definition to ToolFile due to swagger editor --- src/main/resources/swagger/ga4gh-tool-discovery.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 7f4ad8ea..f56c9bc3 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -262,7 +262,7 @@ paths: schema: type: array items: - $ref: '#/definitions/File' + $ref: '#/definitions/ToolFile' '404': description: The tool can not be output in the specified type. schema: @@ -323,7 +323,7 @@ paths: $ref: '#/definitions/ToolClass' definitions: - File: + ToolFile: type: object properties: path: @@ -533,3 +533,4 @@ externalDocs: url: 'https://github.com/ga4gh/tool-registry-schemas' + From 86cbd42bfc3a83af2042568c138e291b5c2b4ae1 Mon Sep 17 00:00:00 2001 From: garyluu Date: Tue, 9 Jan 2018 14:25:38 -0500 Subject: [PATCH 018/102] Increment version in comment --- src/main/resources/swagger/ga4gh-tool-discovery.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index f56c9bc3..c65bf9eb 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -2,7 +2,7 @@ swagger: '2.0' info: title: GA4GH Tool Discovery API description: 'Proposed API for GA4GH tool repositories. A tool consists of a (currently Docker) image paired with a document that describes how to use that image (currently CWL or WDL) and a Dockerfile that describes how to re-produce the image in the future. We use the following terminology, an "image" describes a (Docker) container as stored on a filesystem, a "tool" describes one of the triples as described above, and a "container" should only be used to describe a running image' - version: "1.0.0" + version: "2.0.0" produces: - application/json - text/plain From ffdfacb70ea2c068aa722e900a94a714cadba231 Mon Sep 17 00:00:00 2001 From: garyluu Date: Tue, 9 Jan 2018 16:59:06 -0500 Subject: [PATCH 019/102] Add more file types, better descriptions --- src/main/resources/swagger/ga4gh-tool-discovery.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index c65bf9eb..6672d119 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -237,14 +237,14 @@ paths: $ref: '#/definitions/Error' /tools/{id}/versions/{version_id}/{type}/files: get: - summary: Get an array of test JSONs suitable for use with this descriptor type. + summary: Get an array of objects that contain the relative path and file type. Intended for use with the /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} endpoint. tags: - GA4GH parameters: - name: type required: true in: path - description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are "CWL", "WDL", "PLAIN_CWL", "PLAIN_WDL". + description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are "CWL" and "WDL". type: string - name: id in: path @@ -328,13 +328,15 @@ definitions: properties: path: type: string - description: relative path of the file that can be used with the GA4GH .../{type}/descriptor/{relative_path} endpoint if it's a descriptor + description: Relative path of a file that can be used with the GA4GH .../{type}/descriptor/{relative_path} endpoint if the file is a primary or secondary descriptor file_type: type: string enum: - TEST_FILE - PRIMARY_DESCRIPTOR - SECONDARY_DESCRIPTOR + - DOCKERFILE + - OTHER ToolClass: type: object # thought. it would be nicer if ToolClasses are consistent across registries. How would we accomplish this? Operate a MIME-type like list? From 1aab0911ad7d9b0c7b3dafd4858793b513693d8b Mon Sep 17 00:00:00 2001 From: garyluu Date: Tue, 16 Jan 2018 11:17:07 -0500 Subject: [PATCH 020/102] Fixes --- src/main/resources/swagger/ga4gh-tool-discovery.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 6672d119..3709c5da 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -237,14 +237,14 @@ paths: $ref: '#/definitions/Error' /tools/{id}/versions/{version_id}/{type}/files: get: - summary: Get an array of objects that contain the relative path and file type. Intended for use with the /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} endpoint. + summary: Get an array of objects that contain the relative path and file type. The descriptors are intended for use with the /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} endpoint. tags: - GA4GH parameters: - name: type required: true in: path - description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are "CWL" and "WDL". + description: The output type of the descriptor. Allowable values are "CWL" and "WDL". type: string - name: id in: path @@ -328,7 +328,7 @@ definitions: properties: path: type: string - description: Relative path of a file that can be used with the GA4GH .../{type}/descriptor/{relative_path} endpoint if the file is a primary or secondary descriptor + description: Relative path of the file. A descriptor's path can be used with the GA4GH .../{type}/descriptor/{relative_path} endpoint file_type: type: string enum: From feaa3f5d630f2969822426c8f846f4c739a39c43 Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Thu, 8 Feb 2018 16:14:41 -0500 Subject: [PATCH 021/102] Tool checker proposal (#26) * Tool checker proposal for discussion From https://docs.google.com/document/d/1PTge27WBOKCiR2MkVSOvWKUwnFk0kx-bjq39aKRQxcY/edit?usp=sharing * Add documentation --- .../resources/swagger/ga4gh-tool-discovery.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 3709c5da..026ff834 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -464,16 +464,19 @@ definitions: description: URL to the tool descriptor used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl ). One of url or descriptor is required. ToolTests: type: object - description: A tool document that describes how to test with one or more sample test JSON. - required: - - test + description: >- + A tool document that describes how to test with one or more sample test + JSON. properties: test: type: string - description: The test JSON content for this tool. + description: Optional test JSON content for this tool. (Note that one of test and URL are required) url: type: string - description: 'Optional url to the test JSON used to test this tool' + description: Optional url to the test JSON used to test this tool. Note that this URL should resolve to the raw unwrapped content that would otherwise be available in test. + test-tool-url: + type: string + description: Optional url to the test workflow that will exit successfully if this workflow produced the expected result given this test data. ToolDockerfile: type: object description: A tool dockerfile is a document that describes how to build a particular Docker image. From 0613461a481b9add4aa8a1884cfdbd2c1123fb50 Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Fri, 9 Feb 2018 13:09:02 -0500 Subject: [PATCH 022/102] Generalize (#29) * Generalize the TRS to account for Singularity and Nextflow * Change toolversion's boolean indicator --- README.md | 2 +- .../swagger/ga4gh-tool-discovery.yaml | 377 ++++++++++++------ 2 files changed, 264 insertions(+), 115 deletions(-) diff --git a/README.md b/README.md index 94d26368..cd054537 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![ga4gh logo](http://genomicsandhealth.org/files/logo_ga.png) +![ga4gh logo](https://github.com/dockstore/dockstore-ui2/raw/develop/src/assets/images/sponsors/coloured/ga4gh.png) Schemas for the GA4GH Tool Registry API ======================================= diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 026ff834..2d515713 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -1,8 +1,20 @@ swagger: '2.0' info: title: GA4GH Tool Discovery API - description: 'Proposed API for GA4GH tool repositories. A tool consists of a (currently Docker) image paired with a document that describes how to use that image (currently CWL or WDL) and a Dockerfile that describes how to re-produce the image in the future. We use the following terminology, an "image" describes a (Docker) container as stored on a filesystem, a "tool" describes one of the triples as described above, and a "container" should only be used to describe a running image' - version: "2.0.0" + description: >- + Proposed API for GA4GH (Global Alliance for Genomics & Health) tool + repositories. A tool consists of a set of container images that are paired + with a set of documents (examples include CWL (Common Workflow Language) or + WDL (Workflow Description Language) or NFL (Nextflow)) that describe how to + use those images and a set of specifications for those images (examples are + Dockerfiles or Singularity recipes) that describe how to re-produce those + images in the future. We use the following terminology, a "container image" + describes a container as stored at rest on a filesystem, a "tool" describes + one of the triples as described above. In practice, examples of "tools" + include CWL CommandLineTools, CWL Workflows, WDL workflows, and Nextflow + workflows that reference containers in formats such as Docker or + Singularity. + version: 2.0.0 produces: - application/json - text/plain @@ -11,10 +23,12 @@ tags: - name: GA4GH description: A set of resources proposed as a common standard for tool repositories paths: - /tools/{id}: + '/tools/{id}': get: - summary: List one specific tool, acts as an anchor for self references - description: This endpoint returns one specific tool (which has ToolVersions nested inside it) + summary: 'List one specific tool, acts as an anchor for self references' + description: >- + This endpoint returns one specific tool (which has ToolVersions nested + inside it) tags: - GA4GH parameters: @@ -22,14 +36,19 @@ paths: in: path required: true type: string - description: A unique identifier of the tool, scoped to this registry, for example `123456` + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` responses: '200': description: A tool. schema: - $ref: '#/definitions/Tool' - - /tools/{id}/versions: + $ref: '#/definitions/Tool' + '404': + description: The tool can not be found. + schema: + $ref: '#/definitions/Error' + '/tools/{id}/versions': get: summary: List versions of a tool description: Returns all versions of the specified tool @@ -40,7 +59,9 @@ paths: in: path required: true type: string - description: A unique identifier of the tool, scoped to this registry, for example `123456` + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` responses: '200': description: An array of tool versions @@ -48,10 +69,9 @@ paths: type: array items: $ref: '#/definitions/ToolVersion' - - /tools/{id}/versions/{version_id}: + '/tools/{id}/versions/{version_id}': get: - summary: List one specific tool version, acts as an anchor for self references + summary: 'List one specific tool version, acts as an anchor for self references' description: This endpoint returns one specific tool version tags: - GA4GH @@ -60,18 +80,25 @@ paths: in: path required: true type: string - description: A unique identifier of the tool, scoped to this registry, for example `123456` + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` - name: version_id in: path required: true type: string - description: An identifier of the tool version, scoped to this registry, for example `v1` + description: >- + An identifier of the tool version, scoped to this registry, for + example `v1` responses: '200': description: A tool version. schema: - $ref: '#/definitions/ToolVersion' - + $ref: '#/definitions/ToolVersion' + '404': + description: The tool can not be found. + schema: + $ref: '#/definitions/Error' /tools: get: summary: List all tools @@ -84,7 +111,9 @@ paths: - name: id type: string in: query - description: A unique identifier of the tool, scoped to this registry, for example `123456` + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` - name: registry in: query type: string @@ -108,7 +137,9 @@ paths: - name: author in: query type: string - description: 'The author of the tool (TODO a thought occurs, are we assuming that the author of the CWL and the image are the same?).' + description: >- + The author of the tool (TODO a thought occurs, are we assuming that + the author of the CWL and the image are the same?). - $ref: '#/parameters/offset' - $ref: '#/parameters/limit' responses: @@ -120,10 +151,17 @@ paths: $ref: '#/definitions/Tool' headers: next_page: - description: A URL that can be used to reach the next page based on the current offset and page record limit + description: >- + A URL that can be used to reach the next page based on the + current offset and page record limit type: string last_page: - description: A URL that can be used to reach the last page based on the current page record limit + description: >- + A URL that can be used to reach the last page based on the + current page record limit + type: string + self_link: + description: A URL that can be used to return to the current page later type: string current_offset: description: The current start index of the paging used for this result @@ -131,68 +169,94 @@ paths: current_limit: description: The current page record limit used for this result type: integer - - - - /tools/{id}/versions/{version_id}/{type}/descriptor: + '/tools/{id}/versions/{version_id}/{type}/descriptor': get: - summary: Get the tool descriptor (CWL/WDL) for the specified tool. - description: Returns the CWL or WDL descriptor for the specified tool. + summary: Get the tool descriptor for the specified tool. + description: >- + Returns the descriptor for the specified tool (examples include WDL, + CWL, or Nextflow documents). tags: - GA4GH parameters: - name: type required: true in: path - description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are "CWL", "WDL", "PLAIN_CWL", "PLAIN_WDL". + description: >- + The output type of the descriptor. If not specified it is up to the + underlying implementation to determine which output type to return. + Plain types return the bare descriptor while the "non-plain" types + return a descriptor wrapped with metadata. Allowable values include + "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". type: string - name: id in: path - description: A unique identifier of the tool, scoped to this registry, for example `123456` + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` required: true type: string - name: version_id in: path required: true type: string - description: An identifier of the tool version for this particular tool registry, for example `v1` + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` responses: '200': description: The tool descriptor. schema: $ref: '#/definitions/ToolDescriptor' '404': - description: The tool can not be output in the specified type. + description: The tool descriptor can not be found. schema: $ref: '#/definitions/Error' - - /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}: + '/tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}': get: - summary: Get additional tool descriptor files (CWL/WDL) relative to the main file - description: Returns additional CWL or WDL descriptors for the specified tool in the same or subdirectories + summary: Get additional tool descriptor files relative to the main file + description: >- + Descriptors can often include imports that refer to additional + descriptors. This returns additional descriptors for the specified tool + in the same or other directories that can be reached as a relative path. + This endpoint can be useful for workflow engine implementations like + cwltool to programmatically download all the descriptors for a tool and + run it tags: - GA4GH parameters: - name: type in: path required: true - description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are "CWL", "WDL", "PLAIN_CWL", "PLAIN_WDL". + description: >- + The output type of the descriptor. If not specified it is up to the + underlying implementation to determine which output type to return. + Plain types return the bare descriptor while the "non-plain" types + return a descriptor wrapped with metadata. Allowable values are + "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". type: string - name: id in: path - description: A unique identifier of the tool, scoped to this registry, for example `123456` + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` required: true type: string - name: version_id in: path required: true type: string - description: An identifier of the tool version for this particular tool registry, for example `v1` + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` - name: relative_path in: path required: true type: string - description: A relative path to the additional file (same directory or subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from the same directory as the main descriptor + description: >- + A relative path to the additional file (same directory or + subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from + the same directory as the main descriptor. 'nestedDirectory/foo.cwl' + would return the file from a nested subdirectory responses: '200': description: The tool descriptor. @@ -202,28 +266,38 @@ paths: description: The tool can not be output in the specified type. schema: $ref: '#/definitions/Error' - - /tools/{id}/versions/{version_id}/{type}/tests: + '/tools/{id}/versions/{version_id}/{type}/tests': get: - summary: Get an array of test JSONs suitable for use with this descriptor type. + summary: >- + Get an array of test JSONs (these allow you to execute the tool + successfully) suitable for use with this descriptor type. tags: - GA4GH parameters: - name: type required: true in: path - description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are "CWL", "WDL", "PLAIN_CWL", "PLAIN_WDL". + description: >- + The type of the underlying descriptor. Allowable values include + "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". For + example, "CWL" would return an array of ToolTests objects while + "PLAIN_CWL" would return a bare JSON array with the content of the + tests. type: string - name: id in: path - description: A unique identifier of the tool, scoped to this registry, for example `123456` + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` required: true type: string - name: version_id in: path required: true type: string - description: An identifier of the tool version for this particular tool registry, for example `v1` + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` responses: '200': description: The tool test JSON response. @@ -235,27 +309,37 @@ paths: description: The tool can not be output in the specified type. schema: $ref: '#/definitions/Error' - /tools/{id}/versions/{version_id}/{type}/files: + '/tools/{id}/versions/{version_id}/{type}/files': get: - summary: Get an array of objects that contain the relative path and file type. The descriptors are intended for use with the /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} endpoint. + summary: >- + Get an array of objects that contain the relative path and file type. + The descriptors are intended for use with the + /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} + endpoint. tags: - GA4GH parameters: - name: type required: true in: path - description: The output type of the descriptor. Allowable values are "CWL" and "WDL". + description: >- + The output type of the descriptor. Examples of allowable values are "CWL", + "WDL", and "NextFlow." type: string - name: id in: path - description: A unique identifier of the tool, scoped to this registry, for example `123456` + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` required: true type: string - name: version_id in: path required: true type: string - description: An identifier of the tool version for this particular tool registry, for example `v1` + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` responses: '200': description: The array of File JSON responses. @@ -267,34 +351,42 @@ paths: description: The tool can not be output in the specified type. schema: $ref: '#/definitions/Error' - - /tools/{id}/versions/{version_id}/dockerfile: + '/tools/{id}/versions/{version_id}/containerfile': get: - summary: Get the dockerfile for the specified image. - description: Returns the dockerfile for the specified image. + summary: Get the container specification(s) for the specified image. + description: >- + Returns the container specifications(s) for the specified image. For + example, a CWL CommandlineTool can be associated with one specification + for a container, a CWL Workflow can be associated with multiple + specifications for containers tags: - GA4GH parameters: - name: id in: path - description: A unique identifier of the tool, scoped to this registry, for example `123456` + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` required: true type: string - name: version_id in: path required: true type: string - description: An identifier of the tool version for this particular tool registry, for example `v1` + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` responses: '200': description: The tool payload. schema: - $ref: '#/definitions/ToolDockerfile' + type: array + items: + $ref: '#/definitions/ToolContainerfile' '404': - description: The tool payload is not present in the service. + description: There are no container specifications for this tool schema: $ref: '#/definitions/Error' - /metadata: get: summary: Return some metadata that is useful for describing this registry @@ -305,42 +397,43 @@ paths: '200': description: A Metadata object describing this service. schema: - $ref: '#/definitions/Metadata' - + $ref: '#/definitions/Metadata' /toolClasses: get: summary: List all tool types - description: > + description: | This endpoint returns all tool-classes available tags: - GA4GH responses: '200': - description: An array of methods that match the filter. + description: A list of potential tool classes. schema: type: array items: $ref: '#/definitions/ToolClass' - definitions: ToolFile: type: object properties: - path: - type: string - description: Relative path of the file. A descriptor's path can be used with the GA4GH .../{type}/descriptor/{relative_path} endpoint - file_type: + path: + type: string + description: >- + Relative path of the file. A descriptor's path can be used with the + GA4GH .../{type}/descriptor/{relative_path} endpoint + file_type: type: string enum: - TEST_FILE - PRIMARY_DESCRIPTOR - SECONDARY_DESCRIPTOR - - DOCKERFILE + - CONTAINERFILE - OTHER ToolClass: type: object - # thought. it would be nicer if ToolClasses are consistent across registries. How would we accomplish this? Operate a MIME-type like list? - description: Describes a class (type) of tool allowing us to categorize workflows, tools, and maybe even other entities (such as services) separately + description: >- + Describes a class (type) of tool allowing us to categorize workflows, + tasks, and maybe even other entities (such as services) separately properties: id: type: string @@ -353,7 +446,10 @@ definitions: description: A longer explanation of what this class is and what it can accomplish Tool: type: object - description: A tool (or described tool) describes one pairing of a tool as described in a descriptor file (which potentially describes multiple tools) and a Docker image. + description: >- + A tool (or described tool) is defined as a tuple of a descriptor file + (which potentially consists of multiple files), a set of container images, + and a set of instructions for creating those images. required: - url - id @@ -365,10 +461,14 @@ definitions: properties: url: type: string - description: The URL for this tool in this registry, for example `http://agora.broadinstitute.org/tools/123456` + description: >- + The URL for this tool in this registry, for example + `http://agora.broadinstitute.org/tools/123456` id: type: string - description: A unique identifier of the tool, scoped to this registry, for example `123456` or `123456_v1` + description: >- + A unique identifier of the tool, scoped to this registry, for example + `123456` or `123456_v1` organization: type: string description: The organization that published the image. @@ -382,21 +482,31 @@ definitions: description: The description of the tool. author: type: string - description: Contact information for the author of this tool entry in the registry. (More complex authorship information is handled by the descriptor) + description: >- + Contact information for the author of this tool entry in the registry. + (More complex authorship information is handled by the descriptor) meta_version: type: string - description: 'The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated.' + description: >- + The version of this tool in the registry. Iterates when fields like + the description, author, etc. are updated. contains: - description: An array of IDs for the applications that are stored inside this tool (for example `https://bio.tools/tool/mytum.de/SNAP2/1`) + description: >- + An array of IDs for the applications that are stored inside this tool + (for example `https://bio.tools/tool/mytum.de/SNAP2/1`) type: array items: - type: string + type: string verified: type: boolean - description: Reports whether this tool has been verified by a specific organization or individual + description: >- + Reports whether this tool has been verified by a specific organization + or individual verified_source: type: string - description: Source of metadata that can support a verified tool, such as an email or URL + description: >- + Source of metadata that can support a verified tool, such as an email + or URL signed: type: boolean description: Reports whether this tool has been signed. @@ -407,7 +517,9 @@ definitions: $ref: '#/definitions/ToolVersion' ToolVersion: type: object - description: A tool version describes a particular iteration of a tool as described by a reference to a specific image and dockerfile. + description: >- + A tool version describes a particular iteration of a tool as described by + a reference to a specific image and/or documents. required: - url - id @@ -418,36 +530,60 @@ definitions: description: The name of the version. url: type: string - description: The URL for this tool in this registry, for example `http://agora.broadinstitute.org/tools/123456/1` + description: >- + The URL for this tool in this registry, for example + `http://agora.broadinstitute.org/tools/123456/1` id: type: string - description: An identifier of the version of this tool for this particular tool registry, for example `v1` + description: >- + An identifier of the version of this tool for this particular tool + registry, for example `v1` image: type: string - description: The docker path to the image (and version) for this tool. (e.g. quay.io/seqware/seqware_full/1.1) + description: >- + The docker path to the image (and version) for this tool. (e.g. + quay.io/seqware/seqware_full/1.1) + registry_url: + type: string + description: >- + A URL to a Singularity registry is provided when a specific type of + image does not use ids in the Docker format. Used along with + image_name to locate a specific image. + image_name: + type: string + description: Used in conjunction with a registry_url if provided to locate images descriptor_type: type: array description: The type (or types) of descriptors available. items: $ref: '#/definitions/DescriptorType' - dockerfile: + containerfile: type: boolean - description: Reports if this tool has a dockerfile available. + description: Reports if this tool has a containerfile available. meta_version: type: string - description: 'The version of this tool version in the registry. Iterates when fields like the description, author, etc. are updated.' + description: >- + The version of this tool version in the registry. Iterates when fields + like the description, author, etc. are updated. verified: type: boolean - description: Reports whether this tool has been verified by a specific organization or individual + description: >- + Reports whether this tool has been verified by a specific organization + or individual verified_source: type: string - description: Source of metadata that can support a verified tool, such as an email or URL + description: >- + Source of metadata that can support a verified tool, such as an email + or URL DescriptorType: type: string - description: The type of descriptor that represents this version of the tool (CWL or WDL). + description: >- + The type of descriptor that represents this version of the tool (e.g. CWL, + WDL, or NFL). enum: - CWL - WDL + - NFL ToolDescriptor: type: object description: A tool descriptor is a metadata document that describes one or more tools. @@ -458,10 +594,14 @@ definitions: $ref: '#/definitions/DescriptorType' descriptor: type: string - description: The descriptor content for this tool. One of url or descriptor is required. + description: The descriptor that represents this version of the tool. url: type: string - description: URL to the tool descriptor used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl ). One of url or descriptor is required. + description: >- + Optional url to the underlying tool descriptor, should include version + information, and can include a git hash (e.g. + https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl + ) ToolTests: type: object description: >- @@ -477,16 +617,25 @@ definitions: test-tool-url: type: string description: Optional url to the test workflow that will exit successfully if this workflow produced the expected result given this test data. - ToolDockerfile: + ToolContainerfile: type: object - description: A tool dockerfile is a document that describes how to build a particular Docker image. + description: >- + A containerfile is a document that describes how to build a particular + container image. Examples include Dockerfiles for creating Docker images + and Singularity recipes for Singularity images + required: + - containerfile properties: - dockerfile: + containerfile: type: string - description: The dockerfile content for this tool. One of url or dockerfile is required. + description: The container specification for this tool. url: type: string - description: Optional url to the dockerfile used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile ). One of url or dockerfile is required. + description: >- + Optional url to the file used to build this image, should include + version information, and can include a git hash (e.g. + https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile + ) Metadata: type: object description: Describes this registry to better allow for mirroring and indexing. @@ -505,12 +654,13 @@ definitions: description: A country code for the registry (ISO 3166-1 alpha-3) friendly_name: type: string - description: A friendly name that can be used in addition to the hostname to describe a registry - + description: >- + A friendly name that can be used in addition to the hostname to + describe a registry Error: type: object required: - - code + - code properties: code: type: integer @@ -519,23 +669,22 @@ definitions: message: type: string default: Internal Server Error - parameters: limit: - name: limit - in: query - description: Amount of records to return in a given page. By default it is 1000. - type: integer - format: int32 + name: limit + in: query + description: Amount of records to return in a given page. By default it is 1000. + type: integer + format: int32 offset: - name: offset - in: query - description: Start index of paging. Pagination results can be based on numbers or other values chosen by the registry implementor (for example, SHA values). If this exceeds the current result set return an empty set. If not specified in the request this will start at the beginning of the results. - type: string - + name: offset + in: query + description: >- + Start index of paging. Pagination results can be based on numbers or other + values chosen by the registry implementor (for example, SHA values). If + this exceeds the current result set return an empty set. If not specified + in the request this will start at the beginning of the results. + type: string externalDocs: description: Description of GA4GH Tool Registry (Exchange) Schema url: 'https://github.com/ga4gh/tool-registry-schemas' - - - From 66e61223f1bee4e78517dc44bae813bb36e56838 Mon Sep 17 00:00:00 2001 From: garyluu Date: Tue, 20 Feb 2018 11:10:48 -0500 Subject: [PATCH 023/102] General formatting/grammar --- .../swagger/ga4gh-tool-discovery.yaml | 111 ++++++++++-------- 1 file changed, 59 insertions(+), 52 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 2d515713..30ccc3e1 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -4,16 +4,16 @@ info: description: >- Proposed API for GA4GH (Global Alliance for Genomics & Health) tool repositories. A tool consists of a set of container images that are paired - with a set of documents (examples include CWL (Common Workflow Language) or - WDL (Workflow Description Language) or NFL (Nextflow)) that describe how to - use those images and a set of specifications for those images (examples are - Dockerfiles or Singularity recipes) that describe how to re-produce those - images in the future. We use the following terminology, a "container image" - describes a container as stored at rest on a filesystem, a "tool" describes - one of the triples as described above. In practice, examples of "tools" - include CWL CommandLineTools, CWL Workflows, WDL workflows, and Nextflow - workflows that reference containers in formats such as Docker or - Singularity. + with a set of documents. Examples of documents include CWL (Common Workflow + Language) or WDL (Workflow Description Language) or NFL (Nextflow) that + describe how to use those images and a set of specifications for those + images (examples are Dockerfiles or Singularity recipes) that describe how + to reproduce those images in the future. We use the following terminology, a + "container image" describes a container as stored at rest on a filesystem, a + "tool" describes one of the triples as described above. In practice, + examples of "tools" include CWL CommandLineTools, CWL Workflows, WDL + workflows, and Nextflow workflows that reference containers in formats such + as Docker or Singularity. version: 2.0.0 produces: - application/json @@ -171,10 +171,10 @@ paths: type: integer '/tools/{id}/versions/{version_id}/{type}/descriptor': get: - summary: Get the tool descriptor for the specified tool. + summary: Get the tool descriptor for the specified tool description: >- - Returns the descriptor for the specified tool (examples include WDL, - CWL, or Nextflow documents). + Returns the descriptor for the specified tool (examples include CWL, + WDL, or Nextflow documents). tags: - GA4GH parameters: @@ -182,7 +182,7 @@ paths: required: true in: path description: >- - The output type of the descriptor. If not specified it is up to the + The output type of the descriptor. If not specified, it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values include @@ -200,8 +200,8 @@ paths: required: true type: string description: >- - An identifier of the tool version for this particular tool registry, - for example `v1` + An identifier of the tool version, scoped to this registry, for + example `v1` responses: '200': description: The tool descriptor. @@ -228,7 +228,7 @@ paths: in: path required: true description: >- - The output type of the descriptor. If not specified it is up to the + The output type of the descriptor. If not specified, it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are @@ -268,8 +268,9 @@ paths: $ref: '#/definitions/Error' '/tools/{id}/versions/{version_id}/{type}/tests': get: - summary: >- - Get an array of test JSONs (these allow you to execute the tool + summary: Get a list of test JSONs + description: >- + Get a list of test JSONs (these allow you to execute the tool successfully) suitable for use with this descriptor type. tags: - GA4GH @@ -280,8 +281,8 @@ paths: description: >- The type of the underlying descriptor. Allowable values include "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". For - example, "CWL" would return an array of ToolTests objects while - "PLAIN_CWL" would return a bare JSON array with the content of the + example, "CWL" would return an list of ToolTests objects while + "PLAIN_CWL" would return a bare JSON list with the content of the tests. type: string - name: id @@ -311,9 +312,10 @@ paths: $ref: '#/definitions/Error' '/tools/{id}/versions/{version_id}/{type}/files': get: - summary: >- - Get an array of objects that contain the relative path and file type. - The descriptors are intended for use with the + summary: Get a list of objects that contain the relative path and file type + description: >- + Get a list of objects that contain the relative path and file type. The + descriptors are intended for use with the /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} endpoint. tags: @@ -323,8 +325,8 @@ paths: required: true in: path description: >- - The output type of the descriptor. Examples of allowable values are "CWL", - "WDL", and "NextFlow." + The output type of the descriptor. Examples of allowable values are + "CWL", "WDL", and "NextFlow." type: string - name: id in: path @@ -461,14 +463,12 @@ definitions: properties: url: type: string - description: >- - The URL for this tool in this registry, for example - `http://agora.broadinstitute.org/tools/123456` + example: 'http://agora.broadinstitute.org/tools/123456' + description: The URL for this tool in this registry id: type: string - description: >- - A unique identifier of the tool, scoped to this registry, for example - `123456` or `123456_v1` + example: 123456 + description: 'A unique identifier of the tool, scoped to this registry' organization: type: string description: The organization that published the image. @@ -491,9 +491,8 @@ definitions: The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated. contains: - description: >- - An array of IDs for the applications that are stored inside this tool - (for example `https://bio.tools/tool/mytum.de/SNAP2/1`) + description: An array of IDs for the applications that are stored inside this tool + example: 'https://bio.tools/tool/mytum.de/SNAP2/1' type: array items: type: string @@ -530,19 +529,18 @@ definitions: description: The name of the version. url: type: string - description: >- - The URL for this tool in this registry, for example - `http://agora.broadinstitute.org/tools/123456/1` + description: The URL for this tool in this registry + example: 'http://agora.broadinstitute.org/tools/123456/1' id: type: string description: >- An identifier of the version of this tool for this particular tool - registry, for example `v1` + registry + example: v1 image: type: string - description: >- - The docker path to the image (and version) for this tool. (e.g. - quay.io/seqware/seqware_full/1.1) + description: The docker path to the image (and version) for this tool + example: quay.io/seqware/seqware_full/1.1 registry_url: type: string description: >- @@ -599,9 +597,9 @@ definitions: type: string description: >- Optional url to the underlying tool descriptor, should include version - information, and can include a git hash (e.g. + information, and can include a git hash + example: >- https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl - ) ToolTests: type: object description: >- @@ -610,13 +608,20 @@ definitions: properties: test: type: string - description: Optional test JSON content for this tool. (Note that one of test and URL are required) + description: >- + Optional test JSON content for this tool. (Note that one of test and + URL are required) url: type: string - description: Optional url to the test JSON used to test this tool. Note that this URL should resolve to the raw unwrapped content that would otherwise be available in test. - test-tool-url: + description: >- + Optional url to the test JSON used to test this tool. Note that this + URL should resolve to the raw unwrapped content that would otherwise + be available in test. + test_tool_url: type: string - description: Optional url to the test workflow that will exit successfully if this workflow produced the expected result given this test data. + description: >- + Optional url to the test workflow that will exit successfully if this + workflow produced the expected result given this test data. ToolContainerfile: type: object description: >- @@ -633,9 +638,9 @@ definitions: type: string description: >- Optional url to the file used to build this image, should include - version information, and can include a git hash (e.g. + version information, and can include a git hash + example: >- https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile - ) Metadata: type: object description: Describes this registry to better allow for mirroring and indexing. @@ -673,7 +678,8 @@ parameters: limit: name: limit in: query - description: Amount of records to return in a given page. By default it is 1000. + description: Amount of records to return in a given page. + default: 1000 type: integer format: int32 offset: @@ -683,8 +689,9 @@ parameters: Start index of paging. Pagination results can be based on numbers or other values chosen by the registry implementor (for example, SHA values). If this exceeds the current result set return an empty set. If not specified - in the request this will start at the beginning of the results. + in the request, this will start at the beginning of the results. type: string externalDocs: description: Description of GA4GH Tool Registry (Exchange) Schema url: 'https://github.com/ga4gh/tool-registry-schemas' + From ffce6ad916f7e741f4e415e98e82881a5cf0ff7f Mon Sep 17 00:00:00 2001 From: garyluu Date: Tue, 20 Feb 2018 16:48:08 -0500 Subject: [PATCH 024/102] Initial OpenAPI 3.0 yaml --- .../ga4gh-tool-discovery-openAPI3.yaml | 840 ++++++++++++++++++ 1 file changed, 840 insertions(+) create mode 100644 src/main/resources/swagger/ga4gh-tool-discovery-openAPI3.yaml diff --git a/src/main/resources/swagger/ga4gh-tool-discovery-openAPI3.yaml b/src/main/resources/swagger/ga4gh-tool-discovery-openAPI3.yaml new file mode 100644 index 00000000..8d5b8da3 --- /dev/null +++ b/src/main/resources/swagger/ga4gh-tool-discovery-openAPI3.yaml @@ -0,0 +1,840 @@ +openapi: 3.0.0 +servers: + - url: /api/ga4gh/v2 +info: + title: GA4GH Tool Discovery API + description: >- + Proposed API for GA4GH (Global Alliance for Genomics & Health) tool + repositories. A tool consists of a set of container images that are paired + with a set of documents (examples include CWL (Common Workflow Language) or + WDL (Workflow Description Language) or NFL (Nextflow)) that describe how to + use those images and a set of specifications for those images (examples are + Dockerfiles or Singularity recipes) that describe how to re-produce those + images in the future. We use the following terminology, a "container image" + describes a container as stored at rest on a filesystem, a "tool" describes + one of the triples as described above. In practice, examples of "tools" + include CWL CommandLineTools, CWL Workflows, WDL workflows, and Nextflow + workflows that reference containers in formats such as Docker or + Singularity. + version: 2.0.0 +tags: + - name: GA4GH + description: A set of resources proposed as a common standard for tool repositories +paths: + '/tools/{id}': + get: + summary: 'List one specific tool, acts as an anchor for self references' + description: >- + This endpoint returns one specific tool (which has ToolVersions nested + inside it) + tags: + - GA4GH + parameters: + - name: id + in: path + required: true + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + schema: + type: string + responses: + '200': + description: A tool. + content: + application/json: + schema: + $ref: '#/components/schemas/Tool' + text/plain: + schema: + $ref: '#/components/schemas/Tool' + '404': + description: The tool can not be found. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + '/tools/{id}/versions': + get: + summary: List versions of a tool + description: Returns all versions of the specified tool + tags: + - GA4GH + parameters: + - name: id + in: path + required: true + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + schema: + type: string + responses: + '200': + description: An array of tool versions + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ToolVersion' + text/plain: + schema: + type: array + items: + $ref: '#/components/schemas/ToolVersion' + '/tools/{id}/versions/{version_id}': + get: + summary: 'List one specific tool version, acts as an anchor for self references' + description: This endpoint returns one specific tool version + tags: + - GA4GH + parameters: + - name: id + in: path + required: true + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + schema: + type: string + - name: version_id + in: path + required: true + description: >- + An identifier of the tool version, scoped to this registry, for + example `v1` + schema: + type: string + responses: + '200': + description: A tool version. + content: + application/json: + schema: + $ref: '#/components/schemas/ToolVersion' + text/plain: + schema: + $ref: '#/components/schemas/ToolVersion' + '404': + description: The tool can not be found. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + /tools: + get: + summary: List all tools + description: > + This endpoint returns all tools available or a filtered subset using + metadata query parameters. + tags: + - GA4GH + parameters: + - name: id + in: query + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + schema: + type: string + - name: registry + in: query + description: The image registry that contains the image. + schema: + type: string + - name: organization + in: query + description: The organization in the registry that published the image. + schema: + type: string + - name: name + in: query + description: The name of the image. + schema: + type: string + - name: toolname + in: query + description: The name of the tool. + schema: + type: string + - name: description + in: query + description: The description of the tool. + schema: + type: string + - name: author + in: query + description: >- + The author of the tool (TODO a thought occurs, are we assuming that + the author of the CWL and the image are the same?). + schema: + type: string + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/limit' + responses: + '200': + description: An array of Tools that match the filter. + headers: + next_page: + description: >- + A URL that can be used to reach the next page based on the + current offset and page record limit + schema: + type: string + last_page: + description: >- + A URL that can be used to reach the last page based on the + current page record limit + schema: + type: string + self_link: + description: A URL that can be used to return to the current page later + schema: + type: string + current_offset: + description: The current start index of the paging used for this result + schema: + type: string + current_limit: + description: The current page record limit used for this result + schema: + type: integer + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Tool' + text/plain: + schema: + type: array + items: + $ref: '#/components/schemas/Tool' + '/tools/{id}/versions/{version_id}/{type}/descriptor': + get: + summary: Get the tool descriptor for the specified tool. + description: >- + Returns the descriptor for the specified tool (examples include WDL, + CWL, or Nextflow documents). + tags: + - GA4GH + parameters: + - name: type + required: true + in: path + description: >- + The output type of the descriptor. If not specified it is up to the + underlying implementation to determine which output type to return. + Plain types return the bare descriptor while the "non-plain" types + return a descriptor wrapped with metadata. Allowable values include + "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". + schema: + type: string + - name: id + in: path + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + required: true + schema: + type: string + - name: version_id + in: path + required: true + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` + schema: + type: string + responses: + '200': + description: The tool descriptor. + content: + application/json: + schema: + $ref: '#/components/schemas/ToolDescriptor' + text/plain: + schema: + $ref: '#/components/schemas/ToolDescriptor' + '404': + description: The tool descriptor can not be found. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + '/tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}': + get: + summary: Get additional tool descriptor files relative to the main file + description: >- + Descriptors can often include imports that refer to additional + descriptors. This returns additional descriptors for the specified tool + in the same or other directories that can be reached as a relative path. + This endpoint can be useful for workflow engine implementations like + cwltool to programmatically download all the descriptors for a tool and + run it + tags: + - GA4GH + parameters: + - name: type + in: path + required: true + description: >- + The output type of the descriptor. If not specified it is up to the + underlying implementation to determine which output type to return. + Plain types return the bare descriptor while the "non-plain" types + return a descriptor wrapped with metadata. Allowable values are + "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". + schema: + type: string + - name: id + in: path + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + required: true + schema: + type: string + - name: version_id + in: path + required: true + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` + schema: + type: string + - name: relative_path + in: path + required: true + description: >- + A relative path to the additional file (same directory or + subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from + the same directory as the main descriptor. 'nestedDirectory/foo.cwl' + would return the file from a nested subdirectory + schema: + type: string + responses: + '200': + description: The tool descriptor. + content: + application/json: + schema: + $ref: '#/components/schemas/ToolDescriptor' + text/plain: + schema: + $ref: '#/components/schemas/ToolDescriptor' + '404': + description: The tool can not be output in the specified type. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + '/tools/{id}/versions/{version_id}/{type}/tests': + get: + summary: >- + Get an array of test JSONs (these allow you to execute the tool + successfully) suitable for use with this descriptor type. + tags: + - GA4GH + parameters: + - name: type + required: true + in: path + description: >- + The type of the underlying descriptor. Allowable values include + "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". For + example, "CWL" would return an array of ToolTests objects while + "PLAIN_CWL" would return a bare JSON array with the content of the + tests. + schema: + type: string + - name: id + in: path + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + required: true + schema: + type: string + - name: version_id + in: path + required: true + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` + schema: + type: string + responses: + '200': + description: The tool test JSON response. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ToolTests' + text/plain: + schema: + type: array + items: + $ref: '#/components/schemas/ToolTests' + '404': + description: The tool can not be output in the specified type. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + '/tools/{id}/versions/{version_id}/{type}/files': + get: + summary: >- + Get an array of objects that contain the relative path and file type. + The descriptors are intended for use with the + /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} + endpoint. + tags: + - GA4GH + parameters: + - name: type + required: true + in: path + description: >- + The output type of the descriptor. Examples of allowable values are + "CWL", "WDL", and "NextFlow." + schema: + type: string + - name: id + in: path + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + required: true + schema: + type: string + - name: version_id + in: path + required: true + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` + schema: + type: string + responses: + '200': + description: The array of File JSON responses. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ToolFile' + text/plain: + schema: + type: array + items: + $ref: '#/components/schemas/ToolFile' + '404': + description: The tool can not be output in the specified type. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + '/tools/{id}/versions/{version_id}/containerfile': + get: + summary: Get the container specification(s) for the specified image. + description: >- + Returns the container specifications(s) for the specified image. For + example, a CWL CommandlineTool can be associated with one specification + for a container, a CWL Workflow can be associated with multiple + specifications for containers + tags: + - GA4GH + parameters: + - name: id + in: path + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + required: true + schema: + type: string + - name: version_id + in: path + required: true + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` + schema: + type: string + responses: + '200': + description: The tool payload. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ToolContainerfile' + text/plain: + schema: + type: array + items: + $ref: '#/components/schemas/ToolContainerfile' + '404': + description: There are no container specifications for this tool + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + /metadata: + get: + summary: Return some metadata that is useful for describing this registry + description: Return some metadata that is useful for describing this registry + tags: + - GA4GH + responses: + '200': + description: A Metadata object describing this service. + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + text/plain: + schema: + $ref: '#/components/schemas/Metadata' + /toolClasses: + get: + summary: List all tool types + description: | + This endpoint returns all tool-classes available + tags: + - GA4GH + responses: + '200': + description: A list of potential tool classes. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ToolClass' + text/plain: + schema: + type: array + items: + $ref: '#/components/schemas/ToolClass' +externalDocs: + description: Description of GA4GH Tool Registry (Exchange) Schema + url: 'https://github.com/ga4gh/tool-registry-schemas' +components: + parameters: + limit: + name: limit + in: query + description: Amount of records to return in a given page. By default it is 1000. + schema: + type: integer + format: int32 + offset: + name: offset + in: query + description: >- + Start index of paging. Pagination results can be based on numbers or + other values chosen by the registry implementor (for example, SHA + values). If this exceeds the current result set return an empty set. If + not specified in the request this will start at the beginning of the + results. + schema: + type: string + schemas: + ToolFile: + type: object + properties: + path: + type: string + description: >- + Relative path of the file. A descriptor's path can be used with the + GA4GH .../{type}/descriptor/{relative_path} endpoint + file_type: + type: string + enum: + - TEST_FILE + - PRIMARY_DESCRIPTOR + - SECONDARY_DESCRIPTOR + - CONTAINERFILE + - OTHER + ToolClass: + type: object + description: >- + Describes a class (type) of tool allowing us to categorize workflows, + tasks, and maybe even other entities (such as services) separately + properties: + id: + type: string + description: The unique identifier for the class + name: + type: string + description: A short friendly name for the class + description: + type: string + description: >- + A longer explanation of what this class is and what it can + accomplish + Tool: + type: object + description: >- + A tool (or described tool) is defined as a tuple of a descriptor file + (which potentially consists of multiple files), a set of container + images, and a set of instructions for creating those images. + required: + - url + - id + - organization + - author + - meta_version + - toolclass + - versions + properties: + url: + type: string + description: >- + The URL for this tool in this registry, for example + `http://agora.broadinstitute.org/tools/123456` + id: + type: string + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` or `123456_v1` + organization: + type: string + description: The organization that published the image. + toolname: + type: string + description: The name of the tool. + toolclass: + $ref: '#/components/schemas/ToolClass' + description: + type: string + description: The description of the tool. + author: + type: string + description: >- + Contact information for the author of this tool entry in the + registry. (More complex authorship information is handled by the + descriptor) + meta_version: + type: string + description: >- + The version of this tool in the registry. Iterates when fields like + the description, author, etc. are updated. + contains: + description: >- + An array of IDs for the applications that are stored inside this + tool (for example `https://bio.tools/tool/mytum.de/SNAP2/1`) + type: array + items: + type: string + verified: + type: boolean + description: >- + Reports whether this tool has been verified by a specific + organization or individual + verified_source: + type: string + description: >- + Source of metadata that can support a verified tool, such as an + email or URL + signed: + type: boolean + description: Reports whether this tool has been signed. + versions: + description: A list of versions for this tool + type: array + items: + $ref: '#/components/schemas/ToolVersion' + ToolVersion: + type: object + description: >- + A tool version describes a particular iteration of a tool as described + by a reference to a specific image and/or documents. + required: + - url + - id + - meta_version + properties: + name: + type: string + description: The name of the version. + url: + type: string + description: >- + The URL for this tool in this registry, for example + `http://agora.broadinstitute.org/tools/123456/1` + id: + type: string + description: >- + An identifier of the version of this tool for this particular tool + registry, for example `v1` + image: + type: string + description: >- + The docker path to the image (and version) for this tool. (e.g. + quay.io/seqware/seqware_full/1.1) + registry_url: + type: string + description: >- + A URL to a Singularity registry is provided when a specific type of + image does not use ids in the Docker format. Used along with + image_name to locate a specific image. + image_name: + type: string + description: Used in conjunction with a registry_url if provided to locate images + descriptor_type: + type: array + description: The type (or types) of descriptors available. + items: + $ref: '#/components/schemas/DescriptorType' + containerfile: + type: boolean + description: Reports if this tool has a containerfile available. + meta_version: + type: string + description: >- + The version of this tool version in the registry. Iterates when + fields like the description, author, etc. are updated. + verified: + type: boolean + description: >- + Reports whether this tool has been verified by a specific + organization or individual + verified_source: + type: string + description: >- + Source of metadata that can support a verified tool, such as an + email or URL + DescriptorType: + type: string + description: >- + The type of descriptor that represents this version of the tool (e.g. + CWL, WDL, or NFL). + enum: + - CWL + - WDL + - NFL + ToolDescriptor: + type: object + description: >- + A tool descriptor is a metadata document that describes one or more + tools. + required: + - type + properties: + type: + $ref: '#/components/schemas/DescriptorType' + descriptor: + type: string + description: The descriptor that represents this version of the tool. + url: + type: string + description: >- + Optional url to the underlying tool descriptor, should include + version information, and can include a git hash (e.g. + https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl + ) + ToolTests: + type: object + description: >- + A tool document that describes how to test with one or more sample test + JSON. + properties: + test: + type: string + description: >- + Optional test JSON content for this tool. (Note that one of test and + URL are required) + url: + type: string + description: >- + Optional url to the test JSON used to test this tool. Note that this + URL should resolve to the raw unwrapped content that would otherwise + be available in test. + test-tool-url: + type: string + description: >- + Optional url to the test workflow that will exit successfully if + this workflow produced the expected result given this test data. + ToolContainerfile: + type: object + description: >- + A containerfile is a document that describes how to build a particular + container image. Examples include Dockerfiles for creating Docker images + and Singularity recipes for Singularity images + required: + - containerfile + properties: + containerfile: + type: string + description: The container specification for this tool. + url: + type: string + description: >- + Optional url to the file used to build this image, should include + version information, and can include a git hash (e.g. + https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile + ) + Metadata: + type: object + description: Describes this registry to better allow for mirroring and indexing. + required: + - version + - api_version + properties: + version: + type: string + description: The version of this registry + api_version: + type: string + description: >- + The version of the GA4GH tool-registry API supported by this + registry + country: + type: string + description: A country code for the registry (ISO 3166-1 alpha-3) + friendly_name: + type: string + description: >- + A friendly name that can be used in addition to the hostname to + describe a registry + Error: + type: object + required: + - code + properties: + code: + type: integer + format: int32 + default: 500 + message: + type: string + default: Internal Server Error + From 7c69d030644f895ab609b59fad016501c9ed3bd4 Mon Sep 17 00:00:00 2001 From: garyluu Date: Tue, 20 Feb 2018 16:52:42 -0500 Subject: [PATCH 025/102] Add terms of service placeholder --- src/main/resources/swagger/ga4gh-tool-discovery-openAPI3.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery-openAPI3.yaml b/src/main/resources/swagger/ga4gh-tool-discovery-openAPI3.yaml index 8d5b8da3..16e36f18 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery-openAPI3.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery-openAPI3.yaml @@ -17,6 +17,7 @@ info: workflows that reference containers in formats such as Docker or Singularity. version: 2.0.0 + termsOfService: https://example.com/terms/ tags: - name: GA4GH description: A set of resources proposed as a common standard for tool repositories From 7299f055367967222034f8538ad9e9e09a7cdbc1 Mon Sep 17 00:00:00 2001 From: garyluu Date: Tue, 13 Mar 2018 16:42:18 -0400 Subject: [PATCH 026/102] Revert initial openapi.yaml --- .../ga4gh-tool-discovery-openAPI3.yaml | 841 ------------------ 1 file changed, 841 deletions(-) delete mode 100644 src/main/resources/swagger/ga4gh-tool-discovery-openAPI3.yaml diff --git a/src/main/resources/swagger/ga4gh-tool-discovery-openAPI3.yaml b/src/main/resources/swagger/ga4gh-tool-discovery-openAPI3.yaml deleted file mode 100644 index 16e36f18..00000000 --- a/src/main/resources/swagger/ga4gh-tool-discovery-openAPI3.yaml +++ /dev/null @@ -1,841 +0,0 @@ -openapi: 3.0.0 -servers: - - url: /api/ga4gh/v2 -info: - title: GA4GH Tool Discovery API - description: >- - Proposed API for GA4GH (Global Alliance for Genomics & Health) tool - repositories. A tool consists of a set of container images that are paired - with a set of documents (examples include CWL (Common Workflow Language) or - WDL (Workflow Description Language) or NFL (Nextflow)) that describe how to - use those images and a set of specifications for those images (examples are - Dockerfiles or Singularity recipes) that describe how to re-produce those - images in the future. We use the following terminology, a "container image" - describes a container as stored at rest on a filesystem, a "tool" describes - one of the triples as described above. In practice, examples of "tools" - include CWL CommandLineTools, CWL Workflows, WDL workflows, and Nextflow - workflows that reference containers in formats such as Docker or - Singularity. - version: 2.0.0 - termsOfService: https://example.com/terms/ -tags: - - name: GA4GH - description: A set of resources proposed as a common standard for tool repositories -paths: - '/tools/{id}': - get: - summary: 'List one specific tool, acts as an anchor for self references' - description: >- - This endpoint returns one specific tool (which has ToolVersions nested - inside it) - tags: - - GA4GH - parameters: - - name: id - in: path - required: true - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456` - schema: - type: string - responses: - '200': - description: A tool. - content: - application/json: - schema: - $ref: '#/components/schemas/Tool' - text/plain: - schema: - $ref: '#/components/schemas/Tool' - '404': - description: The tool can not be found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - text/plain: - schema: - $ref: '#/components/schemas/Error' - '/tools/{id}/versions': - get: - summary: List versions of a tool - description: Returns all versions of the specified tool - tags: - - GA4GH - parameters: - - name: id - in: path - required: true - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456` - schema: - type: string - responses: - '200': - description: An array of tool versions - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ToolVersion' - text/plain: - schema: - type: array - items: - $ref: '#/components/schemas/ToolVersion' - '/tools/{id}/versions/{version_id}': - get: - summary: 'List one specific tool version, acts as an anchor for self references' - description: This endpoint returns one specific tool version - tags: - - GA4GH - parameters: - - name: id - in: path - required: true - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456` - schema: - type: string - - name: version_id - in: path - required: true - description: >- - An identifier of the tool version, scoped to this registry, for - example `v1` - schema: - type: string - responses: - '200': - description: A tool version. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolVersion' - text/plain: - schema: - $ref: '#/components/schemas/ToolVersion' - '404': - description: The tool can not be found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - text/plain: - schema: - $ref: '#/components/schemas/Error' - /tools: - get: - summary: List all tools - description: > - This endpoint returns all tools available or a filtered subset using - metadata query parameters. - tags: - - GA4GH - parameters: - - name: id - in: query - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456` - schema: - type: string - - name: registry - in: query - description: The image registry that contains the image. - schema: - type: string - - name: organization - in: query - description: The organization in the registry that published the image. - schema: - type: string - - name: name - in: query - description: The name of the image. - schema: - type: string - - name: toolname - in: query - description: The name of the tool. - schema: - type: string - - name: description - in: query - description: The description of the tool. - schema: - type: string - - name: author - in: query - description: >- - The author of the tool (TODO a thought occurs, are we assuming that - the author of the CWL and the image are the same?). - schema: - type: string - - $ref: '#/components/parameters/offset' - - $ref: '#/components/parameters/limit' - responses: - '200': - description: An array of Tools that match the filter. - headers: - next_page: - description: >- - A URL that can be used to reach the next page based on the - current offset and page record limit - schema: - type: string - last_page: - description: >- - A URL that can be used to reach the last page based on the - current page record limit - schema: - type: string - self_link: - description: A URL that can be used to return to the current page later - schema: - type: string - current_offset: - description: The current start index of the paging used for this result - schema: - type: string - current_limit: - description: The current page record limit used for this result - schema: - type: integer - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Tool' - text/plain: - schema: - type: array - items: - $ref: '#/components/schemas/Tool' - '/tools/{id}/versions/{version_id}/{type}/descriptor': - get: - summary: Get the tool descriptor for the specified tool. - description: >- - Returns the descriptor for the specified tool (examples include WDL, - CWL, or Nextflow documents). - tags: - - GA4GH - parameters: - - name: type - required: true - in: path - description: >- - The output type of the descriptor. If not specified it is up to the - underlying implementation to determine which output type to return. - Plain types return the bare descriptor while the "non-plain" types - return a descriptor wrapped with metadata. Allowable values include - "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". - schema: - type: string - - name: id - in: path - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456` - required: true - schema: - type: string - - name: version_id - in: path - required: true - description: >- - An identifier of the tool version for this particular tool registry, - for example `v1` - schema: - type: string - responses: - '200': - description: The tool descriptor. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolDescriptor' - text/plain: - schema: - $ref: '#/components/schemas/ToolDescriptor' - '404': - description: The tool descriptor can not be found. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - text/plain: - schema: - $ref: '#/components/schemas/Error' - '/tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}': - get: - summary: Get additional tool descriptor files relative to the main file - description: >- - Descriptors can often include imports that refer to additional - descriptors. This returns additional descriptors for the specified tool - in the same or other directories that can be reached as a relative path. - This endpoint can be useful for workflow engine implementations like - cwltool to programmatically download all the descriptors for a tool and - run it - tags: - - GA4GH - parameters: - - name: type - in: path - required: true - description: >- - The output type of the descriptor. If not specified it is up to the - underlying implementation to determine which output type to return. - Plain types return the bare descriptor while the "non-plain" types - return a descriptor wrapped with metadata. Allowable values are - "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". - schema: - type: string - - name: id - in: path - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456` - required: true - schema: - type: string - - name: version_id - in: path - required: true - description: >- - An identifier of the tool version for this particular tool registry, - for example `v1` - schema: - type: string - - name: relative_path - in: path - required: true - description: >- - A relative path to the additional file (same directory or - subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from - the same directory as the main descriptor. 'nestedDirectory/foo.cwl' - would return the file from a nested subdirectory - schema: - type: string - responses: - '200': - description: The tool descriptor. - content: - application/json: - schema: - $ref: '#/components/schemas/ToolDescriptor' - text/plain: - schema: - $ref: '#/components/schemas/ToolDescriptor' - '404': - description: The tool can not be output in the specified type. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - text/plain: - schema: - $ref: '#/components/schemas/Error' - '/tools/{id}/versions/{version_id}/{type}/tests': - get: - summary: >- - Get an array of test JSONs (these allow you to execute the tool - successfully) suitable for use with this descriptor type. - tags: - - GA4GH - parameters: - - name: type - required: true - in: path - description: >- - The type of the underlying descriptor. Allowable values include - "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". For - example, "CWL" would return an array of ToolTests objects while - "PLAIN_CWL" would return a bare JSON array with the content of the - tests. - schema: - type: string - - name: id - in: path - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456` - required: true - schema: - type: string - - name: version_id - in: path - required: true - description: >- - An identifier of the tool version for this particular tool registry, - for example `v1` - schema: - type: string - responses: - '200': - description: The tool test JSON response. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ToolTests' - text/plain: - schema: - type: array - items: - $ref: '#/components/schemas/ToolTests' - '404': - description: The tool can not be output in the specified type. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - text/plain: - schema: - $ref: '#/components/schemas/Error' - '/tools/{id}/versions/{version_id}/{type}/files': - get: - summary: >- - Get an array of objects that contain the relative path and file type. - The descriptors are intended for use with the - /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} - endpoint. - tags: - - GA4GH - parameters: - - name: type - required: true - in: path - description: >- - The output type of the descriptor. Examples of allowable values are - "CWL", "WDL", and "NextFlow." - schema: - type: string - - name: id - in: path - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456` - required: true - schema: - type: string - - name: version_id - in: path - required: true - description: >- - An identifier of the tool version for this particular tool registry, - for example `v1` - schema: - type: string - responses: - '200': - description: The array of File JSON responses. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ToolFile' - text/plain: - schema: - type: array - items: - $ref: '#/components/schemas/ToolFile' - '404': - description: The tool can not be output in the specified type. - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - text/plain: - schema: - $ref: '#/components/schemas/Error' - '/tools/{id}/versions/{version_id}/containerfile': - get: - summary: Get the container specification(s) for the specified image. - description: >- - Returns the container specifications(s) for the specified image. For - example, a CWL CommandlineTool can be associated with one specification - for a container, a CWL Workflow can be associated with multiple - specifications for containers - tags: - - GA4GH - parameters: - - name: id - in: path - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456` - required: true - schema: - type: string - - name: version_id - in: path - required: true - description: >- - An identifier of the tool version for this particular tool registry, - for example `v1` - schema: - type: string - responses: - '200': - description: The tool payload. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ToolContainerfile' - text/plain: - schema: - type: array - items: - $ref: '#/components/schemas/ToolContainerfile' - '404': - description: There are no container specifications for this tool - content: - application/json: - schema: - $ref: '#/components/schemas/Error' - text/plain: - schema: - $ref: '#/components/schemas/Error' - /metadata: - get: - summary: Return some metadata that is useful for describing this registry - description: Return some metadata that is useful for describing this registry - tags: - - GA4GH - responses: - '200': - description: A Metadata object describing this service. - content: - application/json: - schema: - $ref: '#/components/schemas/Metadata' - text/plain: - schema: - $ref: '#/components/schemas/Metadata' - /toolClasses: - get: - summary: List all tool types - description: | - This endpoint returns all tool-classes available - tags: - - GA4GH - responses: - '200': - description: A list of potential tool classes. - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ToolClass' - text/plain: - schema: - type: array - items: - $ref: '#/components/schemas/ToolClass' -externalDocs: - description: Description of GA4GH Tool Registry (Exchange) Schema - url: 'https://github.com/ga4gh/tool-registry-schemas' -components: - parameters: - limit: - name: limit - in: query - description: Amount of records to return in a given page. By default it is 1000. - schema: - type: integer - format: int32 - offset: - name: offset - in: query - description: >- - Start index of paging. Pagination results can be based on numbers or - other values chosen by the registry implementor (for example, SHA - values). If this exceeds the current result set return an empty set. If - not specified in the request this will start at the beginning of the - results. - schema: - type: string - schemas: - ToolFile: - type: object - properties: - path: - type: string - description: >- - Relative path of the file. A descriptor's path can be used with the - GA4GH .../{type}/descriptor/{relative_path} endpoint - file_type: - type: string - enum: - - TEST_FILE - - PRIMARY_DESCRIPTOR - - SECONDARY_DESCRIPTOR - - CONTAINERFILE - - OTHER - ToolClass: - type: object - description: >- - Describes a class (type) of tool allowing us to categorize workflows, - tasks, and maybe even other entities (such as services) separately - properties: - id: - type: string - description: The unique identifier for the class - name: - type: string - description: A short friendly name for the class - description: - type: string - description: >- - A longer explanation of what this class is and what it can - accomplish - Tool: - type: object - description: >- - A tool (or described tool) is defined as a tuple of a descriptor file - (which potentially consists of multiple files), a set of container - images, and a set of instructions for creating those images. - required: - - url - - id - - organization - - author - - meta_version - - toolclass - - versions - properties: - url: - type: string - description: >- - The URL for this tool in this registry, for example - `http://agora.broadinstitute.org/tools/123456` - id: - type: string - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456` or `123456_v1` - organization: - type: string - description: The organization that published the image. - toolname: - type: string - description: The name of the tool. - toolclass: - $ref: '#/components/schemas/ToolClass' - description: - type: string - description: The description of the tool. - author: - type: string - description: >- - Contact information for the author of this tool entry in the - registry. (More complex authorship information is handled by the - descriptor) - meta_version: - type: string - description: >- - The version of this tool in the registry. Iterates when fields like - the description, author, etc. are updated. - contains: - description: >- - An array of IDs for the applications that are stored inside this - tool (for example `https://bio.tools/tool/mytum.de/SNAP2/1`) - type: array - items: - type: string - verified: - type: boolean - description: >- - Reports whether this tool has been verified by a specific - organization or individual - verified_source: - type: string - description: >- - Source of metadata that can support a verified tool, such as an - email or URL - signed: - type: boolean - description: Reports whether this tool has been signed. - versions: - description: A list of versions for this tool - type: array - items: - $ref: '#/components/schemas/ToolVersion' - ToolVersion: - type: object - description: >- - A tool version describes a particular iteration of a tool as described - by a reference to a specific image and/or documents. - required: - - url - - id - - meta_version - properties: - name: - type: string - description: The name of the version. - url: - type: string - description: >- - The URL for this tool in this registry, for example - `http://agora.broadinstitute.org/tools/123456/1` - id: - type: string - description: >- - An identifier of the version of this tool for this particular tool - registry, for example `v1` - image: - type: string - description: >- - The docker path to the image (and version) for this tool. (e.g. - quay.io/seqware/seqware_full/1.1) - registry_url: - type: string - description: >- - A URL to a Singularity registry is provided when a specific type of - image does not use ids in the Docker format. Used along with - image_name to locate a specific image. - image_name: - type: string - description: Used in conjunction with a registry_url if provided to locate images - descriptor_type: - type: array - description: The type (or types) of descriptors available. - items: - $ref: '#/components/schemas/DescriptorType' - containerfile: - type: boolean - description: Reports if this tool has a containerfile available. - meta_version: - type: string - description: >- - The version of this tool version in the registry. Iterates when - fields like the description, author, etc. are updated. - verified: - type: boolean - description: >- - Reports whether this tool has been verified by a specific - organization or individual - verified_source: - type: string - description: >- - Source of metadata that can support a verified tool, such as an - email or URL - DescriptorType: - type: string - description: >- - The type of descriptor that represents this version of the tool (e.g. - CWL, WDL, or NFL). - enum: - - CWL - - WDL - - NFL - ToolDescriptor: - type: object - description: >- - A tool descriptor is a metadata document that describes one or more - tools. - required: - - type - properties: - type: - $ref: '#/components/schemas/DescriptorType' - descriptor: - type: string - description: The descriptor that represents this version of the tool. - url: - type: string - description: >- - Optional url to the underlying tool descriptor, should include - version information, and can include a git hash (e.g. - https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl - ) - ToolTests: - type: object - description: >- - A tool document that describes how to test with one or more sample test - JSON. - properties: - test: - type: string - description: >- - Optional test JSON content for this tool. (Note that one of test and - URL are required) - url: - type: string - description: >- - Optional url to the test JSON used to test this tool. Note that this - URL should resolve to the raw unwrapped content that would otherwise - be available in test. - test-tool-url: - type: string - description: >- - Optional url to the test workflow that will exit successfully if - this workflow produced the expected result given this test data. - ToolContainerfile: - type: object - description: >- - A containerfile is a document that describes how to build a particular - container image. Examples include Dockerfiles for creating Docker images - and Singularity recipes for Singularity images - required: - - containerfile - properties: - containerfile: - type: string - description: The container specification for this tool. - url: - type: string - description: >- - Optional url to the file used to build this image, should include - version information, and can include a git hash (e.g. - https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile - ) - Metadata: - type: object - description: Describes this registry to better allow for mirroring and indexing. - required: - - version - - api_version - properties: - version: - type: string - description: The version of this registry - api_version: - type: string - description: >- - The version of the GA4GH tool-registry API supported by this - registry - country: - type: string - description: A country code for the registry (ISO 3166-1 alpha-3) - friendly_name: - type: string - description: >- - A friendly name that can be used in addition to the hostname to - describe a registry - Error: - type: object - required: - - code - properties: - code: - type: integer - format: int32 - default: 500 - message: - type: string - default: Internal Server Error - From e2c179fc873489576b037c1081198d331e72ca16 Mon Sep 17 00:00:00 2001 From: garyluu Date: Tue, 13 Mar 2018 16:40:12 -0400 Subject: [PATCH 027/102] Install swagger2openapi --- .travis.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..ab4f2902 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,9 @@ +language: node_js +node_js: + - "lts/*" + +install: + - npm i -g swagger2openapi + +script: + - swagger2openapi src/main/resources/swagger/ga4gh-tool-discovery.yaml -o src/main/resources/swagger/openapi.yaml From 799effb8b990749d57b070014118d18b22fa0ef7 Mon Sep 17 00:00:00 2001 From: garyluu Date: Tue, 13 Mar 2018 17:12:40 -0400 Subject: [PATCH 028/102] Initial deploy key test --- .travis.yml | 14 ++++++++++++++ github_deploy_key.enc | Bin 0 -> 3248 bytes 2 files changed, 14 insertions(+) create mode 100644 github_deploy_key.enc diff --git a/.travis.yml b/.travis.yml index ab4f2902..77c600c0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,3 +7,17 @@ install: script: - swagger2openapi src/main/resources/swagger/ga4gh-tool-discovery.yaml -o src/main/resources/swagger/openapi.yaml + +before_install: + - openssl aes-256-cbc -K $encrypted_f356a5c69655_key -iv $encrypted_f356a5c69655_iv -in github_deploy_key.enc -out github_deploy_key -d + +after_success: + - eval "$(ssh-agent)" + - chmod 600 github_deploy_key + - ssh-add github_deploy_key + - git checkout -B ${TRAVIS_BRANCH} + - git add src/main/resources/swagger/openapi.yaml + - git commit -m "OpenAPI changed" + - echo "Pushing changes" + - git push git@github.com:ga4gh/tool-registry-service-schemas ${TRAVIS_BRANCH} + diff --git a/github_deploy_key.enc b/github_deploy_key.enc new file mode 100644 index 0000000000000000000000000000000000000000..010bb9feed50f1dd66e36e59f9ad4fb8a0c2da82 GIT binary patch literal 3248 zcmV;h3{Ue3PJ&RjfjrV19A>9EDI68X9@^6T4gx=1WS6Rt6(Vg$L$mkTWvZndTCeD( z6di~UXhkWHF0q@AE|_w=momVWD+Z?1kK?utu=4Vg&#v5hCx4x6ccDjtsyT?~&)5_mw`$xEG@>;?H zCctZt)#P6aUl{LpxCF$6VV0NwA{0fNhf$?Sy_#h*RY(6_JOj2Tf3A4Gg!i2hi#SYw zFpqFIkWWnF!iOQp4DvWI>%aTLK-4c}dZOJ1+^SEZoqb;>?gh>}Nc)A$NGoVf-`uCn z+hO6#{%}jUTSr(36LpfQVtR5(&SHU4RJo!hHdyTwKlu1ny~1fqT^% zm&No9C*=IuA|k$+WAI*>cJyWP$oESxE2`Fgl+7h2^v#>QOL-r{*BH!c$X7{@7w^oh z7IBqLrDpjeHmkTYFdhp=cQx&j7?#Ol_A1)l?`|G1cyantl0gL_a#qX>vZJvW;DJn&vdUrPU;Fm&SS@LjS|j?dn4 zMLsvsl)eLWt^%u5&6jF>aA~eZvy{@wtyRg;>efU6+8uJfbzMvAx#_eke2fnY*WP1! z&j$9SU|kKxQe|pF;2m3F=>;vuCcv_Kn|u`bmKIZ$%1j8Sb%|QscC@iW%#C@9Sui@e zIoRzL|BcF;{onzobl_+(Zk33wMt8b8&QP@8w#Gngn8Gr(kzgLJ#22aa zf2r__yp3w{6gJzv=?4pv!e;{TlOLM*oWsAWHV#xOA>fh`C7hT)6K@2lkV&Fjch}2N z%Q`z``YxvMiieHiEA!U-%7JQSu9-Qd!y~PrdyN_s`}t)W9R&_|GFn3RA+$`5K^Y;a zzTOi^Pd8yy1q-Obf1&W)M(-$OM!m&ad0hn~cil$b)wM|antHzINL3>?p+$D&rCP>^ z(Dw)?{|&NnfQdxAJU%-_xb&XD;C1*4<<-0@xC|2jM1bS5as@t8eU#jqyZ3xrwuYOx z%RYlJbYRb<)v4*WqF+;)b4@d(Rd4BR=OCYYjQ~gGDsdhv7vc z+sl=5?34Eyf(`m@V_L1=siHDq%P2aVd&s6k2vM}Cp*OEa;xTDmsK*REvfwAG-ntjk zP=O3QbD32Rd=2dB$2oL*W43-*5V6Tf8(_%IM63PP)G_C4=qT7|}Vu9_-I$ zGa{g7!7n$f!|UFPe}DS;Punfc_jW5kaDuacxRBZ0xYrCRLi<(@Jzp&#sbd=Q188uH z6qoEp={PWkMgH-9n@|J^%NS73Y~+bY`V$jcV0 ztx8N$%jL827$0ywDlN!5!)43;B=#tm;XFz^@Mt?~3dQ+Wy0W6E9#OKmH_>X>yy>}< zs7p@BOjT2_#{fL(1zjf#Jf>|5J;Uq}@Oc-+sY*2!|GJOnfdHpv$~73qg7;r&x6UMT z_j^MJH#u4a1={i4ijO%9$lab`VMRb!;}246m6A&#oX$&M4T;z%;SpE!C2#W>XJDsk z{7HPg^nd{w6uml95uJ#nF)|M(*mb@efbHj*f{j_I<0p5+Z5JDeVVXd)53go_5a6YH zZ`>1ia=f9OP-WGRdub;utb;D%MY{U0B9+mbHa+O#a7Azjf{QZfB+GCKi{u{Vsg~^> z5=jDsST_7YM%WL+Rqy*lHnXPr8_FxPqY@V+ZNt;v49pj}UcRBD{bDApuMypD_tzE0 zZ%tiEBuz|Z#@4VQTV1s-VQU!eZ~@mj5~$6>xbQC})D-MBt20}%V`#a*8*G!Rkvcij zh7zsk7si4>#$_@*J@OPsmES$8Nb4&i{~Ao^eB?u>_u6GrH5_h0<$^Fvu@w_IMZQ0; z48^ljna4Dl>Fr_u9{p4?mO)W8%shY{Q5hV^b@+nY;j{7Lb9e{v0$FLsyb#!gNzsR& z2ORYVMnYMLr3@~Up-+=K@bCU8g;4fjXmZKz<^IU-P_Us=Z%he@D2Y!Rd9!+BoPChX z$wLrgVbqks_voao8%tw02DWC{qjhEirgXdlKTap-nJbMhR1;Dm4lzD~mPX}~ueelk zRg-P-3v5C+iAAm?SsfOyQpxD%{)K~bO1TXJ4W&*_!D5j(6}jcc{;0c78Ux&CGW{i# zXG32S%i(Sc=wO{W)Pa`b{TPXDfR;DXF{F^!} z#G`dUQ4NDLyjpoxU5G3DrigBDTz?OB5tu|m@N_k48m6GwHEb7nmA9J&78$ts_)9Ox zC|C(Qs~dkgUF`6GM8m3>OTMSjdNKEAnA1yzea?CA1sS0MVM1Eu<|D=o+Db=q2i1zJO!)``uR6Z0*drc!zgh39gUjZmXD zzkqY~{p7SDD==DiW(9p?oaPRN;RNyFPFR()1xFMya%MD>H@o~kqo;gnU240YYo3&K z3JU!?A8{oLk_sDOHCPj`9vn5C@aK5(>_f=`@`QS{LMK);(QojR*2D;BX5U_kVWI{= z=_pZy0ptHv`_Gs2d-w8OCU@s$dbikd(*LbNeuQfW!9t%Eo_SMfBWBNe{gvMHonZIF zh$i0*DB4j31vh!!Nhz!%eA8%FSO17|zgST`F2#Zei0VD1OPQZa_rCm;su=W86Ikz@ z@DahCL6>h;(4i9)rxMITG2xVWjycKH43-+ucUgT{>{}h|iO_$_nOq46sb?Q%iJ&zM zjT*R|zh-2JnX#kQ>I9CUGM4m`G;d1@s;$=1VtlV*Bzc3YAukPCtu%Ekg<+yALPaL@ zcb~bYP!1(c+-{l{N@B9u>G6&s{uM@Yg|k zLesDjo)A5Yx<6XQ+k#x~dm$s%>QB$IAFU}hvfrb7&#Ta>GH|dIC!dMx> zW$cB6D>;E^$gToqAs*$=i$>QZn{u?><+Tk)LWq}LpHVVRcxGu^Q}zIUrAuwUhMu@y z$Noj>7gc+~$YIMIs%Y Date: Tue, 13 Mar 2018 21:34:57 +0000 Subject: [PATCH 029/102] OpenAPI changed --- src/main/resources/swagger/openapi.yaml | 839 ++++++++++++++++++++++++ 1 file changed, 839 insertions(+) create mode 100644 src/main/resources/swagger/openapi.yaml diff --git a/src/main/resources/swagger/openapi.yaml b/src/main/resources/swagger/openapi.yaml new file mode 100644 index 00000000..0ee0acf9 --- /dev/null +++ b/src/main/resources/swagger/openapi.yaml @@ -0,0 +1,839 @@ +openapi: 3.0.0 +info: + title: GA4GH Tool Discovery API + description: >- + Proposed API for GA4GH (Global Alliance for Genomics & Health) tool + repositories. A tool consists of a set of container images that are paired + with a set of documents (examples include CWL (Common Workflow Language) or + WDL (Workflow Description Language) or NFL (Nextflow)) that describe how to + use those images and a set of specifications for those images (examples are + Dockerfiles or Singularity recipes) that describe how to re-produce those + images in the future. We use the following terminology, a "container image" + describes a container as stored at rest on a filesystem, a "tool" describes + one of the triples as described above. In practice, examples of "tools" + include CWL CommandLineTools, CWL Workflows, WDL workflows, and Nextflow + workflows that reference containers in formats such as Docker or + Singularity. + version: 2.0.0 +tags: + - name: GA4GH + description: A set of resources proposed as a common standard for tool repositories +paths: + '/tools/{id}': + get: + summary: 'List one specific tool, acts as an anchor for self references' + description: >- + This endpoint returns one specific tool (which has ToolVersions nested + inside it) + tags: + - GA4GH + parameters: + - name: id + in: path + required: true + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + schema: + type: string + responses: + '200': + description: A tool. + content: + application/json: + schema: + $ref: '#/components/schemas/Tool' + text/plain: + schema: + $ref: '#/components/schemas/Tool' + '404': + description: The tool can not be found. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + '/tools/{id}/versions': + get: + summary: List versions of a tool + description: Returns all versions of the specified tool + tags: + - GA4GH + parameters: + - name: id + in: path + required: true + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + schema: + type: string + responses: + '200': + description: An array of tool versions + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ToolVersion' + text/plain: + schema: + type: array + items: + $ref: '#/components/schemas/ToolVersion' + '/tools/{id}/versions/{version_id}': + get: + summary: 'List one specific tool version, acts as an anchor for self references' + description: This endpoint returns one specific tool version + tags: + - GA4GH + parameters: + - name: id + in: path + required: true + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + schema: + type: string + - name: version_id + in: path + required: true + description: >- + An identifier of the tool version, scoped to this registry, for + example `v1` + schema: + type: string + responses: + '200': + description: A tool version. + content: + application/json: + schema: + $ref: '#/components/schemas/ToolVersion' + text/plain: + schema: + $ref: '#/components/schemas/ToolVersion' + '404': + description: The tool can not be found. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + /tools: + get: + summary: List all tools + description: > + This endpoint returns all tools available or a filtered subset using + metadata query parameters. + tags: + - GA4GH + parameters: + - name: id + in: query + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + schema: + type: string + - name: registry + in: query + description: The image registry that contains the image. + schema: + type: string + - name: organization + in: query + description: The organization in the registry that published the image. + schema: + type: string + - name: name + in: query + description: The name of the image. + schema: + type: string + - name: toolname + in: query + description: The name of the tool. + schema: + type: string + - name: description + in: query + description: The description of the tool. + schema: + type: string + - name: author + in: query + description: >- + The author of the tool (TODO a thought occurs, are we assuming that + the author of the CWL and the image are the same?). + schema: + type: string + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/limit' + responses: + '200': + description: An array of Tools that match the filter. + headers: + next_page: + description: >- + A URL that can be used to reach the next page based on the + current offset and page record limit + schema: + type: string + last_page: + description: >- + A URL that can be used to reach the last page based on the + current page record limit + schema: + type: string + self_link: + description: A URL that can be used to return to the current page later + schema: + type: string + current_offset: + description: The current start index of the paging used for this result + schema: + type: string + current_limit: + description: The current page record limit used for this result + schema: + type: integer + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Tool' + text/plain: + schema: + type: array + items: + $ref: '#/components/schemas/Tool' + '/tools/{id}/versions/{version_id}/{type}/descriptor': + get: + summary: Get the tool descriptor for the specified tool. + description: >- + Returns the descriptor for the specified tool (examples include WDL, + CWL, or Nextflow documents). + tags: + - GA4GH + parameters: + - name: type + required: true + in: path + description: >- + The output type of the descriptor. If not specified it is up to the + underlying implementation to determine which output type to return. + Plain types return the bare descriptor while the "non-plain" types + return a descriptor wrapped with metadata. Allowable values include + "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". + schema: + type: string + - name: id + in: path + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + required: true + schema: + type: string + - name: version_id + in: path + required: true + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` + schema: + type: string + responses: + '200': + description: The tool descriptor. + content: + application/json: + schema: + $ref: '#/components/schemas/ToolDescriptor' + text/plain: + schema: + $ref: '#/components/schemas/ToolDescriptor' + '404': + description: The tool descriptor can not be found. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + '/tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}': + get: + summary: Get additional tool descriptor files relative to the main file + description: >- + Descriptors can often include imports that refer to additional + descriptors. This returns additional descriptors for the specified tool + in the same or other directories that can be reached as a relative path. + This endpoint can be useful for workflow engine implementations like + cwltool to programmatically download all the descriptors for a tool and + run it + tags: + - GA4GH + parameters: + - name: type + in: path + required: true + description: >- + The output type of the descriptor. If not specified it is up to the + underlying implementation to determine which output type to return. + Plain types return the bare descriptor while the "non-plain" types + return a descriptor wrapped with metadata. Allowable values are + "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". + schema: + type: string + - name: id + in: path + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + required: true + schema: + type: string + - name: version_id + in: path + required: true + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` + schema: + type: string + - name: relative_path + in: path + required: true + description: >- + A relative path to the additional file (same directory or + subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from + the same directory as the main descriptor. 'nestedDirectory/foo.cwl' + would return the file from a nested subdirectory + schema: + type: string + responses: + '200': + description: The tool descriptor. + content: + application/json: + schema: + $ref: '#/components/schemas/ToolDescriptor' + text/plain: + schema: + $ref: '#/components/schemas/ToolDescriptor' + '404': + description: The tool can not be output in the specified type. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + '/tools/{id}/versions/{version_id}/{type}/tests': + get: + summary: >- + Get an array of test JSONs (these allow you to execute the tool + successfully) suitable for use with this descriptor type. + tags: + - GA4GH + parameters: + - name: type + required: true + in: path + description: >- + The type of the underlying descriptor. Allowable values include + "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". For + example, "CWL" would return an array of ToolTests objects while + "PLAIN_CWL" would return a bare JSON array with the content of the + tests. + schema: + type: string + - name: id + in: path + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + required: true + schema: + type: string + - name: version_id + in: path + required: true + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` + schema: + type: string + responses: + '200': + description: The tool test JSON response. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ToolTests' + text/plain: + schema: + type: array + items: + $ref: '#/components/schemas/ToolTests' + '404': + description: The tool can not be output in the specified type. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + '/tools/{id}/versions/{version_id}/{type}/files': + get: + summary: >- + Get an array of objects that contain the relative path and file type. + The descriptors are intended for use with the + /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} + endpoint. + tags: + - GA4GH + parameters: + - name: type + required: true + in: path + description: >- + The output type of the descriptor. Examples of allowable values are + "CWL", "WDL", and "NextFlow." + schema: + type: string + - name: id + in: path + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + required: true + schema: + type: string + - name: version_id + in: path + required: true + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` + schema: + type: string + responses: + '200': + description: The array of File JSON responses. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ToolFile' + text/plain: + schema: + type: array + items: + $ref: '#/components/schemas/ToolFile' + '404': + description: The tool can not be output in the specified type. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + '/tools/{id}/versions/{version_id}/containerfile': + get: + summary: Get the container specification(s) for the specified image. + description: >- + Returns the container specifications(s) for the specified image. For + example, a CWL CommandlineTool can be associated with one specification + for a container, a CWL Workflow can be associated with multiple + specifications for containers + tags: + - GA4GH + parameters: + - name: id + in: path + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` + required: true + schema: + type: string + - name: version_id + in: path + required: true + description: >- + An identifier of the tool version for this particular tool registry, + for example `v1` + schema: + type: string + responses: + '200': + description: The tool payload. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ToolContainerfile' + text/plain: + schema: + type: array + items: + $ref: '#/components/schemas/ToolContainerfile' + '404': + description: There are no container specifications for this tool + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + text/plain: + schema: + $ref: '#/components/schemas/Error' + /metadata: + get: + summary: Return some metadata that is useful for describing this registry + description: Return some metadata that is useful for describing this registry + tags: + - GA4GH + responses: + '200': + description: A Metadata object describing this service. + content: + application/json: + schema: + $ref: '#/components/schemas/Metadata' + text/plain: + schema: + $ref: '#/components/schemas/Metadata' + /toolClasses: + get: + summary: List all tool types + description: | + This endpoint returns all tool-classes available + tags: + - GA4GH + responses: + '200': + description: A list of potential tool classes. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ToolClass' + text/plain: + schema: + type: array + items: + $ref: '#/components/schemas/ToolClass' +externalDocs: + description: Description of GA4GH Tool Registry (Exchange) Schema + url: 'https://github.com/ga4gh/tool-registry-schemas' +servers: + - url: /api/ga4gh/v2 +components: + parameters: + limit: + name: limit + in: query + description: Amount of records to return in a given page. By default it is 1000. + schema: + type: integer + format: int32 + offset: + name: offset + in: query + description: >- + Start index of paging. Pagination results can be based on numbers or + other values chosen by the registry implementor (for example, SHA + values). If this exceeds the current result set return an empty set. If + not specified in the request this will start at the beginning of the + results. + schema: + type: string + schemas: + ToolFile: + type: object + properties: + path: + type: string + description: >- + Relative path of the file. A descriptor's path can be used with the + GA4GH .../{type}/descriptor/{relative_path} endpoint + file_type: + type: string + enum: + - TEST_FILE + - PRIMARY_DESCRIPTOR + - SECONDARY_DESCRIPTOR + - CONTAINERFILE + - OTHER + ToolClass: + type: object + description: >- + Describes a class (type) of tool allowing us to categorize workflows, + tasks, and maybe even other entities (such as services) separately + properties: + id: + type: string + description: The unique identifier for the class + name: + type: string + description: A short friendly name for the class + description: + type: string + description: >- + A longer explanation of what this class is and what it can + accomplish + Tool: + type: object + description: >- + A tool (or described tool) is defined as a tuple of a descriptor file + (which potentially consists of multiple files), a set of container + images, and a set of instructions for creating those images. + required: + - url + - id + - organization + - author + - meta_version + - toolclass + - versions + properties: + url: + type: string + description: >- + The URL for this tool in this registry, for example + `http://agora.broadinstitute.org/tools/123456` + id: + type: string + description: >- + A unique identifier of the tool, scoped to this registry, for + example `123456` or `123456_v1` + organization: + type: string + description: The organization that published the image. + toolname: + type: string + description: The name of the tool. + toolclass: + $ref: '#/components/schemas/ToolClass' + description: + type: string + description: The description of the tool. + author: + type: string + description: >- + Contact information for the author of this tool entry in the + registry. (More complex authorship information is handled by the + descriptor) + meta_version: + type: string + description: >- + The version of this tool in the registry. Iterates when fields like + the description, author, etc. are updated. + contains: + description: >- + An array of IDs for the applications that are stored inside this + tool (for example `https://bio.tools/tool/mytum.de/SNAP2/1`) + type: array + items: + type: string + verified: + type: boolean + description: >- + Reports whether this tool has been verified by a specific + organization or individual + verified_source: + type: string + description: >- + Source of metadata that can support a verified tool, such as an + email or URL + signed: + type: boolean + description: Reports whether this tool has been signed. + versions: + description: A list of versions for this tool + type: array + items: + $ref: '#/components/schemas/ToolVersion' + ToolVersion: + type: object + description: >- + A tool version describes a particular iteration of a tool as described + by a reference to a specific image and/or documents. + required: + - url + - id + - meta_version + properties: + name: + type: string + description: The name of the version. + url: + type: string + description: >- + The URL for this tool in this registry, for example + `http://agora.broadinstitute.org/tools/123456/1` + id: + type: string + description: >- + An identifier of the version of this tool for this particular tool + registry, for example `v1` + image: + type: string + description: >- + The docker path to the image (and version) for this tool. (e.g. + quay.io/seqware/seqware_full/1.1) + registry_url: + type: string + description: >- + A URL to a Singularity registry is provided when a specific type of + image does not use ids in the Docker format. Used along with + image_name to locate a specific image. + image_name: + type: string + description: Used in conjunction with a registry_url if provided to locate images + descriptor_type: + type: array + description: The type (or types) of descriptors available. + items: + $ref: '#/components/schemas/DescriptorType' + containerfile: + type: boolean + description: Reports if this tool has a containerfile available. + meta_version: + type: string + description: >- + The version of this tool version in the registry. Iterates when + fields like the description, author, etc. are updated. + verified: + type: boolean + description: >- + Reports whether this tool has been verified by a specific + organization or individual + verified_source: + type: string + description: >- + Source of metadata that can support a verified tool, such as an + email or URL + DescriptorType: + type: string + description: >- + The type of descriptor that represents this version of the tool (e.g. + CWL, WDL, or NFL). + enum: + - CWL + - WDL + - NFL + ToolDescriptor: + type: object + description: >- + A tool descriptor is a metadata document that describes one or more + tools. + required: + - type + properties: + type: + $ref: '#/components/schemas/DescriptorType' + descriptor: + type: string + description: The descriptor that represents this version of the tool. + url: + type: string + description: >- + Optional url to the underlying tool descriptor, should include + version information, and can include a git hash (e.g. + https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl + ) + ToolTests: + type: object + description: >- + A tool document that describes how to test with one or more sample test + JSON. + properties: + test: + type: string + description: >- + Optional test JSON content for this tool. (Note that one of test and + URL are required) + url: + type: string + description: >- + Optional url to the test JSON used to test this tool. Note that this + URL should resolve to the raw unwrapped content that would otherwise + be available in test. + test-tool-url: + type: string + description: >- + Optional url to the test workflow that will exit successfully if + this workflow produced the expected result given this test data. + ToolContainerfile: + type: object + description: >- + A containerfile is a document that describes how to build a particular + container image. Examples include Dockerfiles for creating Docker images + and Singularity recipes for Singularity images + required: + - containerfile + properties: + containerfile: + type: string + description: The container specification for this tool. + url: + type: string + description: >- + Optional url to the file used to build this image, should include + version information, and can include a git hash (e.g. + https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile + ) + Metadata: + type: object + description: Describes this registry to better allow for mirroring and indexing. + required: + - version + - api_version + properties: + version: + type: string + description: The version of this registry + api_version: + type: string + description: >- + The version of the GA4GH tool-registry API supported by this + registry + country: + type: string + description: A country code for the registry (ISO 3166-1 alpha-3) + friendly_name: + type: string + description: >- + A friendly name that can be used in addition to the hostname to + describe a registry + Error: + type: object + required: + - code + properties: + code: + type: integer + format: int32 + default: 500 + message: + type: string + default: Internal Server Error From d21a6a61e63e29fb669195a290cf4297bdb19989 Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Wed, 14 Mar 2018 12:14:54 -0400 Subject: [PATCH 030/102] Adding operationIds (#33) See https://github.com/ga4gh/dockstore/issues/1210 --- src/main/resources/swagger/ga4gh-tool-discovery.yaml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 30ccc3e1..25fb3af8 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -26,6 +26,7 @@ paths: '/tools/{id}': get: summary: 'List one specific tool, acts as an anchor for self references' + operationId: toolsIdGet description: >- This endpoint returns one specific tool (which has ToolVersions nested inside it) @@ -51,6 +52,7 @@ paths: '/tools/{id}/versions': get: summary: List versions of a tool + operationId: toolsIdVersionsGet description: Returns all versions of the specified tool tags: - GA4GH @@ -72,6 +74,7 @@ paths: '/tools/{id}/versions/{version_id}': get: summary: 'List one specific tool version, acts as an anchor for self references' + operationId: toolsIdVersionsVersionIdGet description: This endpoint returns one specific tool version tags: - GA4GH @@ -102,6 +105,7 @@ paths: /tools: get: summary: List all tools + operationId: toolsGet description: > This endpoint returns all tools available or a filtered subset using metadata query parameters. @@ -172,6 +176,7 @@ paths: '/tools/{id}/versions/{version_id}/{type}/descriptor': get: summary: Get the tool descriptor for the specified tool + operationId: toolsIdVersionsVersionIdTypeDescriptorGet description: >- Returns the descriptor for the specified tool (examples include CWL, WDL, or Nextflow documents). @@ -214,6 +219,7 @@ paths: '/tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}': get: summary: Get additional tool descriptor files relative to the main file + operationId: toolsIdVersionsVersionIdTypeDescriptorRelativePathGet description: >- Descriptors can often include imports that refer to additional descriptors. This returns additional descriptors for the specified tool @@ -269,6 +275,7 @@ paths: '/tools/{id}/versions/{version_id}/{type}/tests': get: summary: Get a list of test JSONs + operationId: toolsIdVersionsVersionIdTypeTestsGet description: >- Get a list of test JSONs (these allow you to execute the tool successfully) suitable for use with this descriptor type. @@ -318,6 +325,7 @@ paths: descriptors are intended for use with the /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} endpoint. + operationId: toolsIdVersionsVersionIdTypeFilesGet tags: - GA4GH parameters: @@ -356,6 +364,7 @@ paths: '/tools/{id}/versions/{version_id}/containerfile': get: summary: Get the container specification(s) for the specified image. + operationId: toolsIdVersionsVersionIdContainerfileGet description: >- Returns the container specifications(s) for the specified image. For example, a CWL CommandlineTool can be associated with one specification @@ -392,6 +401,7 @@ paths: /metadata: get: summary: Return some metadata that is useful for describing this registry + operationId: metadataGet description: Return some metadata that is useful for describing this registry tags: - GA4GH @@ -403,6 +413,7 @@ paths: /toolClasses: get: summary: List all tool types + operationId: toolClassesGet description: | This endpoint returns all tool-classes available tags: @@ -694,4 +705,3 @@ parameters: externalDocs: description: Description of GA4GH Tool Registry (Exchange) Schema url: 'https://github.com/ga4gh/tool-registry-schemas' - From c50976c701deacc0adc1f8c7893edbcdfea024b2 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Wed, 28 Mar 2018 20:58:36 +0000 Subject: [PATCH 031/102] OpenAPI changed --- src/main/resources/swagger/openapi.yaml | 102 +++++++++++++----------- 1 file changed, 57 insertions(+), 45 deletions(-) diff --git a/src/main/resources/swagger/openapi.yaml b/src/main/resources/swagger/openapi.yaml index 0ee0acf9..c801a406 100644 --- a/src/main/resources/swagger/openapi.yaml +++ b/src/main/resources/swagger/openapi.yaml @@ -4,16 +4,16 @@ info: description: >- Proposed API for GA4GH (Global Alliance for Genomics & Health) tool repositories. A tool consists of a set of container images that are paired - with a set of documents (examples include CWL (Common Workflow Language) or - WDL (Workflow Description Language) or NFL (Nextflow)) that describe how to - use those images and a set of specifications for those images (examples are - Dockerfiles or Singularity recipes) that describe how to re-produce those - images in the future. We use the following terminology, a "container image" - describes a container as stored at rest on a filesystem, a "tool" describes - one of the triples as described above. In practice, examples of "tools" - include CWL CommandLineTools, CWL Workflows, WDL workflows, and Nextflow - workflows that reference containers in formats such as Docker or - Singularity. + with a set of documents. Examples of documents include CWL (Common Workflow + Language) or WDL (Workflow Description Language) or NFL (Nextflow) that + describe how to use those images and a set of specifications for those + images (examples are Dockerfiles or Singularity recipes) that describe how + to reproduce those images in the future. We use the following terminology, a + "container image" describes a container as stored at rest on a filesystem, a + "tool" describes one of the triples as described above. In practice, + examples of "tools" include CWL CommandLineTools, CWL Workflows, WDL + workflows, and Nextflow workflows that reference containers in formats such + as Docker or Singularity. version: 2.0.0 tags: - name: GA4GH @@ -22,6 +22,7 @@ paths: '/tools/{id}': get: summary: 'List one specific tool, acts as an anchor for self references' + operationId: toolsIdGet description: >- This endpoint returns one specific tool (which has ToolVersions nested inside it) @@ -58,6 +59,7 @@ paths: '/tools/{id}/versions': get: summary: List versions of a tool + operationId: toolsIdVersionsGet description: Returns all versions of the specified tool tags: - GA4GH @@ -87,6 +89,7 @@ paths: '/tools/{id}/versions/{version_id}': get: summary: 'List one specific tool version, acts as an anchor for self references' + operationId: toolsIdVersionsVersionIdGet description: This endpoint returns one specific tool version tags: - GA4GH @@ -129,6 +132,7 @@ paths: /tools: get: summary: List all tools + operationId: toolsGet description: > This endpoint returns all tools available or a filtered subset using metadata query parameters. @@ -217,10 +221,11 @@ paths: $ref: '#/components/schemas/Tool' '/tools/{id}/versions/{version_id}/{type}/descriptor': get: - summary: Get the tool descriptor for the specified tool. + summary: Get the tool descriptor for the specified tool + operationId: toolsIdVersionsVersionIdTypeDescriptorGet description: >- - Returns the descriptor for the specified tool (examples include WDL, - CWL, or Nextflow documents). + Returns the descriptor for the specified tool (examples include CWL, + WDL, or Nextflow documents). tags: - GA4GH parameters: @@ -228,7 +233,7 @@ paths: required: true in: path description: >- - The output type of the descriptor. If not specified it is up to the + The output type of the descriptor. If not specified, it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values include @@ -247,8 +252,8 @@ paths: in: path required: true description: >- - An identifier of the tool version for this particular tool registry, - for example `v1` + An identifier of the tool version, scoped to this registry, for + example `v1` schema: type: string responses: @@ -273,6 +278,7 @@ paths: '/tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}': get: summary: Get additional tool descriptor files relative to the main file + operationId: toolsIdVersionsVersionIdTypeDescriptorRelativePathGet description: >- Descriptors can often include imports that refer to additional descriptors. This returns additional descriptors for the specified tool @@ -287,7 +293,7 @@ paths: in: path required: true description: >- - The output type of the descriptor. If not specified it is up to the + The output type of the descriptor. If not specified, it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are @@ -341,8 +347,10 @@ paths: $ref: '#/components/schemas/Error' '/tools/{id}/versions/{version_id}/{type}/tests': get: - summary: >- - Get an array of test JSONs (these allow you to execute the tool + summary: Get a list of test JSONs + operationId: toolsIdVersionsVersionIdTypeTestsGet + description: >- + Get a list of test JSONs (these allow you to execute the tool successfully) suitable for use with this descriptor type. tags: - GA4GH @@ -353,8 +361,8 @@ paths: description: >- The type of the underlying descriptor. Allowable values include "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". For - example, "CWL" would return an array of ToolTests objects while - "PLAIN_CWL" would return a bare JSON array with the content of the + example, "CWL" would return an list of ToolTests objects while + "PLAIN_CWL" would return a bare JSON list with the content of the tests. schema: type: string @@ -399,11 +407,13 @@ paths: $ref: '#/components/schemas/Error' '/tools/{id}/versions/{version_id}/{type}/files': get: - summary: >- - Get an array of objects that contain the relative path and file type. - The descriptors are intended for use with the + summary: Get a list of objects that contain the relative path and file type + description: >- + Get a list of objects that contain the relative path and file type. The + descriptors are intended for use with the /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} endpoint. + operationId: toolsIdVersionsVersionIdTypeFilesGet tags: - GA4GH parameters: @@ -457,6 +467,7 @@ paths: '/tools/{id}/versions/{version_id}/containerfile': get: summary: Get the container specification(s) for the specified image. + operationId: toolsIdVersionsVersionIdContainerfileGet description: >- Returns the container specifications(s) for the specified image. For example, a CWL CommandlineTool can be associated with one specification @@ -507,6 +518,7 @@ paths: /metadata: get: summary: Return some metadata that is useful for describing this registry + operationId: metadataGet description: Return some metadata that is useful for describing this registry tags: - GA4GH @@ -523,6 +535,7 @@ paths: /toolClasses: get: summary: List all tool types + operationId: toolClassesGet description: | This endpoint returns all tool-classes available tags: @@ -551,10 +564,11 @@ components: limit: name: limit in: query - description: Amount of records to return in a given page. By default it is 1000. + description: Amount of records to return in a given page. schema: type: integer format: int32 + default: 1000 offset: name: offset in: query @@ -562,7 +576,7 @@ components: Start index of paging. Pagination results can be based on numbers or other values chosen by the registry implementor (for example, SHA values). If this exceeds the current result set return an empty set. If - not specified in the request this will start at the beginning of the + not specified in the request, this will start at the beginning of the results. schema: type: string @@ -617,14 +631,12 @@ components: properties: url: type: string - description: >- - The URL for this tool in this registry, for example - `http://agora.broadinstitute.org/tools/123456` + example: 'http://agora.broadinstitute.org/tools/123456' + description: The URL for this tool in this registry id: type: string - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456` or `123456_v1` + example: 123456 + description: 'A unique identifier of the tool, scoped to this registry' organization: type: string description: The organization that published the image. @@ -650,7 +662,8 @@ components: contains: description: >- An array of IDs for the applications that are stored inside this - tool (for example `https://bio.tools/tool/mytum.de/SNAP2/1`) + tool + example: 'https://bio.tools/tool/mytum.de/SNAP2/1' type: array items: type: string @@ -687,19 +700,18 @@ components: description: The name of the version. url: type: string - description: >- - The URL for this tool in this registry, for example - `http://agora.broadinstitute.org/tools/123456/1` + description: The URL for this tool in this registry + example: 'http://agora.broadinstitute.org/tools/123456/1' id: type: string description: >- An identifier of the version of this tool for this particular tool - registry, for example `v1` + registry + example: v1 image: type: string - description: >- - The docker path to the image (and version) for this tool. (e.g. - quay.io/seqware/seqware_full/1.1) + description: The docker path to the image (and version) for this tool + example: quay.io/seqware/seqware_full/1.1 registry_url: type: string description: >- @@ -758,9 +770,9 @@ components: type: string description: >- Optional url to the underlying tool descriptor, should include - version information, and can include a git hash (e.g. + version information, and can include a git hash + example: >- https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl - ) ToolTests: type: object description: >- @@ -778,7 +790,7 @@ components: Optional url to the test JSON used to test this tool. Note that this URL should resolve to the raw unwrapped content that would otherwise be available in test. - test-tool-url: + test_tool_url: type: string description: >- Optional url to the test workflow that will exit successfully if @@ -799,9 +811,9 @@ components: type: string description: >- Optional url to the file used to build this image, should include - version information, and can include a git hash (e.g. + version information, and can include a git hash + example: >- https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile - ) Metadata: type: object description: Describes this registry to better allow for mirroring and indexing. From aed90afc258136715afff378b73ce5d2c8699e7e Mon Sep 17 00:00:00 2001 From: garyluu Date: Mon, 2 Apr 2018 16:46:28 -0400 Subject: [PATCH 032/102] Moved checker to a property in Tool, also added a boolean --- .../resources/swagger/ga4gh-tool-discovery.yaml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 25fb3af8..cb15659b 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -507,6 +507,15 @@ definitions: type: array items: type: string + has_checker: + type: boolean + description: >- + Whether this tool has a checker tool associated with it + checker_url: + type: string + description: >- + Optional url to the checker tool that will exit successfully if this + tool produced the expected result given test data. verified: type: boolean description: >- @@ -628,11 +637,6 @@ definitions: Optional url to the test JSON used to test this tool. Note that this URL should resolve to the raw unwrapped content that would otherwise be available in test. - test_tool_url: - type: string - description: >- - Optional url to the test workflow that will exit successfully if this - workflow produced the expected result given this test data. ToolContainerfile: type: object description: >- From 99e563610c3696fa0a8fbcd595a3a64f2ce33c2a Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Mon, 2 Apr 2018 20:47:18 +0000 Subject: [PATCH 033/102] OpenAPI changed --- src/main/resources/swagger/openapi.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/resources/swagger/openapi.yaml b/src/main/resources/swagger/openapi.yaml index c801a406..d8de1c38 100644 --- a/src/main/resources/swagger/openapi.yaml +++ b/src/main/resources/swagger/openapi.yaml @@ -667,6 +667,14 @@ components: type: array items: type: string + has_checker: + type: boolean + description: Whether this tool has a checker tool associated with it + checker_url: + type: string + description: >- + Optional url to the checker tool that will exit successfully if this + tool produced the expected result given test data. verified: type: boolean description: >- @@ -790,11 +798,6 @@ components: Optional url to the test JSON used to test this tool. Note that this URL should resolve to the raw unwrapped content that would otherwise be available in test. - test_tool_url: - type: string - description: >- - Optional url to the test workflow that will exit successfully if - this workflow produced the expected result given this test data. ToolContainerfile: type: object description: >- From 3eb2fe1d797f014aac24d8558169e70aa7ae89b2 Mon Sep 17 00:00:00 2001 From: garyluu Date: Thu, 14 Jun 2018 11:57:24 -0400 Subject: [PATCH 034/102] Specify unencoded paths are also allowed --- src/main/resources/swagger/ga4gh-tool-discovery.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index cb15659b..44e2717e 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -262,7 +262,9 @@ paths: A relative path to the additional file (same directory or subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from the same directory as the main descriptor. 'nestedDirectory/foo.cwl' - would return the file from a nested subdirectory + would return the file from a nested subdirectory. Unencoded paths + such 'sampleDirectory/foo.cwl' should also be allowed + pattern: .+ responses: '200': description: The tool descriptor. From 75ccfe12e5df4ff794b9e90ff5177cd1e27f920c Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Thu, 14 Jun 2018 17:52:30 +0000 Subject: [PATCH 035/102] OpenAPI changed --- src/main/resources/swagger/openapi.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/resources/swagger/openapi.yaml b/src/main/resources/swagger/openapi.yaml index d8de1c38..1715d1a7 100644 --- a/src/main/resources/swagger/openapi.yaml +++ b/src/main/resources/swagger/openapi.yaml @@ -323,9 +323,11 @@ paths: A relative path to the additional file (same directory or subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from the same directory as the main descriptor. 'nestedDirectory/foo.cwl' - would return the file from a nested subdirectory + would return the file from a nested subdirectory. Unencoded paths + such 'sampleDirectory/foo.cwl' should also be allowed schema: type: string + pattern: .+ responses: '200': description: The tool descriptor. From c7fc9a1bdd00f0baf78686f69e7b82863f217687 Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Thu, 9 Aug 2018 11:05:34 -0400 Subject: [PATCH 036/102] Feature/search (#48) * Add option for search for checker workflows * For #37 , allow meta_version to be optional * Remove protobuf as per group decision https://github.com/ga4gh/workflow-execution-service-schemas/issues/6 https://github.com/ga4gh/workflow-execution-service-schemas/commit/337cd420880bd045150b2102f5f84a03210be7ca * Add alias suggestion from #38 * Standardize file fields * Simplify standard (#49) * better backwards compatibility --- src/main/resources/swagger/GA4GH.proto | 294 ------------------ src/main/resources/swagger/README.md | 26 -- .../swagger/ga4gh-tool-discovery.yaml | 98 +++--- src/main/resources/swagger/openapi.yaml | 126 ++++---- 4 files changed, 113 insertions(+), 431 deletions(-) delete mode 100644 src/main/resources/swagger/GA4GH.proto diff --git a/src/main/resources/swagger/GA4GH.proto b/src/main/resources/swagger/GA4GH.proto deleted file mode 100644 index f16ff1f8..00000000 --- a/src/main/resources/swagger/GA4GH.proto +++ /dev/null @@ -1,294 +0,0 @@ -syntax = "proto3"; - -import "google/protobuf/empty.proto"; - -import "google/api/annotations.proto"; - - -message GetToolClassesResponse { - repeated ToolClass items = 1; -} - -message GetToolsRequest { - // The author of the tool (TODO a thought occurs, are we assuming that the author of the CWL and the image are the same?). - string author = 1; - // The description of the tool. - string description = 2; - // A unique identifier of the tool, scoped to this registry, for example `123456` - string id = 3; - int32 limit = 4; - // The name of the image. - string name = 5; - string offset = 6; - // The organization in the registry that published the image. - string organization = 7; - // The image registry that contains the image. - string registry = 8; - // The name of the tool. - string toolname = 9; -} - -message GetToolsResponse { - repeated Tool items = 1; -} - -message GetToolsIdRequest { - // A unique identifier of the tool, scoped to this registry, for example `123456` - string id = 1; -} - -message GetToolsIdVersionsRequest { - // A unique identifier of the tool, scoped to this registry, for example `123456` - string id = 1; -} - -message GetToolsIdVersionsResponse { - repeated ToolVersion items = 1; -} - -message GetToolsIdVersionsVersion_idRequest { - // A unique identifier of the tool, scoped to this registry, for example `123456` - string id = 1; - // An identifier of the tool version, scoped to this registry, for example `v1` - string version_id = 2; -} - -message GetToolsIdVersionsVersion_idDescriptorRequest { - // A unique identifier of the tool, scoped to this registry, for example `123456` - string id = 1; - // The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata - enum GetToolsIdVersionsVersion_idDescriptorRequest_Type { - CWL = 0; - WDL = 1; - PLAIN_CWL = 2; - PLAIN_WDL = 3; - } - GetToolsIdVersionsVersion_idDescriptorRequest_Type type = 2; - // An identifier of the tool version for this particular tool registry, for example `v1` - string version_id = 3; -} - -message GetToolsIdVersionsVersion_idDescriptorRelative_pathRequest { - // A unique identifier of the tool, scoped to this registry, for example `123456` - string id = 1; - // A relative path to the additional file (same directory or subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from the same directory as the main descriptor - string relative_path = 2; - // The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata - enum GetToolsIdVersionsVersion_idDescriptorRelative_pathRequest_Type { - CWL = 0; - WDL = 1; - PLAIN_CWL = 2; - PLAIN_WDL = 3; - } - GetToolsIdVersionsVersion_idDescriptorRelative_pathRequest_Type type = 3; - // An identifier of the tool version for this particular tool registry, for example `v1` - string version_id = 4; -} - -message GetToolsIdVersionsVersion_idDockerfileRequest { - // A unique identifier of the tool, scoped to this registry, for example `123456` - string id = 1; - // An identifier of the tool version for this particular tool registry, for example `v1` - string version_id = 2; -} - -message GetToolsIdVersionsVersion_idTestsRequest { - // A unique identifier of the tool, scoped to this registry, for example `123456` - string id = 1; - // The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata - enum GetToolsIdVersionsVersion_idTestsRequest_Type { - CWL = 0; - WDL = 1; - PLAIN_CWL = 2; - PLAIN_WDL = 3; - } - GetToolsIdVersionsVersion_idTestsRequest_Type type = 2; - // An identifier of the tool version for this particular tool registry, for example `v1` - string version_id = 3; -} - -message GetToolsIdVersionsVersion_idTestsResponse { - repeated ToolTests items = 1; -} - -enum DescriptorType { - CWL = 0; - WDL = 1; -} - -message Error { - int32 code = 1; - string message = 2; -} - -message Metadata { - // The version of the GA4GH tool-registry API supported by this registry - string api_version = 1; - // A country code for the registry (ISO 3166-1 alpha-3) - string country = 2; - // A friendly name that can be used in addition to the hostname to describe a registry - string friendly_name = 3; - // The version of this registry - string version = 4; -} - -message Tool { - // Contact information for the author of this tool entry in the registry. (More complex authorship information is handled by the descriptor) - string author = 1; - // An array of IDs for the applications that are stored inside this tool (for example `https://bio.tools/tool/mytum.de/SNAP2/1`) - repeated string contains = 2; - // The description of the tool. - string description = 3; - // A unique identifier of the tool, scoped to this registry, for example `123456` or `123456_v1` - string id = 4; - // The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated. - string meta_version = 5; - // The organization that published the image. - string organization = 6; - // Reports whether this tool has been signed. - bool signed = 7; - ToolClass toolclass = 8; - // The name of the tool. - string toolname = 9; - // The URL for this tool in this registry, for example `http://agora.broadinstitute.org/tools/123456` - string url = 10; - // Reports whether this tool has been verified by a specific organization or individual - bool verified = 11; - // Source of metadata that can support a verified tool, such as an email or URL - string verified_source = 12; - // A list of versions for this tool - repeated ToolVersion versions = 13; -} - -message ToolClass { - // A longer explanation of what this class is and what it can accomplish - string description = 1; - // The unique identifier for the class - string id = 2; - // A short friendly name for the class - string name = 3; -} - -message ToolDescriptor { - // The descriptor that represents this version of the tool. (CWL or WDL) - string descriptor = 1; - DescriptorType type = 2; - // Optional url to the tool descriptor used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl ) - string url = 3; -} - -message ToolDockerfile { - // The dockerfile content for this tool. - string dockerfile = 1; - // Optional url to the dockerfile used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile ) - string url = 2; -} - -message ToolTests { - // The test JSON content for this tool. - string test = 1; - // Optional url to the test JSON used to test this tool - string url = 2; -} - -message ToolVersion { - // The type (or types) of descriptors available. - repeated DescriptorType descriptor_type = 1; - // Reports if this tool has a dockerfile available. - bool dockerfile = 2; - // An identifier of the version of this tool for this particular tool registry, for example `v1` - string id = 3; - // The docker path to the image (and version) for this tool. (e.g. quay.io/seqware/seqware_full/1.1) - string image = 4; - // The version of this tool version in the registry. Iterates when fields like the description, author, etc. are updated. - string meta_version = 5; - // The name of the version. - string name = 6; - // The URL for this tool in this registry, for example `http://agora.broadinstitute.org/tools/123456/1` - string url = 7; - // Reports whether this tool has been verified by a specific organization or individual - bool verified = 8; - // Source of metadata that can support a verified tool, such as an email or URL - string verified_source = 9; -} - -service TrsService { - // Return some metadata that is useful for describing this registry - // - // Return some metadata that is useful for describing this registry - rpc GetMetadata(google.protobuf.Empty) returns (Metadata) { - option (google.api.http) = { - get: "/api/ga4gh/v1/metadata" - }; - } - // List all tool types - // - // This endpoint returns all tool-classes available - rpc GetToolClasses(google.protobuf.Empty) returns (GetToolClassesResponse) { - option (google.api.http) = { - get: "/api/ga4gh/v1/toolClasses" - }; - } - // List all tools - // - // This endpoint returns all tools available or a filtered subset using metadata query parameters. - rpc GetTools(GetToolsRequest) returns (GetToolsResponse) { - option (google.api.http) = { - get: "/api/ga4gh/v1/tools" - }; - } - // List one specific tool, acts as an anchor for self references - // - // This endpoint returns one specific tool (which has ToolVersions nested inside it) - rpc GetToolsId(GetToolsIdRequest) returns (Tool) { - option (google.api.http) = { - get: "/api/ga4gh/v1/tools/{id}" - }; - } - // List versions of a tool - // - // Returns all versions of the specified tool - rpc GetToolsIdVersions(GetToolsIdVersionsRequest) returns (GetToolsIdVersionsResponse) { - option (google.api.http) = { - get: "/api/ga4gh/v1/tools/{id}/versions" - }; - } - // List one specific tool version, acts as an anchor for self references - // - // This endpoint returns one specific tool version - rpc GetToolsIdVersionsVersion_id(GetToolsIdVersionsVersion_idRequest) returns (ToolVersion) { - option (google.api.http) = { - get: "/api/ga4gh/v1/tools/{id}/versions/{version_id}" - }; - } - // Get the tool descriptor (CWL/WDL) for the specified tool. - // - // Returns the CWL or WDL descriptor for the specified tool. - rpc GetToolsIdVersionsVersion_idDescriptor(GetToolsIdVersionsVersion_idDescriptorRequest) returns (ToolDescriptor) { - option (google.api.http) = { - get: "/api/ga4gh/v1/tools/{id}/versions/{version_id}/descriptor" - }; - } - // Get additional tool descriptor files (CWL/WDL) relative to the main file - // - // Returns additional CWL or WDL descriptors for the specified tool in the same or subdirectories - rpc GetToolsIdVersionsVersion_idDescriptorRelative_path(GetToolsIdVersionsVersion_idDescriptorRelative_pathRequest) returns (ToolDescriptor) { - option (google.api.http) = { - get: "/api/ga4gh/v1/tools/{id}/versions/{version_id}/descriptor/{relative_path}" - }; - } - // Get the dockerfile for the specified image. - // - // Returns the dockerfile for the specified image. - rpc GetToolsIdVersionsVersion_idDockerfile(GetToolsIdVersionsVersion_idDockerfileRequest) returns (ToolDockerfile) { - option (google.api.http) = { - get: "/api/ga4gh/v1/tools/{id}/versions/{version_id}/dockerfile" - }; - } - // Get an array of test JSONs suitable for use with this descriptor type. - rpc GetToolsIdVersionsVersion_idTests(GetToolsIdVersionsVersion_idTestsRequest) returns (GetToolsIdVersionsVersion_idTestsResponse) { - option (google.api.http) = { - get: "/api/ga4gh/v1/tools/{id}/versions/{version_id}/tests" - }; - } -} diff --git a/src/main/resources/swagger/README.md b/src/main/resources/swagger/README.md index c9fe91ed..f932c4b2 100644 --- a/src/main/resources/swagger/README.md +++ b/src/main/resources/swagger/README.md @@ -1,29 +1,3 @@ ## Instruction for modifying the TRS To make changes to the TRS, modify the swagger yaml file. This swagger yaml file will be used in the validation server. -A protobuf file will be automatically generated through Travis using Openapi2proto and some post processing. -A 2nd swagger yaml will be generated from the newly generated protobuf file using protoc-gen-swagger and will have basic checks to determine that vital information is not lost between these conversions. -After successful conversion checks, the protobuf file will be uploaded back to this repository and branch using the repository's deploy key. - -### Current protobuf generation status: -The .travis.yml that automatically generates the protobuf file is currently not present in this pull request because there's currently no deploy key for this repository yet (Travis would definitely fail the build). - -See https://github.com/garyluu/validator/blob/master/.travis.yml for an similar travis file that automatically generates and uploads the protobuf file. - -### A few notes: -Some information is lost during the swagger.yaml to protobuf conversion such as optional/required properties, headers, content-type, etc. -If making these type of changes in the swagger yaml, ensure there's a comment in the swagger yaml indicating it. -In general, comments are carried over from swagger to protobuf. In the event of ambiguity or conversion issues, use comments. - -https://groups.google.com/a/genomicsandhealth.org/forum/?hl=en-GB#!topic/ga4gh-cloud/ElieFuwHgcM lists a bunch of other issues that will need to be taken into account when editing the swagger yaml. - -To preserve as much compatibility with protobuf as possible, here are some things to avoid using in the swagger yaml: -- Required properties in objects. Protobuf will consider all of them as optional -- All header info for example: no-cache, max-age, max-stale, all encoding related headers, authorization, content-type, etc -- Enum path parameters -- Custom error response objects -- More than 1 successful response object -- Global enums that have the same property names -- HTTP methods that are HEAD, TRACE, OPTIONS, and CONNECT due to tooling (protobuf could use custom http patterns but too complicated for automated conversion) -- Nullable properties (even swagger doesn't support it very well) -- all vendor extensions such as x-example, x-description, x-summary, etc diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 44e2717e..c35b5d23 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -118,6 +118,12 @@ paths: description: >- A unique identifier of the tool, scoped to this registry, for example `123456` + - name: alias + type: string + in: query + description: |- + OPTIONAL for tool registries that support aliases. + If provided will only return entries with the given alias. - name: registry in: query type: string @@ -144,6 +150,10 @@ paths: description: >- The author of the tool (TODO a thought occurs, are we assuming that the author of the CWL and the image are the same?). + - name: checker + in: query + type: boolean + description: Return only checker workflows - $ref: '#/parameters/offset' - $ref: '#/parameters/limit' responses: @@ -211,7 +221,7 @@ paths: '200': description: The tool descriptor. schema: - $ref: '#/definitions/ToolDescriptor' + $ref: '#/definitions/FileWrapper' '404': description: The tool descriptor can not be found. schema: @@ -226,7 +236,8 @@ paths: in the same or other directories that can be reached as a relative path. This endpoint can be useful for workflow engine implementations like cwltool to programmatically download all the descriptors for a tool and - run it + run it. This can optionally include other files described with FileWrappers + such as test parameters and containerfiles. tags: - GA4GH parameters: @@ -269,7 +280,7 @@ paths: '200': description: The tool descriptor. schema: - $ref: '#/definitions/ToolDescriptor' + $ref: '#/definitions/FileWrapper' '404': description: The tool can not be output in the specified type. schema: @@ -314,7 +325,7 @@ paths: schema: type: array items: - $ref: '#/definitions/ToolTests' + $ref: '#/definitions/FileWrapper' '404': description: The tool can not be output in the specified type. schema: @@ -395,7 +406,7 @@ paths: schema: type: array items: - $ref: '#/definitions/ToolContainerfile' + $ref: '#/definitions/FileWrapper' '404': description: There are no container specifications for this tool schema: @@ -470,7 +481,6 @@ definitions: - id - organization - author - - meta_version - toolclass - versions properties: @@ -482,6 +492,16 @@ definitions: type: string example: 123456 description: 'A unique identifier of the tool, scoped to this registry' + aliases: + type: array + items: + type: string + example: ['630d31c3-381e-488d-b639-ce5d047a0142','dockstore.org:630d31c3-381e-488d-b639-ce5d047a0142','bio.tools:630d31c3-381e-488d-b639-ce5d047a0142'] + description: |- + OPTIONAL + A list of strings that can be used to identify this tool. + This can be used to expose alternative ids (such as GUIDs) for a tool + for registries. Can be used to match tools across registries. organization: type: string description: The organization that published the image. @@ -544,7 +564,6 @@ definitions: required: - url - id - - meta_version properties: name: type: string @@ -599,65 +618,38 @@ definitions: type: string description: >- The type of descriptor that represents this version of the tool (e.g. CWL, - WDL, or NFL). + WDL, or NFL). Note that these files can also include associated Docker/container files + and test parameters that further describe a version of a tool enum: - CWL - WDL - NFL - ToolDescriptor: - type: object - description: A tool descriptor is a metadata document that describes one or more tools. - required: - - type - properties: - type: - $ref: '#/definitions/DescriptorType' - descriptor: - type: string - description: The descriptor that represents this version of the tool. - url: - type: string - description: >- - Optional url to the underlying tool descriptor, should include version - information, and can include a git hash - example: >- - https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl - ToolTests: + FileWrapper: type: object - description: >- - A tool document that describes how to test with one or more sample test + description: | + A file provides content for one of + - A tool descriptor is a metadata document that describes one or more tools. + - A tool document that describes how to test with one or more sample test JSON. - properties: - test: - type: string - description: >- - Optional test JSON content for this tool. (Note that one of test and - URL are required) - url: - type: string - description: >- - Optional url to the test JSON used to test this tool. Note that this - URL should resolve to the raw unwrapped content that would otherwise - be available in test. - ToolContainerfile: - type: object - description: >- - A containerfile is a document that describes how to build a particular + - A containerfile is a document that describes how to build a particular container image. Examples include Dockerfiles for creating Docker images and Singularity recipes for Singularity images - required: - - containerfile properties: - containerfile: + content: type: string - description: The container specification for this tool. + description: The content of the file itself. One of url or content is required. url: type: string description: >- - Optional url to the file used to build this image, should include - version information, and can include a git hash - example: >- - https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile + Optional url to the underlying content, should include version + information, and can include a git hash. Note that this + URL should resolve to the raw unwrapped content that would otherwise + be available in content. One of url or content is required. + example: + descriptorfile: + url: https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl + containerfile: + url: https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile Metadata: type: object description: Describes this registry to better allow for mirroring and indexing. diff --git a/src/main/resources/swagger/openapi.yaml b/src/main/resources/swagger/openapi.yaml index 1715d1a7..1a5ac194 100644 --- a/src/main/resources/swagger/openapi.yaml +++ b/src/main/resources/swagger/openapi.yaml @@ -146,6 +146,13 @@ paths: example `123456` schema: type: string + - name: alias + in: query + description: |- + OPTIONAL for tool registries that support aliases. + If provided will only return entries with the given alias. + schema: + type: string - name: registry in: query description: The image registry that contains the image. @@ -178,6 +185,11 @@ paths: the author of the CWL and the image are the same?). schema: type: string + - name: checker + in: query + description: Return only checker workflows + schema: + type: boolean - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/limit' responses: @@ -262,10 +274,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ToolDescriptor' + $ref: '#/components/schemas/FileWrapper' text/plain: schema: - $ref: '#/components/schemas/ToolDescriptor' + $ref: '#/components/schemas/FileWrapper' '404': description: The tool descriptor can not be found. content: @@ -285,7 +297,8 @@ paths: in the same or other directories that can be reached as a relative path. This endpoint can be useful for workflow engine implementations like cwltool to programmatically download all the descriptors for a tool and - run it + run it. This can optionally include other files described with + FileWrappers such as test parameters and containerfiles. tags: - GA4GH parameters: @@ -334,10 +347,10 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ToolDescriptor' + $ref: '#/components/schemas/FileWrapper' text/plain: schema: - $ref: '#/components/schemas/ToolDescriptor' + $ref: '#/components/schemas/FileWrapper' '404': description: The tool can not be output in the specified type. content: @@ -392,12 +405,12 @@ paths: schema: type: array items: - $ref: '#/components/schemas/ToolTests' + $ref: '#/components/schemas/FileWrapper' text/plain: schema: type: array items: - $ref: '#/components/schemas/ToolTests' + $ref: '#/components/schemas/FileWrapper' '404': description: The tool can not be output in the specified type. content: @@ -502,12 +515,12 @@ paths: schema: type: array items: - $ref: '#/components/schemas/ToolContainerfile' + $ref: '#/components/schemas/FileWrapper' text/plain: schema: type: array items: - $ref: '#/components/schemas/ToolContainerfile' + $ref: '#/components/schemas/FileWrapper' '404': description: There are no container specifications for this tool content: @@ -627,7 +640,6 @@ components: - id - organization - author - - meta_version - toolclass - versions properties: @@ -639,6 +651,23 @@ components: type: string example: 123456 description: 'A unique identifier of the tool, scoped to this registry' + aliases: + type: array + items: + type: string + example: + - 630d31c3-381e-488d-b639-ce5d047a0142 + - 'dockstore.org:630d31c3-381e-488d-b639-ce5d047a0142' + - 'bio.tools:630d31c3-381e-488d-b639-ce5d047a0142' + description: >- + OPTIONAL + + A list of strings that can be used to identify this tool. + + This can be used to expose alternative ids (such as GUIDs) for a + tool + + for registries. Can be used to match tools across registries. organization: type: string description: The organization that published the image. @@ -703,7 +732,6 @@ components: required: - url - id - - meta_version properties: name: type: string @@ -758,67 +786,49 @@ components: type: string description: >- The type of descriptor that represents this version of the tool (e.g. - CWL, WDL, or NFL). + CWL, WDL, or NFL). Note that these files can also include associated + Docker/container files and test parameters that further describe a + version of a tool enum: - CWL - WDL - NFL - ToolDescriptor: + FileWrapper: type: object - description: >- - A tool descriptor is a metadata document that describes one or more + description: > + A file provides content for one of + + - A tool descriptor is a metadata document that describes one or more tools. - required: - - type - properties: - type: - $ref: '#/components/schemas/DescriptorType' - descriptor: - type: string - description: The descriptor that represents this version of the tool. - url: - type: string - description: >- - Optional url to the underlying tool descriptor, should include - version information, and can include a git hash - example: >- - https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl - ToolTests: - type: object - description: >- - A tool document that describes how to test with one or more sample test + + - A tool document that describes how to test with one or more sample + test + JSON. - properties: - test: - type: string - description: >- - Optional test JSON content for this tool. (Note that one of test and - URL are required) - url: - type: string - description: >- - Optional url to the test JSON used to test this tool. Note that this - URL should resolve to the raw unwrapped content that would otherwise - be available in test. - ToolContainerfile: - type: object - description: >- - A containerfile is a document that describes how to build a particular + + - A containerfile is a document that describes how to build a particular + container image. Examples include Dockerfiles for creating Docker images + and Singularity recipes for Singularity images - required: - - containerfile properties: - containerfile: + content: type: string - description: The container specification for this tool. + description: The content of the file itself. One of url or content is required. url: type: string description: >- - Optional url to the file used to build this image, should include - version information, and can include a git hash - example: >- - https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile + Optional url to the underlying content, should include version + information, and can include a git hash. Note that this URL should + resolve to the raw unwrapped content that would otherwise be + available in content. One of url or content is required. + example: + descriptorfile: + url: >- + https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl + containerfile: + url: >- + https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile Metadata: type: object description: Describes this registry to better allow for mirroring and indexing. From 154bbd541c78d5f5269c05123b60f678e7bcceae Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Wed, 7 Nov 2018 13:56:41 -0500 Subject: [PATCH 037/102] Feature/link check (#55) * Add link check * Fix links * Try using build stages * Test deploy script * Add shebang --- .travis.yml | 30 ++++++++++++------------------ README.md | 6 ++---- deploy.sh | 19 +++++++++++++++++++ 3 files changed, 33 insertions(+), 22 deletions(-) create mode 100644 deploy.sh diff --git a/.travis.yml b/.travis.yml index 77c600c0..375b87c8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,22 +2,16 @@ language: node_js node_js: - "lts/*" -install: - - npm i -g swagger2openapi - -script: - - swagger2openapi src/main/resources/swagger/ga4gh-tool-discovery.yaml -o src/main/resources/swagger/openapi.yaml - -before_install: - - openssl aes-256-cbc -K $encrypted_f356a5c69655_key -iv $encrypted_f356a5c69655_iv -in github_deploy_key.enc -out github_deploy_key -d - -after_success: - - eval "$(ssh-agent)" - - chmod 600 github_deploy_key - - ssh-add github_deploy_key - - git checkout -B ${TRAVIS_BRANCH} - - git add src/main/resources/swagger/openapi.yaml - - git commit -m "OpenAPI changed" - - echo "Pushing changes" - - git push git@github.com:ga4gh/tool-registry-service-schemas ${TRAVIS_BRANCH} +jobs: + include: + - stage: check-links + install: npm i -g markdown-link-check + script: markdown-link-check ./README.md + - stage: commit-OpenAPI + install: npm i -g swagger2openapi + script: + - swagger2openapi src/main/resources/swagger/ga4gh-tool-discovery.yaml -o src/main/resources/swagger/openapi.yaml + after_success: + - git checkout -B ${TRAVIS_BRANCH} + - bash deploy.sh diff --git a/README.md b/README.md index cd054537..ffe427ab 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Schemas for the GA4GH Tool Registry API This repository is the home for the schema for the GA4GH Tool Registry API. The goal of the API is to provide a standardized way to describe the availability of tools and workflows. In this way, we can have multiple repositories that share Docker-based tools and WDL/CWL-based workflows and have a consistent way to interact, search, and retrieve information from these various registries. The end goal is to make it much easier to share scientific tools and workflows, enhancing our ability to make research reproducible, sharable, and transparent. -**[View in the Swagger Editor](https://editor2.swagger.io/#!/?import=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/src/main/resources/swagger/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* +**[View in the Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/src/main/resources/swagger/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* The [Global Alliance for Genomics and Health](http://genomicsandhealth.org/) (GA4GH) is an international coalition, formed to enable the sharing of genomic and clinical data. @@ -43,7 +43,7 @@ Outstanding questions: How to view ------------ -See the swagger editor to view our [schema in progress](http://editor.swagger.io/#/?import=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/src/main/resources/swagger/ga4gh-tool-discovery.yaml). +See the swagger editor to view our [schema in progress](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/src/main/resources/swagger/ga4gh-tool-discovery.yaml). How to contribute changes @@ -79,8 +79,6 @@ For more information -------------------- * http://genomicsandhealth.org/ -* [INSTALL.md](INSTALL.md) -* [CONTRIBUTING.md](CONTRIBUTING.md) * [LICENSE](LICENSE) * [Google Groups - old](https://groups.google.com/forum/#!forum/ga4gh-dwg-containers-workflows) * [Google Groups - new](https://groups.google.com/a/genomicsandhealth.org/forum/#!forum/ga4gh-dwg-containers-workflows) diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 00000000..47921e0f --- /dev/null +++ b/deploy.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -o errexit +set -o pipefail +set -o nounset +set -o xtrace + +if ! git diff --exit-code src/main/resources/swagger/openapi.yaml + then + git diff src/main/resources/swagger/openapi.yaml + openssl aes-256-cbc -K $encrypted_f356a5c69655_key -iv $encrypted_f356a5c69655_iv -in github_deploy_key.enc -out github_deploy_key -d + eval "$(ssh-agent)" + chmod 600 github_deploy_key + ssh-add github_deploy_key + git add src/main/resources/swagger/openapi.yaml + git commit -m "OpenAPI changed" + echo "Pushing changes" + git push git@github.com:ga4gh/tool-registry-service-schemas ${TRAVIS_BRANCH} +fi + From a37b660669875c6c2150a172bfe6e9c015377ef9 Mon Sep 17 00:00:00 2001 From: Yasset Perez-Riverol Date: Mon, 26 Nov 2018 20:28:33 +0000 Subject: [PATCH 038/102] minor changes in README (#62) * minor changes in README * Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ffe427ab..fd0c6e15 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ The Containers & Workflows working group is an informal, multi-vendor working gr What is the Tool Registry API Schema? ------------------------------------- -This is the home of the schema for the GA4GH Tool Registry API. The GA4GH Tool Registry API is a standard for listing and describing available tools (both stand-alone, Docker-based tools as well as workflows in CWL or WDL) in a given registry. This defines a minimal, common API describing tools that we proposal for support by multiple tool/workflow registries like [Dockstore](https://www.dockstore.org/), [BioShadock](https://docker-ui.genouest.org/app/#/), and [Agora](https://github.com/broadinstitute/agora) for the purposes of exchange, indexing, and searching. +This is the home of the schema for the GA4GH Tool Registry API. The GA4GH Tool Registry API is a standard for listing and describing available tools (both stand-alone, Docker-based tools as well as workflows in CWL or WDL) in a given registry. This defines a minimal, common API describing tools that we propose for support by multiple tool/workflow registries like [Dockstore](https://www.dockstore.org/), [BioContainers](https://biocontainers.pro), and [Agora](https://github.com/broadinstitute/agora) for the purposes of exchange, indexing, and searching. Our current proposal is to start with a read-only API due to potentially different views and approaches to registration/security. From 68e3cdbd5b827a90f43d06f48717bf62366f44ea Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Wed, 27 Feb 2019 10:31:23 -0500 Subject: [PATCH 039/102] Create CONTRIBUTING.md (#65) * Create CONTRIBUTING.md * OpenAPI changed --- CONTRIBUTING.md | 36 +++ src/main/resources/swagger/openapi.yaml | 329 ++++++++++-------------- 2 files changed, 171 insertions(+), 194 deletions(-) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..5cb21670 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,36 @@ +# CONTRIBUTING + +This schema is developed by the [Cloud Work Stream](https://ga4gh.cloud) of the [Global Alliance for Genomics and Health](https://ga4gh.org). + +## Semantic Versioning + +We use [semantic versioning](https://semver.org/) for TRS, this will determine if your proposed changes impact a major or minor release. + +## Suggesting Changes + +Suggested changes to this schema can be initiated as [**Issues**](https://github.com/ga4gh/tool-registry-service-schemas/issues) or [**Pull Requests**](https://github.com/ga4gh/workflow-execution-service-schemas/pulls) to allow for discussion and review. + +Even those with write access to the main repository should in general create pull request branches within their own forks. This way when the main repository is forked again, the new fork is created with a minimum of extraneous volatile branches. + + diff --git a/src/main/resources/swagger/openapi.yaml b/src/main/resources/swagger/openapi.yaml index 1a5ac194..6d9861fd 100644 --- a/src/main/resources/swagger/openapi.yaml +++ b/src/main/resources/swagger/openapi.yaml @@ -1,8 +1,7 @@ openapi: 3.0.0 info: title: GA4GH Tool Discovery API - description: >- - Proposed API for GA4GH (Global Alliance for Genomics & Health) tool + description: 'Proposed API for GA4GH (Global Alliance for Genomics & Health) tool repositories. A tool consists of a set of container images that are paired with a set of documents. Examples of documents include CWL (Common Workflow Language) or WDL (Workflow Description Language) or NFL (Nextflow) that @@ -13,18 +12,17 @@ info: "tool" describes one of the triples as described above. In practice, examples of "tools" include CWL CommandLineTools, CWL Workflows, WDL workflows, and Nextflow workflows that reference containers in formats such - as Docker or Singularity. + as Docker or Singularity. ' version: 2.0.0 tags: - name: GA4GH description: A set of resources proposed as a common standard for tool repositories paths: - '/tools/{id}': + "/tools/{id}": get: - summary: 'List one specific tool, acts as an anchor for self references' + summary: List one specific tool, acts as an anchor for self references operationId: toolsIdGet - description: >- - This endpoint returns one specific tool (which has ToolVersions nested + description: This endpoint returns one specific tool (which has ToolVersions nested inside it) tags: - GA4GH @@ -32,31 +30,30 @@ paths: - name: id in: path required: true - description: >- - A unique identifier of the tool, scoped to this registry, for + description: A unique identifier of the tool, scoped to this registry, for example `123456` schema: type: string responses: - '200': + "200": description: A tool. content: application/json: schema: - $ref: '#/components/schemas/Tool' + $ref: "#/components/schemas/Tool" text/plain: schema: - $ref: '#/components/schemas/Tool' - '404': + $ref: "#/components/schemas/Tool" + "404": description: The tool can not be found. content: application/json: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" text/plain: schema: - $ref: '#/components/schemas/Error' - '/tools/{id}/versions': + $ref: "#/components/schemas/Error" + "/tools/{id}/versions": get: summary: List versions of a tool operationId: toolsIdVersionsGet @@ -67,28 +64,27 @@ paths: - name: id in: path required: true - description: >- - A unique identifier of the tool, scoped to this registry, for + description: A unique identifier of the tool, scoped to this registry, for example `123456` schema: type: string responses: - '200': + "200": description: An array of tool versions content: application/json: schema: type: array items: - $ref: '#/components/schemas/ToolVersion' + $ref: "#/components/schemas/ToolVersion" text/plain: schema: type: array items: - $ref: '#/components/schemas/ToolVersion' - '/tools/{id}/versions/{version_id}': + $ref: "#/components/schemas/ToolVersion" + "/tools/{id}/versions/{version_id}": get: - summary: 'List one specific tool version, acts as an anchor for self references' + summary: List one specific tool version, acts as an anchor for self references operationId: toolsIdVersionsVersionIdGet description: This endpoint returns one specific tool version tags: @@ -97,38 +93,36 @@ paths: - name: id in: path required: true - description: >- - A unique identifier of the tool, scoped to this registry, for + description: A unique identifier of the tool, scoped to this registry, for example `123456` schema: type: string - name: version_id in: path required: true - description: >- - An identifier of the tool version, scoped to this registry, for + description: An identifier of the tool version, scoped to this registry, for example `v1` schema: type: string responses: - '200': + "200": description: A tool version. content: application/json: schema: - $ref: '#/components/schemas/ToolVersion' + $ref: "#/components/schemas/ToolVersion" text/plain: schema: - $ref: '#/components/schemas/ToolVersion' - '404': + $ref: "#/components/schemas/ToolVersion" + "404": description: The tool can not be found. content: application/json: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" text/plain: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" /tools: get: summary: List all tools @@ -141,8 +135,7 @@ paths: parameters: - name: id in: query - description: >- - A unique identifier of the tool, scoped to this registry, for + description: A unique identifier of the tool, scoped to this registry, for example `123456` schema: type: string @@ -180,8 +173,7 @@ paths: type: string - name: author in: query - description: >- - The author of the tool (TODO a thought occurs, are we assuming that + description: The author of the tool (TODO a thought occurs, are we assuming that the author of the CWL and the image are the same?). schema: type: string @@ -190,21 +182,19 @@ paths: description: Return only checker workflows schema: type: boolean - - $ref: '#/components/parameters/offset' - - $ref: '#/components/parameters/limit' + - $ref: "#/components/parameters/offset" + - $ref: "#/components/parameters/limit" responses: - '200': + "200": description: An array of Tools that match the filter. headers: next_page: - description: >- - A URL that can be used to reach the next page based on the + description: A URL that can be used to reach the next page based on the current offset and page record limit schema: type: string last_page: - description: >- - A URL that can be used to reach the last page based on the + description: A URL that can be used to reach the last page based on the current page record limit schema: type: string @@ -225,18 +215,17 @@ paths: schema: type: array items: - $ref: '#/components/schemas/Tool' + $ref: "#/components/schemas/Tool" text/plain: schema: type: array items: - $ref: '#/components/schemas/Tool' - '/tools/{id}/versions/{version_id}/{type}/descriptor': + $ref: "#/components/schemas/Tool" + "/tools/{id}/versions/{version_id}/{type}/descriptor": get: summary: Get the tool descriptor for the specified tool operationId: toolsIdVersionsVersionIdTypeDescriptorGet - description: >- - Returns the descriptor for the specified tool (examples include CWL, + description: Returns the descriptor for the specified tool (examples include CWL, WDL, or Nextflow documents). tags: - GA4GH @@ -244,8 +233,7 @@ paths: - name: type required: true in: path - description: >- - The output type of the descriptor. If not specified, it is up to the + description: The output type of the descriptor. If not specified, it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values include @@ -254,8 +242,7 @@ paths: type: string - name: id in: path - description: >- - A unique identifier of the tool, scoped to this registry, for + description: A unique identifier of the tool, scoped to this registry, for example `123456` required: true schema: @@ -263,50 +250,47 @@ paths: - name: version_id in: path required: true - description: >- - An identifier of the tool version, scoped to this registry, for + description: An identifier of the tool version, scoped to this registry, for example `v1` schema: type: string responses: - '200': + "200": description: The tool descriptor. content: application/json: schema: - $ref: '#/components/schemas/FileWrapper' + $ref: "#/components/schemas/FileWrapper" text/plain: schema: - $ref: '#/components/schemas/FileWrapper' - '404': + $ref: "#/components/schemas/FileWrapper" + "404": description: The tool descriptor can not be found. content: application/json: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" text/plain: schema: - $ref: '#/components/schemas/Error' - '/tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}': + $ref: "#/components/schemas/Error" + "/tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}": get: summary: Get additional tool descriptor files relative to the main file operationId: toolsIdVersionsVersionIdTypeDescriptorRelativePathGet - description: >- - Descriptors can often include imports that refer to additional + description: "Descriptors can often include imports that refer to additional descriptors. This returns additional descriptors for the specified tool in the same or other directories that can be reached as a relative path. This endpoint can be useful for workflow engine implementations like cwltool to programmatically download all the descriptors for a tool and run it. This can optionally include other files described with - FileWrappers such as test parameters and containerfiles. + FileWrappers such as test parameters and containerfiles. " tags: - GA4GH parameters: - name: type in: path required: true - description: >- - The output type of the descriptor. If not specified, it is up to the + description: The output type of the descriptor. If not specified, it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are @@ -315,8 +299,7 @@ paths: type: string - name: id in: path - description: >- - A unique identifier of the tool, scoped to this registry, for + description: A unique identifier of the tool, scoped to this registry, for example `123456` required: true schema: @@ -324,16 +307,14 @@ paths: - name: version_id in: path required: true - description: >- - An identifier of the tool version for this particular tool registry, + description: An identifier of the tool version for this particular tool registry, for example `v1` schema: type: string - name: relative_path in: path required: true - description: >- - A relative path to the additional file (same directory or + description: A relative path to the additional file (same directory or subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from the same directory as the main descriptor. 'nestedDirectory/foo.cwl' would return the file from a nested subdirectory. Unencoded paths @@ -342,30 +323,29 @@ paths: type: string pattern: .+ responses: - '200': + "200": description: The tool descriptor. content: application/json: schema: - $ref: '#/components/schemas/FileWrapper' + $ref: "#/components/schemas/FileWrapper" text/plain: schema: - $ref: '#/components/schemas/FileWrapper' - '404': + $ref: "#/components/schemas/FileWrapper" + "404": description: The tool can not be output in the specified type. content: application/json: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" text/plain: schema: - $ref: '#/components/schemas/Error' - '/tools/{id}/versions/{version_id}/{type}/tests': + $ref: "#/components/schemas/Error" + "/tools/{id}/versions/{version_id}/{type}/tests": get: summary: Get a list of test JSONs operationId: toolsIdVersionsVersionIdTypeTestsGet - description: >- - Get a list of test JSONs (these allow you to execute the tool + description: Get a list of test JSONs (these allow you to execute the tool successfully) suitable for use with this descriptor type. tags: - GA4GH @@ -373,18 +353,16 @@ paths: - name: type required: true in: path - description: >- - The type of the underlying descriptor. Allowable values include + description: 'The type of the underlying descriptor. Allowable values include "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". For example, "CWL" would return an list of ToolTests objects while "PLAIN_CWL" would return a bare JSON list with the content of the - tests. + tests. ' schema: type: string - name: id in: path - description: >- - A unique identifier of the tool, scoped to this registry, for + description: A unique identifier of the tool, scoped to this registry, for example `123456` required: true schema: @@ -392,39 +370,37 @@ paths: - name: version_id in: path required: true - description: >- - An identifier of the tool version for this particular tool registry, + description: An identifier of the tool version for this particular tool registry, for example `v1` schema: type: string responses: - '200': + "200": description: The tool test JSON response. content: application/json: schema: type: array items: - $ref: '#/components/schemas/FileWrapper' + $ref: "#/components/schemas/FileWrapper" text/plain: schema: type: array items: - $ref: '#/components/schemas/FileWrapper' - '404': + $ref: "#/components/schemas/FileWrapper" + "404": description: The tool can not be output in the specified type. content: application/json: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" text/plain: schema: - $ref: '#/components/schemas/Error' - '/tools/{id}/versions/{version_id}/{type}/files': + $ref: "#/components/schemas/Error" + "/tools/{id}/versions/{version_id}/{type}/files": get: summary: Get a list of objects that contain the relative path and file type - description: >- - Get a list of objects that contain the relative path and file type. The + description: Get a list of objects that contain the relative path and file type. The descriptors are intended for use with the /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} endpoint. @@ -435,15 +411,13 @@ paths: - name: type required: true in: path - description: >- - The output type of the descriptor. Examples of allowable values are + description: The output type of the descriptor. Examples of allowable values are "CWL", "WDL", and "NextFlow." schema: type: string - name: id in: path - description: >- - A unique identifier of the tool, scoped to this registry, for + description: A unique identifier of the tool, scoped to this registry, for example `123456` required: true schema: @@ -451,40 +425,38 @@ paths: - name: version_id in: path required: true - description: >- - An identifier of the tool version for this particular tool registry, + description: An identifier of the tool version for this particular tool registry, for example `v1` schema: type: string responses: - '200': + "200": description: The array of File JSON responses. content: application/json: schema: type: array items: - $ref: '#/components/schemas/ToolFile' + $ref: "#/components/schemas/ToolFile" text/plain: schema: type: array items: - $ref: '#/components/schemas/ToolFile' - '404': + $ref: "#/components/schemas/ToolFile" + "404": description: The tool can not be output in the specified type. content: application/json: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" text/plain: schema: - $ref: '#/components/schemas/Error' - '/tools/{id}/versions/{version_id}/containerfile': + $ref: "#/components/schemas/Error" + "/tools/{id}/versions/{version_id}/containerfile": get: summary: Get the container specification(s) for the specified image. operationId: toolsIdVersionsVersionIdContainerfileGet - description: >- - Returns the container specifications(s) for the specified image. For + description: Returns the container specifications(s) for the specified image. For example, a CWL CommandlineTool can be associated with one specification for a container, a CWL Workflow can be associated with multiple specifications for containers @@ -493,8 +465,7 @@ paths: parameters: - name: id in: path - description: >- - A unique identifier of the tool, scoped to this registry, for + description: A unique identifier of the tool, scoped to this registry, for example `123456` required: true schema: @@ -502,34 +473,33 @@ paths: - name: version_id in: path required: true - description: >- - An identifier of the tool version for this particular tool registry, + description: An identifier of the tool version for this particular tool registry, for example `v1` schema: type: string responses: - '200': + "200": description: The tool payload. content: application/json: schema: type: array items: - $ref: '#/components/schemas/FileWrapper' + $ref: "#/components/schemas/FileWrapper" text/plain: schema: type: array items: - $ref: '#/components/schemas/FileWrapper' - '404': + $ref: "#/components/schemas/FileWrapper" + "404": description: There are no container specifications for this tool content: application/json: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" text/plain: schema: - $ref: '#/components/schemas/Error' + $ref: "#/components/schemas/Error" /metadata: get: summary: Return some metadata that is useful for describing this registry @@ -538,15 +508,15 @@ paths: tags: - GA4GH responses: - '200': + "200": description: A Metadata object describing this service. content: application/json: schema: - $ref: '#/components/schemas/Metadata' + $ref: "#/components/schemas/Metadata" text/plain: schema: - $ref: '#/components/schemas/Metadata' + $ref: "#/components/schemas/Metadata" /toolClasses: get: summary: List all tool types @@ -556,22 +526,22 @@ paths: tags: - GA4GH responses: - '200': + "200": description: A list of potential tool classes. content: application/json: schema: type: array items: - $ref: '#/components/schemas/ToolClass' + $ref: "#/components/schemas/ToolClass" text/plain: schema: type: array items: - $ref: '#/components/schemas/ToolClass' + $ref: "#/components/schemas/ToolClass" externalDocs: description: Description of GA4GH Tool Registry (Exchange) Schema - url: 'https://github.com/ga4gh/tool-registry-schemas' + url: https://github.com/ga4gh/tool-registry-schemas servers: - url: /api/ga4gh/v2 components: @@ -587,8 +557,7 @@ components: offset: name: offset in: query - description: >- - Start index of paging. Pagination results can be based on numbers or + description: Start index of paging. Pagination results can be based on numbers or other values chosen by the registry implementor (for example, SHA values). If this exceeds the current result set return an empty set. If not specified in the request, this will start at the beginning of the @@ -601,8 +570,7 @@ components: properties: path: type: string - description: >- - Relative path of the file. A descriptor's path can be used with the + description: Relative path of the file. A descriptor's path can be used with the GA4GH .../{type}/descriptor/{relative_path} endpoint file_type: type: string @@ -614,8 +582,7 @@ components: - OTHER ToolClass: type: object - description: >- - Describes a class (type) of tool allowing us to categorize workflows, + description: Describes a class (type) of tool allowing us to categorize workflows, tasks, and maybe even other entities (such as services) separately properties: id: @@ -626,13 +593,10 @@ components: description: A short friendly name for the class description: type: string - description: >- - A longer explanation of what this class is and what it can - accomplish + description: A longer explanation of what this class is and what it can accomplish Tool: type: object - description: >- - A tool (or described tool) is defined as a tuple of a descriptor file + description: A tool (or described tool) is defined as a tuple of a descriptor file (which potentially consists of multiple files), a set of container images, and a set of instructions for creating those images. required: @@ -645,27 +609,26 @@ components: properties: url: type: string - example: 'http://agora.broadinstitute.org/tools/123456' + example: http://agora.broadinstitute.org/tools/123456 description: The URL for this tool in this registry id: type: string example: 123456 - description: 'A unique identifier of the tool, scoped to this registry' + description: A unique identifier of the tool, scoped to this registry aliases: type: array items: type: string example: - 630d31c3-381e-488d-b639-ce5d047a0142 - - 'dockstore.org:630d31c3-381e-488d-b639-ce5d047a0142' - - 'bio.tools:630d31c3-381e-488d-b639-ce5d047a0142' + - dockstore.org:630d31c3-381e-488d-b639-ce5d047a0142 + - bio.tools:630d31c3-381e-488d-b639-ce5d047a0142 description: >- OPTIONAL A list of strings that can be used to identify this tool. - This can be used to expose alternative ids (such as GUIDs) for a - tool + This can be used to expose alternative ids (such as GUIDs) for a tool for registries. Can be used to match tools across registries. organization: @@ -675,26 +638,22 @@ components: type: string description: The name of the tool. toolclass: - $ref: '#/components/schemas/ToolClass' + $ref: "#/components/schemas/ToolClass" description: type: string description: The description of the tool. author: type: string - description: >- - Contact information for the author of this tool entry in the + description: Contact information for the author of this tool entry in the registry. (More complex authorship information is handled by the descriptor) meta_version: type: string - description: >- - The version of this tool in the registry. Iterates when fields like + description: The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated. contains: - description: >- - An array of IDs for the applications that are stored inside this - tool - example: 'https://bio.tools/tool/mytum.de/SNAP2/1' + description: An array of IDs for the applications that are stored inside this tool + example: https://bio.tools/tool/mytum.de/SNAP2/1 type: array items: type: string @@ -703,18 +662,15 @@ components: description: Whether this tool has a checker tool associated with it checker_url: type: string - description: >- - Optional url to the checker tool that will exit successfully if this + description: Optional url to the checker tool that will exit successfully if this tool produced the expected result given test data. verified: type: boolean - description: >- - Reports whether this tool has been verified by a specific + description: Reports whether this tool has been verified by a specific organization or individual verified_source: type: string - description: >- - Source of metadata that can support a verified tool, such as an + description: Source of metadata that can support a verified tool, such as an email or URL signed: type: boolean @@ -723,11 +679,10 @@ components: description: A list of versions for this tool type: array items: - $ref: '#/components/schemas/ToolVersion' + $ref: "#/components/schemas/ToolVersion" ToolVersion: type: object - description: >- - A tool version describes a particular iteration of a tool as described + description: A tool version describes a particular iteration of a tool as described by a reference to a specific image and/or documents. required: - url @@ -739,11 +694,10 @@ components: url: type: string description: The URL for this tool in this registry - example: 'http://agora.broadinstitute.org/tools/123456/1' + example: http://agora.broadinstitute.org/tools/123456/1 id: type: string - description: >- - An identifier of the version of this tool for this particular tool + description: An identifier of the version of this tool for this particular tool registry example: v1 image: @@ -752,8 +706,7 @@ components: example: quay.io/seqware/seqware_full/1.1 registry_url: type: string - description: >- - A URL to a Singularity registry is provided when a specific type of + description: A URL to a Singularity registry is provided when a specific type of image does not use ids in the Docker format. Used along with image_name to locate a specific image. image_name: @@ -763,29 +716,25 @@ components: type: array description: The type (or types) of descriptors available. items: - $ref: '#/components/schemas/DescriptorType' + $ref: "#/components/schemas/DescriptorType" containerfile: type: boolean description: Reports if this tool has a containerfile available. meta_version: type: string - description: >- - The version of this tool version in the registry. Iterates when + description: The version of this tool version in the registry. Iterates when fields like the description, author, etc. are updated. verified: type: boolean - description: >- - Reports whether this tool has been verified by a specific + description: Reports whether this tool has been verified by a specific organization or individual verified_source: type: string - description: >- - Source of metadata that can support a verified tool, such as an + description: Source of metadata that can support a verified tool, such as an email or URL DescriptorType: type: string - description: >- - The type of descriptor that represents this version of the tool (e.g. + description: The type of descriptor that represents this version of the tool (e.g. CWL, WDL, or NFL). Note that these files can also include associated Docker/container files and test parameters that further describe a version of a tool @@ -798,11 +747,9 @@ components: description: > A file provides content for one of - - A tool descriptor is a metadata document that describes one or more - tools. + - A tool descriptor is a metadata document that describes one or more tools. - - A tool document that describes how to test with one or more sample - test + - A tool document that describes how to test with one or more sample test JSON. @@ -817,18 +764,15 @@ components: description: The content of the file itself. One of url or content is required. url: type: string - description: >- - Optional url to the underlying content, should include version + description: Optional url to the underlying content, should include version information, and can include a git hash. Note that this URL should resolve to the raw unwrapped content that would otherwise be available in content. One of url or content is required. example: descriptorfile: - url: >- - https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl + url: https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl containerfile: - url: >- - https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile + url: https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile Metadata: type: object description: Describes this registry to better allow for mirroring and indexing. @@ -841,16 +785,13 @@ components: description: The version of this registry api_version: type: string - description: >- - The version of the GA4GH tool-registry API supported by this - registry + description: The version of the GA4GH tool-registry API supported by this registry country: type: string description: A country code for the registry (ISO 3166-1 alpha-3) friendly_name: type: string - description: >- - A friendly name that can be used in addition to the hostname to + description: A friendly name that can be used in addition to the hostname to describe a registry Error: type: object From ae76fdb6fb63b8fb66b6ed98ad74c869098c0028 Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Thu, 28 Feb 2019 10:22:10 -0500 Subject: [PATCH 040/102] Feature/docs generation (#67) * OpenAPI changed * TRS documentation update (#64) * Add deploy to gh-pages script * Use env variable * Temporary key change for forked repo * OpenAPI changed * Move scripts * Show Git status just in case * Run scripts * Update openAPI3.sh * Update update-ghpages.sh --- .gitignore | 6 + .travis.yml | 18 +- build.gradle | 107 ++ github_deploy_key.enc | Bin 3248 -> 3248 bytes package-lock.json | 2343 ++++++++++++++++++++++++++++++ package.json | 22 + scripts/buildui.js | 21 + deploy.sh => scripts/openAPI3.sh | 2 +- scripts/update-ghpages.sh | 29 + src/asciidoc/index.adoc | 3 + 10 files changed, 2543 insertions(+), 8 deletions(-) create mode 100644 build.gradle create mode 100644 package-lock.json create mode 100644 package.json create mode 100755 scripts/buildui.js rename deploy.sh => scripts/openAPI3.sh (87%) create mode 100644 scripts/update-ghpages.sh create mode 100644 src/asciidoc/index.adoc diff --git a/.gitignore b/.gitignore index e69de29b..7e326b28 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,6 @@ +.gradle/ +gradle/ +gradlew +gradlew.bat +node_modules/ +spec/ diff --git a/.travis.yml b/.travis.yml index 375b87c8..5fba356a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,3 @@ -language: node_js -node_js: - - "lts/*" - jobs: include: - stage: check-links @@ -9,9 +5,17 @@ jobs: script: markdown-link-check ./README.md - stage: commit-OpenAPI install: npm i -g swagger2openapi - script: + script: - swagger2openapi src/main/resources/swagger/ga4gh-tool-discovery.yaml -o src/main/resources/swagger/openapi.yaml after_success: - git checkout -B ${TRAVIS_BRANCH} - - bash deploy.sh - + - bash scripts/update-openAPI3.sh + - stage: build_pages + language: java + jdk: oraclejdk8 + script: + - "gradle wrapper" + - "chmod +x gradlew" + - "./gradlew installSwagger buildSwagger asciidoctor" + after_success: + - bash scripts/update-ghpages.sh diff --git a/build.gradle b/build.gradle new file mode 100644 index 00000000..b6900dd7 --- /dev/null +++ b/build.gradle @@ -0,0 +1,107 @@ +buildscript { + repositories { + jcenter() + mavenCentral() + maven { url 'http://oss.jfrog.org/artifactory/oss-snapshot-local/' } + maven { + url "https://plugins.gradle.org/m2/" + } + //mavenLocal() + } + dependencies { + classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3' + classpath 'io.github.swagger2markup:swagger2markup-gradle-plugin:1.3.1' + classpath "io.github.swagger2markup:swagger2markup:1.3.1" + classpath "io.github.swagger2markup:swagger2markup-import-files-ext:1.3.1" + classpath "com.bluepapa32:gradle-watch-plugin:0.1.5" + classpath "org.kordamp.gradle:livereload-gradle-plugin:0.2.1" + classpath "com.moowork.gradle:gradle-node-plugin:1.2.0" + } +} + +apply plugin: 'org.asciidoctor.convert' +apply plugin: 'com.bluepapa32.watch' +apply plugin: 'org.kordamp.gradle.livereload' +apply plugin: 'io.github.swagger2markup' +apply plugin: 'com.moowork.node' +node { + version = '8.9.0' + download = true +} + +group 'io.github.swagger2markup' +version '1.3.1' + +repositories { + jcenter() + mavenCentral() +} + +ext { + asciiDocDir = file("src/asciidoc") + asciiDocOutputDir = file("docs/asciidoc/swagger2markup") +} + +convertSwagger2markup { + swaggerInput file("src/main/resources/swagger/ga4gh-tool-discovery.yaml").getAbsolutePath() + outputDir asciiDocOutputDir + config = ['swagger2markup.markupLanguage' : 'ASCIIDOC', + 'swagger2markup.extensions.dynamicDefinitions.contentPath' : file('docs/asciidoc/swagger2markup/definitions').absolutePath, + 'swagger2markup.extensions.dynamicOverview.contentPath' : file('docs/asciidoc/swagger2markup/overview').absolutePath, + 'swagger2markup.extensions.dynamicPaths.contentPath' : file('docs/asciidoc/swagger2markup/paths').absolutePath, + 'swagger2markup.extensions.dynamicSecurity.contentPath' : file('docs/asciidoc/swagger2markup/security').absolutePath] +} + +asciidoctorj { + version = '1.5.5' +} + +asciidoctor { + dependsOn convertSwagger2markup + sourceDir asciiDocDir + outputDir file("docs") + sources { + include 'index.adoc' + } + backends = ['html5', 'pdf'] + attributes = [ + doctype: 'book', + toc: 'left', + toclevels: '3', + numbered: '', + sectlinks: '', + sectanchors: '', + hardbreaks: '', + generated: asciiDocOutputDir + ] +} + +dependencies { + // add converters and extensions using `asciidoctor` configuration + asciidoctor 'org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.15' +} + +watch { + asciidoc { + files fileTree('docs/asciidoc') + tasks 'asciidoctor' + } +} + +liveReload { + docRoot asciidoctor.outputDir.canonicalPath +} + + +task wrapper(type: Wrapper) { + gradleVersion = '3.5' +} + +task installSwagger(type: NpmTask) { + npmCommand = ["install"] +} + +task buildSwagger(type: NpmTask) { + npmCommand = ["run", "build"] +} + diff --git a/github_deploy_key.enc b/github_deploy_key.enc index 010bb9feed50f1dd66e36e59f9ad4fb8a0c2da82..9e3718a721f18294ad93453a35605511c979413d 100644 GIT binary patch literal 3248 zcmV;h3{Uex&oshYQ!ugiWJSrzW~Q;i4fMZoKmhKIekUkX)*b|dzhJp0ozAE32~f4X z?;{^vT`rSP;;otpPjyWiY85iyPYx4xH}i#!3k78maB!|aL+c0m%#)1O@^ijT9mFw9qa8I=975n|dM)g=>q6y;1b~4BXv3fb~nQ1Ym_QooWIR37^_|WAAZAMGDZUn00F{JwyC9v#LPqz?4rnbEX|+y7hMGW39aH0{D%SD6715Yh zS|L(|=-q`;e~m;qp#wh1z|!OZ65A3R&zWU!s3v!N6{NUO2kB6r72O5MQop#nhszG) z5oY^x+ei}08dbD6FwgN6Z!P%8|J6XW)S!JxT*D(&V$9w&dn>~1tblNw2QBf>*`=;} znq|_$5GqKu{8bgdR{&%{rZ?jzA8C&q=E#|aTHh?>a!!FCm>4Ivw|Y4CQYFrdRb9in zggxOY;TBKyHrX;$xS~?)A$8vkjbPesq0xEzc4)>vS7#SNl@eJt6^`?46B(&FiiI+{ z5&YL#@RWV!M^|jQl$-JPwhG~3kbowfN}^--^X}aww!CDAeOqq#rR6n&7Q`9m?}Ezy zpn~bZNis5iuN4+6az~5C`@n-{yN@SiJOG<)hf`FDnqN=MT~a2QjO3Q4@ zptkp1@W#A~niFm7cO6tVyrFr8D|r!pzA9&b`oeUzjh;3GHw(WhG`|<)!C7fq-v%+Z zx{S>lokRma?mN>?AUG_~nmRS0Tde>XBYT2z1{mPhyo)l?)HDx@H0Ki)Xc7Co8>XxM zB+3Pc+XL?j%M+Nkh>2Bi7cOHo2%$T3?Y$iids_14fKjBnNrFx@hd(CHh6N#7&<~jlB_H^@to*sH zbPd&S|2bFpw&I>iI7;#4#N{mB2sg)ig4ksJ;?QFibYt1$bnNlyNQgFJ9n%8ze578- z16|jK+XKSj`6@vFpkwkl9Ida54R-<-%!UM#`DW(&)}^GiX<;e)6s*wQhgWJ(piZeX z&G}SjAwvmEz7~lR+CM$eNQsJ&`P|f8z*`{R+fU^%VMO^HgLk0mVUxq`7MY*J)MCEh zVx08_9WQ~o}OD(=mntE;tl z$7rF^0+6EICun7$bG+SbjSSoYliXNrl$vDIFR%dfDAW?8YI?ZD@g_e%jtl&p+sz

*<9G7p_7i>xddz$C%C(_E1b8^}t$hN)g&wWoclGSr+Y_4uvCjHu1tL{I zZ;{bQPYihZc>XEOwPi6S>Zm&6k()ulL`h@eBVjHmpP|^(Rm+M2ImiahkZv3F=u) zFB65sHwas~=9qe+1zu@f?Ts}!XPt(kKQE` zmKeS=iD}>R*9Fh?nQ*>`DjwJ1N^^`M^F0?vPsRQ%W^?I^+z(QDImv2ggX=Uk=<$8d21V@qBGBm(;9Dngd7It%moq7}q>SQxSu^BU z9S#NO22!;yOVu=l;}Vf&LrS`Up?YqW(Rh>&GlAn7gVq%09C+-AR!~kS9UXfnXMJ2< zyb!1dN)E3^9x_@CQt5bEUCbk2^zru!OTvc(JqEu9%p^oOoE48;3D)E${1NjKl=IHz ze8qKPBx5~`?u2O~bU_NN4b5$Wh0D1DfbLzYq7lq14Saf|O##l^7pP${tGz8jVG3X(1U66@KhA9J)bVM$I=|@y@jW|LXAi}6jzzrH zc|AX8iMtVBIr;ZN%n1#(Z*?`wj~%uUlnPUdLID!*CO^G5h`Acy3;(fY{Ryf}bua2f zKOld%TMKmnS=AgLX-8?;Yoy!W=bh4kQME3)e%%#B?pu-hnyA8fIV~7CI3sNY?AHe5 zA{dA2rOjS4??>DYU$~CxFv@|u7z)H)I{UaxY&2ro{-qJ#Z~k+qYs%IeFy_r!#wS@Q zf;ulzBM=JfhV35gaw=aZo*zNPmpa^42AU;7*{>mu(|C6Mo#Wb zw65L85+Hp4%w~a-hoSJUmwZR?{=3=JMzmL@nXyx`VrJg@C{WfJGU@uMn;M9D0g;~2 z0o55GaO1wCU#5d*lo=!YRqC!Bs(PU8_++<1O3fqk%#z#SPJm6iBGwzb?zoknn=ZB%WX8UB+sar$G}r#I!iT< zesFY{>tzCCiA`q};U6aZj2DmZh_8Qt#qIWy{5&2j68AZTv348cNUH-&Q zM8(n5{)Y2D?oMy+GUSme_&4H85m=**TvG!by%W;9NH~?H+Lq}j05)K|0oC3c>Ib2C zxKzNM%OI|388WWd=d(m)hDN*J<0H`n z_g~q)9nC>PDy!|n)Kvm!+mFUB{|0Y6bzU7!dZx4cFRRmKFf|kgq0%fH?$6a`hSnXMT`^1=f`c?2yflBXAKgzAYaX&HtmQMtMHf$1UOEP&!QHjuh9t&?6 zH+Hd&Kh`i-7MSIlWaVVrfhm@gQ_@e$k3Q?;%!)xrB9di-^LQO+#B3(a&QL(n^#TzP i^#>&FhiLs(t`!6FUW9iX)6}!lc!OoR-Pj3kwO^RDGD=DS literal 3248 zcmV;h3{Ue3PJ&RjfjrV19A>9EDI68X9@^6T4gx=1WS6Rt6(Vg$L$mkTWvZndTCeD( z6di~UXhkWHF0q@AE|_w=momVWD+Z?1kK?utu=4Vg&#v5hCx4x6ccDjtsyT?~&)5_mw`$xEG@>;?H zCctZt)#P6aUl{LpxCF$6VV0NwA{0fNhf$?Sy_#h*RY(6_JOj2Tf3A4Gg!i2hi#SYw zFpqFIkWWnF!iOQp4DvWI>%aTLK-4c}dZOJ1+^SEZoqb;>?gh>}Nc)A$NGoVf-`uCn z+hO6#{%}jUTSr(36LpfQVtR5(&SHU4RJo!hHdyTwKlu1ny~1fqT^% zm&No9C*=IuA|k$+WAI*>cJyWP$oESxE2`Fgl+7h2^v#>QOL-r{*BH!c$X7{@7w^oh z7IBqLrDpjeHmkTYFdhp=cQx&j7?#Ol_A1)l?`|G1cyantl0gL_a#qX>vZJvW;DJn&vdUrPU;Fm&SS@LjS|j?dn4 zMLsvsl)eLWt^%u5&6jF>aA~eZvy{@wtyRg;>efU6+8uJfbzMvAx#_eke2fnY*WP1! z&j$9SU|kKxQe|pF;2m3F=>;vuCcv_Kn|u`bmKIZ$%1j8Sb%|QscC@iW%#C@9Sui@e zIoRzL|BcF;{onzobl_+(Zk33wMt8b8&QP@8w#Gngn8Gr(kzgLJ#22aa zf2r__yp3w{6gJzv=?4pv!e;{TlOLM*oWsAWHV#xOA>fh`C7hT)6K@2lkV&Fjch}2N z%Q`z``YxvMiieHiEA!U-%7JQSu9-Qd!y~PrdyN_s`}t)W9R&_|GFn3RA+$`5K^Y;a zzTOi^Pd8yy1q-Obf1&W)M(-$OM!m&ad0hn~cil$b)wM|antHzINL3>?p+$D&rCP>^ z(Dw)?{|&NnfQdxAJU%-_xb&XD;C1*4<<-0@xC|2jM1bS5as@t8eU#jqyZ3xrwuYOx z%RYlJbYRb<)v4*WqF+;)b4@d(Rd4BR=OCYYjQ~gGDsdhv7vc z+sl=5?34Eyf(`m@V_L1=siHDq%P2aVd&s6k2vM}Cp*OEa;xTDmsK*REvfwAG-ntjk zP=O3QbD32Rd=2dB$2oL*W43-*5V6Tf8(_%IM63PP)G_C4=qT7|}Vu9_-I$ zGa{g7!7n$f!|UFPe}DS;Punfc_jW5kaDuacxRBZ0xYrCRLi<(@Jzp&#sbd=Q188uH z6qoEp={PWkMgH-9n@|J^%NS73Y~+bY`V$jcV0 ztx8N$%jL827$0ywDlN!5!)43;B=#tm;XFz^@Mt?~3dQ+Wy0W6E9#OKmH_>X>yy>}< zs7p@BOjT2_#{fL(1zjf#Jf>|5J;Uq}@Oc-+sY*2!|GJOnfdHpv$~73qg7;r&x6UMT z_j^MJH#u4a1={i4ijO%9$lab`VMRb!;}246m6A&#oX$&M4T;z%;SpE!C2#W>XJDsk z{7HPg^nd{w6uml95uJ#nF)|M(*mb@efbHj*f{j_I<0p5+Z5JDeVVXd)53go_5a6YH zZ`>1ia=f9OP-WGRdub;utb;D%MY{U0B9+mbHa+O#a7Azjf{QZfB+GCKi{u{Vsg~^> z5=jDsST_7YM%WL+Rqy*lHnXPr8_FxPqY@V+ZNt;v49pj}UcRBD{bDApuMypD_tzE0 zZ%tiEBuz|Z#@4VQTV1s-VQU!eZ~@mj5~$6>xbQC})D-MBt20}%V`#a*8*G!Rkvcij zh7zsk7si4>#$_@*J@OPsmES$8Nb4&i{~Ao^eB?u>_u6GrH5_h0<$^Fvu@w_IMZQ0; z48^ljna4Dl>Fr_u9{p4?mO)W8%shY{Q5hV^b@+nY;j{7Lb9e{v0$FLsyb#!gNzsR& z2ORYVMnYMLr3@~Up-+=K@bCU8g;4fjXmZKz<^IU-P_Us=Z%he@D2Y!Rd9!+BoPChX z$wLrgVbqks_voao8%tw02DWC{qjhEirgXdlKTap-nJbMhR1;Dm4lzD~mPX}~ueelk zRg-P-3v5C+iAAm?SsfOyQpxD%{)K~bO1TXJ4W&*_!D5j(6}jcc{;0c78Ux&CGW{i# zXG32S%i(Sc=wO{W)Pa`b{TPXDfR;DXF{F^!} z#G`dUQ4NDLyjpoxU5G3DrigBDTz?OB5tu|m@N_k48m6GwHEb7nmA9J&78$ts_)9Ox zC|C(Qs~dkgUF`6GM8m3>OTMSjdNKEAnA1yzea?CA1sS0MVM1Eu<|D=o+Db=q2i1zJO!)``uR6Z0*drc!zgh39gUjZmXD zzkqY~{p7SDD==DiW(9p?oaPRN;RNyFPFR()1xFMya%MD>H@o~kqo;gnU240YYo3&K z3JU!?A8{oLk_sDOHCPj`9vn5C@aK5(>_f=`@`QS{LMK);(QojR*2D;BX5U_kVWI{= z=_pZy0ptHv`_Gs2d-w8OCU@s$dbikd(*LbNeuQfW!9t%Eo_SMfBWBNe{gvMHonZIF zh$i0*DB4j31vh!!Nhz!%eA8%FSO17|zgST`F2#Zei0VD1OPQZa_rCm;su=W86Ikz@ z@DahCL6>h;(4i9)rxMITG2xVWjycKH43-+ucUgT{>{}h|iO_$_nOq46sb?Q%iJ&zM zjT*R|zh-2JnX#kQ>I9CUGM4m`G;d1@s;$=1VtlV*Bzc3YAukPCtu%Ekg<+yALPaL@ zcb~bYP!1(c+-{l{N@B9u>G6&s{uM@Yg|k zLesDjo)A5Yx<6XQ+k#x~dm$s%>QB$IAFU}hvfrb7&#Ta>GH|dIC!dMx> zW$cB6D>;E^$gToqAs*$=i$>QZn{u?><+Tk)LWq}LpHVVRcxGu^Q}zIUrAuwUhMu@y z$Noj>7gc+~$YIMIs%Y Date: Thu, 28 Feb 2019 13:35:35 -0500 Subject: [PATCH 041/102] Update README.md (#68) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fd0c6e15..753f25ae 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ See the swagger editor to view our [schema in progress](https://editor.swagger.i How to contribute changes ------------------------- -Take cues for now from the [ga4gh/schemas](https://github.com/ga4gh/schemas/blob/master/CONTRIBUTING.rst) document. +Take cues for now from the [CONTRIBUTING.md]https://github.com/ga4gh/tool-registry-service-schemas/blob/develop/CONTRIBUTING.md) document. At the very least, create an issue in our [Github tracker](https://github.com/ga4gh/tool-registry-schemas/issues). From 9899785fdebe9e76aea0dc6dffbcd73a67b4453d Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Thu, 28 Feb 2019 15:53:16 -0500 Subject: [PATCH 042/102] Update README.md (#69) * Update README.md * Link docs --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 753f25ae..d18ac0f0 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,9 @@ Schemas for the GA4GH Tool Registry API This repository is the home for the schema for the GA4GH Tool Registry API. The goal of the API is to provide a standardized way to describe the availability of tools and workflows. In this way, we can have multiple repositories that share Docker-based tools and WDL/CWL-based workflows and have a consistent way to interact, search, and retrieve information from these various registries. The end goal is to make it much easier to share scientific tools and workflows, enhancing our ability to make research reproducible, sharable, and transparent. -**[View in the Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/src/main/resources/swagger/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* +**See the human-readable [Reference Documentation](https://ga4gh.github.io/tool-registry-service-schemas/Introduction/). You can also explore the specification in the [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/src/main/resources/swagger/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* + +See our generated doc The [Global Alliance for Genomics and Health](http://genomicsandhealth.org/) (GA4GH) is an international coalition, formed to enable the sharing of genomic and clinical data. @@ -49,7 +51,7 @@ See the swagger editor to view our [schema in progress](https://editor.swagger.i How to contribute changes ------------------------- -Take cues for now from the [CONTRIBUTING.md]https://github.com/ga4gh/tool-registry-service-schemas/blob/develop/CONTRIBUTING.md) document. +Take cues for now from the [CONTRIBUTING.md](https://github.com/ga4gh/tool-registry-service-schemas/blob/develop/CONTRIBUTING.md) document. At the very least, create an issue in our [Github tracker](https://github.com/ga4gh/tool-registry-schemas/issues). From d3b37d98d616e683dc20ca853580f6410f7fe320 Mon Sep 17 00:00:00 2001 From: Chris Llanwarne Date: Thu, 28 Feb 2019 16:22:45 -0500 Subject: [PATCH 043/102] Clarify schema change README (#57) * Clarify schema change README * Both files need changing * Update README.md * Update README.md --- src/main/resources/swagger/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/resources/swagger/README.md b/src/main/resources/swagger/README.md index f932c4b2..9368c996 100644 --- a/src/main/resources/swagger/README.md +++ b/src/main/resources/swagger/README.md @@ -1,3 +1,7 @@ ## Instruction for modifying the TRS -To make changes to the TRS, modify the swagger yaml file. This swagger yaml file will be used in the validation server. +To make changes to the TRS, join the GA4GH organization or ask to join this repository as a collaborator. Then in your branch, modify: + - The swagger yaml file (`ga4gh-tool-discovery.yaml`) with a Swagger 2 definition of the changes. + - This swagger yaml file will be used in the validation server. + - An OpenAPI yaml file (`openapi.yaml`) with an OpenAPI 3 definition of the changes will be auto-generated by swagger2openapi and checked in by an automated TravisCI build + From 95a39a5e70494465c39a5522e964cb6bbe98b4de Mon Sep 17 00:00:00 2001 From: Susheel Varma Date: Mon, 11 Mar 2019 15:45:55 +0100 Subject: [PATCH 044/102] Update BasePath (#72) Updated base path to `basePath: `/ga4gh/trs/v2` --- src/main/resources/swagger/ga4gh-tool-discovery.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index c35b5d23..6d45b52c 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -18,7 +18,7 @@ info: produces: - application/json - text/plain -basePath: /api/ga4gh/v2 +basePath: /ga4gh/trs/v2 tags: - name: GA4GH description: A set of resources proposed as a common standard for tool repositories From 5752f8c7a22e3994d197ab222cde37791ff7cceb Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Mon, 11 Mar 2019 15:34:18 -0400 Subject: [PATCH 045/102] Update ga4gh-tool-discovery.yaml (#74) --- src/main/resources/swagger/ga4gh-tool-discovery.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 6d45b52c..7022aaf9 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -347,7 +347,7 @@ paths: in: path description: >- The output type of the descriptor. Examples of allowable values are - "CWL", "WDL", and "NextFlow." + "CWL", "WDL", and "NFL". type: string - name: id in: path From 3b7159455613554f52f17335d3a3a42b35099c06 Mon Sep 17 00:00:00 2001 From: Susheel Varma Date: Tue, 2 Apr 2019 19:43:27 +0100 Subject: [PATCH 046/102] Updated LICENCE Copyright (#76) * Updated LICENCE Copyright * Minor correction --- LICENSE | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index ad410e11..14931e80 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ Apache License same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright {yyyy} {name of copyright owner} + Copyright 2019 Global Alliance for Genomics and Health Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -198,4 +198,4 @@ Apache License distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and - limitations under the License. \ No newline at end of file + limitations under the License. From c02f3028293ab669fb6af8ca16ad421118ae0207 Mon Sep 17 00:00:00 2001 From: Paolo Di Tommaso Date: Mon, 22 Apr 2019 23:58:49 +0200 Subject: [PATCH 047/102] Include mention to Nextflow (#77) * Include mention to Nextflow Mentioning nextflow as long the API is supporting workflows based on Nextflow language (NFL) https://github.com/pditommaso/tool-registry-service-schemas/blob/develop/src/main/resources/swagger/openapi.yaml#L741-L744 * Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d18ac0f0..958f4a3a 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Schemas for the GA4GH Tool Registry API ======================================= -This repository is the home for the schema for the GA4GH Tool Registry API. The goal of the API is to provide a standardized way to describe the availability of tools and workflows. In this way, we can have multiple repositories that share Docker-based tools and WDL/CWL-based workflows and have a consistent way to interact, search, and retrieve information from these various registries. The end goal is to make it much easier to share scientific tools and workflows, enhancing our ability to make research reproducible, sharable, and transparent. +This repository is the home for the schema for the GA4GH Tool Registry API. The goal of the API is to provide a standardized way to describe the availability of tools and workflows. In this way, we can have multiple repositories that share Docker-based tools and WDL/CWL/Nextflow-based workflows and have a consistent way to interact, search, and retrieve information from these various registries. The end goal is to make it much easier to share scientific tools and workflows, enhancing our ability to make research reproducible, sharable, and transparent. **See the human-readable [Reference Documentation](https://ga4gh.github.io/tool-registry-service-schemas/Introduction/). You can also explore the specification in the [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/src/main/resources/swagger/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* @@ -25,21 +25,21 @@ The Containers & Workflows working group is an informal, multi-vendor working gr What is the Tool Registry API Schema? ------------------------------------- -This is the home of the schema for the GA4GH Tool Registry API. The GA4GH Tool Registry API is a standard for listing and describing available tools (both stand-alone, Docker-based tools as well as workflows in CWL or WDL) in a given registry. This defines a minimal, common API describing tools that we propose for support by multiple tool/workflow registries like [Dockstore](https://www.dockstore.org/), [BioContainers](https://biocontainers.pro), and [Agora](https://github.com/broadinstitute/agora) for the purposes of exchange, indexing, and searching. +This is the home of the schema for the GA4GH Tool Registry API. The GA4GH Tool Registry API is a standard for listing and describing available tools (both stand-alone, Docker-based tools as well as workflows in CWL, WDL or Nextflow) in a given registry. This defines a minimal, common API describing tools that we propose for support by multiple tool/workflow registries like [Dockstore](https://www.dockstore.org/), [BioContainers](https://biocontainers.pro), and [Agora](https://github.com/broadinstitute/agora) for the purposes of exchange, indexing, and searching. Our current proposal is to start with a read-only API due to potentially different views and approaches to registration/security. Key features of the current API proposal: * read-only API -* May serve up CWl or WDL to describe a tool or represent a workflow depending on the tool/workflow submitter +* May serve up CWL, WDL or Nextflow to describe a tool or represent a workflow depending on the tool/workflow submitter * ID: globally unique across systems and also identifies the system that it came from (ex: 123456323@agora.broadinstitute.org ) Outstanding questions: * How do we track authorship? Should we track authorship of the tool metadata, the Docker image, or the underlying algorithm, or all of above? * How to describe indexing and external services like an external [sparql](https://github.com/common-workflow-language/workflows#sparql) service. -* Terminology discussion (do we describe triples separately from tools? should we describe them as aggregations of tools for just the case that CWL documents have more than one tool? etc.) +* Terminology discussion (do we describe triples separately from tools? should we describe them as aggregations of tools for just the case that documents have more than one tool? etc.) How to view From 4ba0d42c815b9f2cd96d06cc1c805857571b490b Mon Sep 17 00:00:00 2001 From: Chris Llanwarne Date: Mon, 22 Apr 2019 17:59:03 -0400 Subject: [PATCH 048/102] Allow for more than one container image (#58) * Allow for more than one container image * Typo * fix type, update OpenAPI version * fix array examples * Update ga4gh-tool-discovery.yaml * Update openapi.yaml --- .../swagger/ga4gh-tool-discovery.yaml | 55 +++++++++++++++---- src/main/resources/swagger/openapi.yaml | 52 ++++++++++++++---- 2 files changed, 83 insertions(+), 24 deletions(-) diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index 7022aaf9..cdf29452 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -578,19 +578,13 @@ definitions: An identifier of the version of this tool for this particular tool registry example: v1 - image: - type: string - description: The docker path to the image (and version) for this tool - example: quay.io/seqware/seqware_full/1.1 - registry_url: - type: string + images: description: >- - A URL to a Singularity registry is provided when a specific type of - image does not use ids in the Docker format. Used along with - image_name to locate a specific image. - image_name: - type: string - description: Used in conjunction with a registry_url if provided to locate images + All known docker images (and versions/hashes) used by this tool. + If the tool has to evaluate any of the docker images strings at runtime, those ones cannot be reported here. + type: array + items: + $ref: '#/definitions/ImageData' descriptor_type: type: array description: The type (or types) of descriptors available. @@ -614,6 +608,43 @@ definitions: description: >- Source of metadata that can support a verified tool, such as an email or URL + ImageData: + type: object + description: Describes one container image + properties: + registry_host: + type: string + description: >- + A docker registry or a URL to a Singularity registry. Used along with + image_name to locate a specific image. + example: + - registry.hub.docker.com + image_name: + type: string + description: Used in conjunction with a registry_url if provided to locate images + example: + - quay.io/seqware/seqware_full/1.1 + - ubuntu:latest + size: + type: integer + description: >- + Size of the container in bytes + updated: + type: string + description: >- + Last time the container was updated. + image_type: + $ref: '#/definitions/ImageType' + + ImageType: + type: string + description: >- + Indicates what kind of container is this image is + enum: + - Docker + - Singularity + - Conda + DescriptorType: type: string description: >- diff --git a/src/main/resources/swagger/openapi.yaml b/src/main/resources/swagger/openapi.yaml index 6d9861fd..fddf57fb 100644 --- a/src/main/resources/swagger/openapi.yaml +++ b/src/main/resources/swagger/openapi.yaml @@ -700,18 +700,14 @@ components: description: An identifier of the version of this tool for this particular tool registry example: v1 - image: - type: string - description: The docker path to the image (and version) for this tool - example: quay.io/seqware/seqware_full/1.1 - registry_url: - type: string - description: A URL to a Singularity registry is provided when a specific type of - image does not use ids in the Docker format. Used along with - image_name to locate a specific image. - image_name: - type: string - description: Used in conjunction with a registry_url if provided to locate images + images: + description: >- + All known docker images (and versions/hashes) used by this tool. If + the tool has to evaluate any of the docker images strings at + runtime, those ones cannot be reported here. + type: array + items: + $ref: '#/components/schemas/ImageData' descriptor_type: type: array description: The type (or types) of descriptors available. @@ -732,6 +728,38 @@ components: type: string description: Source of metadata that can support a verified tool, such as an email or URL + ImageData: + type: object + description: Describes one container image + properties: + registry_host: + type: string + description: >- + A docker registry or a URL to a Singularity registry. Used along + with image_name to locate a specific image. + example: + - registry.hub.docker.com + image_name: + type: string + description: Used in conjunction with a registry_url if provided to locate images + example: + - quay.io/seqware/seqware_full/1.1 + - 'ubuntu:latest' + size: + type: integer + description: Size of the container in bytes + updated: + type: string + description: Last time the container was updated. + image_type: + $ref: '#/components/schemas/ImageType' + ImageType: + type: string + description: Indicates what kind of container is this image is + enum: + - Docker + - Singularity + - Conda DescriptorType: type: string description: The type of descriptor that represents this version of the tool (e.g. From a7314fbe6f0b9b12bcda857134a4560b2ab1d5e0 Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Wed, 15 May 2019 14:48:53 -0400 Subject: [PATCH 049/102] Rename metadata to match GA4GH PAP (#78) * Rename metadata to match GA4GH PAP * Adding zenodo reference as recommended * Adding contact URL inspired by WES for PAP From security questionaire --- .travis.yml | 2 +- README.md | 3 ++ github_deploy_key.enc | Bin 3248 -> 3248 bytes .../swagger/ga4gh-tool-discovery.yaml | 25 ++++++---- src/main/resources/swagger/openapi.yaml | 43 ++++++++++-------- 5 files changed, 46 insertions(+), 27 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5fba356a..eee7ba85 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,7 @@ jobs: - swagger2openapi src/main/resources/swagger/ga4gh-tool-discovery.yaml -o src/main/resources/swagger/openapi.yaml after_success: - git checkout -B ${TRAVIS_BRANCH} - - bash scripts/update-openAPI3.sh + - bash scripts/openAPI3.sh - stage: build_pages language: java jdk: oraclejdk8 diff --git a/README.md b/README.md index 958f4a3a..6f5ab5c1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ ![ga4gh logo](https://github.com/dockstore/dockstore-ui2/raw/develop/src/assets/images/sponsors/coloured/ga4gh.png) +[![DOI](https://zenodo.org/badge/48013867.svg)](https://zenodo.org/badge/latestdoi/48013867) + + Schemas for the GA4GH Tool Registry API ======================================= diff --git a/github_deploy_key.enc b/github_deploy_key.enc index 9e3718a721f18294ad93453a35605511c979413d..010bb9feed50f1dd66e36e59f9ad4fb8a0c2da82 100644 GIT binary patch literal 3248 zcmV;h3{Ue3PJ&RjfjrV19A>9EDI68X9@^6T4gx=1WS6Rt6(Vg$L$mkTWvZndTCeD( z6di~UXhkWHF0q@AE|_w=momVWD+Z?1kK?utu=4Vg&#v5hCx4x6ccDjtsyT?~&)5_mw`$xEG@>;?H zCctZt)#P6aUl{LpxCF$6VV0NwA{0fNhf$?Sy_#h*RY(6_JOj2Tf3A4Gg!i2hi#SYw zFpqFIkWWnF!iOQp4DvWI>%aTLK-4c}dZOJ1+^SEZoqb;>?gh>}Nc)A$NGoVf-`uCn z+hO6#{%}jUTSr(36LpfQVtR5(&SHU4RJo!hHdyTwKlu1ny~1fqT^% zm&No9C*=IuA|k$+WAI*>cJyWP$oESxE2`Fgl+7h2^v#>QOL-r{*BH!c$X7{@7w^oh z7IBqLrDpjeHmkTYFdhp=cQx&j7?#Ol_A1)l?`|G1cyantl0gL_a#qX>vZJvW;DJn&vdUrPU;Fm&SS@LjS|j?dn4 zMLsvsl)eLWt^%u5&6jF>aA~eZvy{@wtyRg;>efU6+8uJfbzMvAx#_eke2fnY*WP1! z&j$9SU|kKxQe|pF;2m3F=>;vuCcv_Kn|u`bmKIZ$%1j8Sb%|QscC@iW%#C@9Sui@e zIoRzL|BcF;{onzobl_+(Zk33wMt8b8&QP@8w#Gngn8Gr(kzgLJ#22aa zf2r__yp3w{6gJzv=?4pv!e;{TlOLM*oWsAWHV#xOA>fh`C7hT)6K@2lkV&Fjch}2N z%Q`z``YxvMiieHiEA!U-%7JQSu9-Qd!y~PrdyN_s`}t)W9R&_|GFn3RA+$`5K^Y;a zzTOi^Pd8yy1q-Obf1&W)M(-$OM!m&ad0hn~cil$b)wM|antHzINL3>?p+$D&rCP>^ z(Dw)?{|&NnfQdxAJU%-_xb&XD;C1*4<<-0@xC|2jM1bS5as@t8eU#jqyZ3xrwuYOx z%RYlJbYRb<)v4*WqF+;)b4@d(Rd4BR=OCYYjQ~gGDsdhv7vc z+sl=5?34Eyf(`m@V_L1=siHDq%P2aVd&s6k2vM}Cp*OEa;xTDmsK*REvfwAG-ntjk zP=O3QbD32Rd=2dB$2oL*W43-*5V6Tf8(_%IM63PP)G_C4=qT7|}Vu9_-I$ zGa{g7!7n$f!|UFPe}DS;Punfc_jW5kaDuacxRBZ0xYrCRLi<(@Jzp&#sbd=Q188uH z6qoEp={PWkMgH-9n@|J^%NS73Y~+bY`V$jcV0 ztx8N$%jL827$0ywDlN!5!)43;B=#tm;XFz^@Mt?~3dQ+Wy0W6E9#OKmH_>X>yy>}< zs7p@BOjT2_#{fL(1zjf#Jf>|5J;Uq}@Oc-+sY*2!|GJOnfdHpv$~73qg7;r&x6UMT z_j^MJH#u4a1={i4ijO%9$lab`VMRb!;}246m6A&#oX$&M4T;z%;SpE!C2#W>XJDsk z{7HPg^nd{w6uml95uJ#nF)|M(*mb@efbHj*f{j_I<0p5+Z5JDeVVXd)53go_5a6YH zZ`>1ia=f9OP-WGRdub;utb;D%MY{U0B9+mbHa+O#a7Azjf{QZfB+GCKi{u{Vsg~^> z5=jDsST_7YM%WL+Rqy*lHnXPr8_FxPqY@V+ZNt;v49pj}UcRBD{bDApuMypD_tzE0 zZ%tiEBuz|Z#@4VQTV1s-VQU!eZ~@mj5~$6>xbQC})D-MBt20}%V`#a*8*G!Rkvcij zh7zsk7si4>#$_@*J@OPsmES$8Nb4&i{~Ao^eB?u>_u6GrH5_h0<$^Fvu@w_IMZQ0; z48^ljna4Dl>Fr_u9{p4?mO)W8%shY{Q5hV^b@+nY;j{7Lb9e{v0$FLsyb#!gNzsR& z2ORYVMnYMLr3@~Up-+=K@bCU8g;4fjXmZKz<^IU-P_Us=Z%he@D2Y!Rd9!+BoPChX z$wLrgVbqks_voao8%tw02DWC{qjhEirgXdlKTap-nJbMhR1;Dm4lzD~mPX}~ueelk zRg-P-3v5C+iAAm?SsfOyQpxD%{)K~bO1TXJ4W&*_!D5j(6}jcc{;0c78Ux&CGW{i# zXG32S%i(Sc=wO{W)Pa`b{TPXDfR;DXF{F^!} z#G`dUQ4NDLyjpoxU5G3DrigBDTz?OB5tu|m@N_k48m6GwHEb7nmA9J&78$ts_)9Ox zC|C(Qs~dkgUF`6GM8m3>OTMSjdNKEAnA1yzea?CA1sS0MVM1Eu<|D=o+Db=q2i1zJO!)``uR6Z0*drc!zgh39gUjZmXD zzkqY~{p7SDD==DiW(9p?oaPRN;RNyFPFR()1xFMya%MD>H@o~kqo;gnU240YYo3&K z3JU!?A8{oLk_sDOHCPj`9vn5C@aK5(>_f=`@`QS{LMK);(QojR*2D;BX5U_kVWI{= z=_pZy0ptHv`_Gs2d-w8OCU@s$dbikd(*LbNeuQfW!9t%Eo_SMfBWBNe{gvMHonZIF zh$i0*DB4j31vh!!Nhz!%eA8%FSO17|zgST`F2#Zei0VD1OPQZa_rCm;su=W86Ikz@ z@DahCL6>h;(4i9)rxMITG2xVWjycKH43-+ucUgT{>{}h|iO_$_nOq46sb?Q%iJ&zM zjT*R|zh-2JnX#kQ>I9CUGM4m`G;d1@s;$=1VtlV*Bzc3YAukPCtu%Ekg<+yALPaL@ zcb~bYP!1(c+-{l{N@B9u>G6&s{uM@Yg|k zLesDjo)A5Yx<6XQ+k#x~dm$s%>QB$IAFU}hvfrb7&#Ta>GH|dIC!dMx> zW$cB6D>;E^$gToqAs*$=i$>QZn{u?><+Tk)LWq}LpHVVRcxGu^Q}zIUrAuwUhMu@y z$Noj>7gc+~$YIMIs%Y@^ijT9mFw9qa8I=975n|dM)g=>q6y;1b~4BXv3fb~nQ1Ym_QooWIR37^_|WAAZAMGDZUn00F{JwyC9v#LPqz?4rnbEX|+y7hMGW39aH0{D%SD6715Yh zS|L(|=-q`;e~m;qp#wh1z|!OZ65A3R&zWU!s3v!N6{NUO2kB6r72O5MQop#nhszG) z5oY^x+ei}08dbD6FwgN6Z!P%8|J6XW)S!JxT*D(&V$9w&dn>~1tblNw2QBf>*`=;} znq|_$5GqKu{8bgdR{&%{rZ?jzA8C&q=E#|aTHh?>a!!FCm>4Ivw|Y4CQYFrdRb9in zggxOY;TBKyHrX;$xS~?)A$8vkjbPesq0xEzc4)>vS7#SNl@eJt6^`?46B(&FiiI+{ z5&YL#@RWV!M^|jQl$-JPwhG~3kbowfN}^--^X}aww!CDAeOqq#rR6n&7Q`9m?}Ezy zpn~bZNis5iuN4+6az~5C`@n-{yN@SiJOG<)hf`FDnqN=MT~a2QjO3Q4@ zptkp1@W#A~niFm7cO6tVyrFr8D|r!pzA9&b`oeUzjh;3GHw(WhG`|<)!C7fq-v%+Z zx{S>lokRma?mN>?AUG_~nmRS0Tde>XBYT2z1{mPhyo)l?)HDx@H0Ki)Xc7Co8>XxM zB+3Pc+XL?j%M+Nkh>2Bi7cOHo2%$T3?Y$iids_14fKjBnNrFx@hd(CHh6N#7&<~jlB_H^@to*sH zbPd&S|2bFpw&I>iI7;#4#N{mB2sg)ig4ksJ;?QFibYt1$bnNlyNQgFJ9n%8ze578- z16|jK+XKSj`6@vFpkwkl9Ida54R-<-%!UM#`DW(&)}^GiX<;e)6s*wQhgWJ(piZeX z&G}SjAwvmEz7~lR+CM$eNQsJ&`P|f8z*`{R+fU^%VMO^HgLk0mVUxq`7MY*J)MCEh zVx08_9WQ~o}OD(=mntE;tl z$7rF^0+6EICun7$bG+SbjSSoYliXNrl$vDIFR%dfDAW?8YI?ZD@g_e%jtl&p+sz

*<9G7p_7i>xddz$C%C(_E1b8^}t$hN)g&wWoclGSr+Y_4uvCjHu1tL{I zZ;{bQPYihZc>XEOwPi6S>Zm&6k()ulL`h@eBVjHmpP|^(Rm+M2ImiahkZv3F=u) zFB65sHwas~=9qe+1zu@f?Ts}!XPt(kKQE` zmKeS=iD}>R*9Fh?nQ*>`DjwJ1N^^`M^F0?vPsRQ%W^?I^+z(QDImv2ggX=Uk=<$8d21V@qBGBm(;9Dngd7It%moq7}q>SQxSu^BU z9S#NO22!;yOVu=l;}Vf&LrS`Up?YqW(Rh>&GlAn7gVq%09C+-AR!~kS9UXfnXMJ2< zyb!1dN)E3^9x_@CQt5bEUCbk2^zru!OTvc(JqEu9%p^oOoE48;3D)E${1NjKl=IHz ze8qKPBx5~`?u2O~bU_NN4b5$Wh0D1DfbLzYq7lq14Saf|O##l^7pP${tGz8jVG3X(1U66@KhA9J)bVM$I=|@y@jW|LXAi}6jzzrH zc|AX8iMtVBIr;ZN%n1#(Z*?`wj~%uUlnPUdLID!*CO^G5h`Acy3;(fY{Ryf}bua2f zKOld%TMKmnS=AgLX-8?;Yoy!W=bh4kQME3)e%%#B?pu-hnyA8fIV~7CI3sNY?AHe5 zA{dA2rOjS4??>DYU$~CxFv@|u7z)H)I{UaxY&2ro{-qJ#Z~k+qYs%IeFy_r!#wS@Q zf;ulzBM=JfhV35gaw=aZo*zNPmpa^42AU;7*{>mu(|C6Mo#Wb zw65L85+Hp4%w~a-hoSJUmwZR?{=3=JMzmL@nXyx`VrJg@C{WfJGU@uMn;M9D0g;~2 z0o55GaO1wCU#5d*lo=!YRqC!Bs(PU8_++<1O3fqk%#z#SPJm6iBGwzb?zoknn=ZB%WX8UB+sar$G}r#I!iT< zesFY{>tzCCiA`q};U6aZj2DmZh_8Qt#qIWy{5&2j68AZTv348cNUH-&Q zM8(n5{)Y2D?oMy+GUSme_&4H85m=**TvG!by%W;9NH~?H+Lq}j05)K|0oC3c>Ib2C zxKzNM%OI|388WWd=d(m)hDN*J<0H`n z_g~q)9nC>PDy!|n)Kvm!+mFUB{|0Y6bzU7!dZx4cFRRmKFf|kgq0%fH?$6a`hSnXMT`^1=f`c?2yflBXAKgzAYaX&HtmQMtMHf$1UOEP&!QHjuh9t&?6 zH+Hd&Kh`i-7MSIlWaVVrfhm@gQ_@e$k3Q?;%!)xrB9di-^LQO+#B3(a&QL(n^#TzP i^#>&FhiLs(t`!6FUW9iX)6}!lc!OoR-Pj3kwO^RDGD=DS diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/src/main/resources/swagger/ga4gh-tool-discovery.yaml index cdf29452..d9f52c77 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/src/main/resources/swagger/ga4gh-tool-discovery.yaml @@ -411,18 +411,18 @@ paths: description: There are no container specifications for this tool schema: $ref: '#/definitions/Error' - /metadata: + /service-info: get: - summary: Return some metadata that is useful for describing this registry - operationId: metadataGet - description: Return some metadata that is useful for describing this registry + summary: Return some information that is useful for describing this registry + operationId: serviceInfoGet + description: Return some information that is useful for describing this registry tags: - GA4GH responses: '200': - description: A Metadata object describing this service. + description: A ServiceInfo object describing this service. schema: - $ref: '#/definitions/Metadata' + $ref: '#/definitions/ServiceInfo' /toolClasses: get: summary: List all tool types @@ -681,12 +681,14 @@ definitions: url: https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl containerfile: url: https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile - Metadata: + ServiceInfo: type: object - description: Describes this registry to better allow for mirroring and indexing. + description: Describes this registry to better allow for mirroring, indexing, and useful information about the running service, including supported versions and + default settings. required: - version - api_version + - contact_info_url properties: version: type: string @@ -702,6 +704,13 @@ definitions: description: >- A friendly name that can be used in addition to the hostname to describe a registry + contact_info_url: + type: string + description: >- + An email address URL (mailto:) or web page URL with contact information + for the operator of a specific TRS endpoint. Users of the + endpoint should use this to report problems or security + vulnerabilities. Error: type: object required: diff --git a/src/main/resources/swagger/openapi.yaml b/src/main/resources/swagger/openapi.yaml index fddf57fb..10413ef9 100644 --- a/src/main/resources/swagger/openapi.yaml +++ b/src/main/resources/swagger/openapi.yaml @@ -412,7 +412,7 @@ paths: required: true in: path description: The output type of the descriptor. Examples of allowable values are - "CWL", "WDL", and "NextFlow." + "CWL", "WDL", and "NFL". schema: type: string - name: id @@ -500,23 +500,23 @@ paths: text/plain: schema: $ref: "#/components/schemas/Error" - /metadata: + /service-info: get: - summary: Return some metadata that is useful for describing this registry - operationId: metadataGet - description: Return some metadata that is useful for describing this registry + summary: Return some information that is useful for describing this registry + operationId: serviceInfoGet + description: Return some information that is useful for describing this registry tags: - GA4GH responses: "200": - description: A Metadata object describing this service. + description: A ServiceInfo object describing this service. content: application/json: schema: - $ref: "#/components/schemas/Metadata" + $ref: "#/components/schemas/ServiceInfo" text/plain: schema: - $ref: "#/components/schemas/Metadata" + $ref: "#/components/schemas/ServiceInfo" /toolClasses: get: summary: List all tool types @@ -543,7 +543,7 @@ externalDocs: description: Description of GA4GH Tool Registry (Exchange) Schema url: https://github.com/ga4gh/tool-registry-schemas servers: - - url: /api/ga4gh/v2 + - url: /ga4gh/trs/v2 components: parameters: limit: @@ -701,13 +701,12 @@ components: registry example: v1 images: - description: >- - All known docker images (and versions/hashes) used by this tool. If + description: All known docker images (and versions/hashes) used by this tool. If the tool has to evaluate any of the docker images strings at runtime, those ones cannot be reported here. type: array items: - $ref: '#/components/schemas/ImageData' + $ref: "#/components/schemas/ImageData" descriptor_type: type: array description: The type (or types) of descriptors available. @@ -734,8 +733,7 @@ components: properties: registry_host: type: string - description: >- - A docker registry or a URL to a Singularity registry. Used along + description: A docker registry or a URL to a Singularity registry. Used along with image_name to locate a specific image. example: - registry.hub.docker.com @@ -744,7 +742,7 @@ components: description: Used in conjunction with a registry_url if provided to locate images example: - quay.io/seqware/seqware_full/1.1 - - 'ubuntu:latest' + - ubuntu:latest size: type: integer description: Size of the container in bytes @@ -752,7 +750,7 @@ components: type: string description: Last time the container was updated. image_type: - $ref: '#/components/schemas/ImageType' + $ref: "#/components/schemas/ImageType" ImageType: type: string description: Indicates what kind of container is this image is @@ -801,12 +799,15 @@ components: url: https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl containerfile: url: https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile - Metadata: + ServiceInfo: type: object - description: Describes this registry to better allow for mirroring and indexing. + description: Describes this registry to better allow for mirroring, indexing, and + useful information about the running service, including supported + versions and default settings. required: - version - api_version + - contact_info_url properties: version: type: string @@ -821,6 +822,12 @@ components: type: string description: A friendly name that can be used in addition to the hostname to describe a registry + contact_info_url: + type: string + description: "An email address URL (mailto:) or web page URL with contact + information for the operator of a specific TRS endpoint. Users of + the endpoint should use this to report problems or security + vulnerabilities. " Error: type: object required: From fbc908afc5e7c1679900efb76fe2eba87163f45e Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Wed, 12 Jun 2019 14:22:44 -0400 Subject: [PATCH 050/102] More convention sync with cloud workstream APIs (#84) * Working on #82 also see https://github.com/ga4gh/workflow-execution-service-schemas/issues/134 * Working on harmonizing with GA4GH Discovery https://github.com/ga4gh-discovery/service-info * Fix description for #85 --- .travis.yml | 2 +- README.md | 4 +- build.gradle | 2 +- .../resources/swagger => openapi}/README.md | 0 .../ga4gh-tool-discovery.yaml | 261 +++++---- .../swagger => openapi}/openapi.yaml | 198 ++++--- openapi/v1/ga4gh-tool-discovery.v1.yaml | 503 ++++++++++++++++++ scripts/buildui.js | 2 +- scripts/openAPI3.sh | 6 +- 9 files changed, 789 insertions(+), 189 deletions(-) rename {src/main/resources/swagger => openapi}/README.md (100%) rename {src/main/resources/swagger => openapi}/ga4gh-tool-discovery.yaml (79%) rename {src/main/resources/swagger => openapi}/openapi.yaml (85%) create mode 100644 openapi/v1/ga4gh-tool-discovery.v1.yaml diff --git a/.travis.yml b/.travis.yml index eee7ba85..e1e64489 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ jobs: - stage: commit-OpenAPI install: npm i -g swagger2openapi script: - - swagger2openapi src/main/resources/swagger/ga4gh-tool-discovery.yaml -o src/main/resources/swagger/openapi.yaml + - swagger2openapi openapi/ga4gh-tool-discovery.yaml -o openapi/openapi.yaml after_success: - git checkout -B ${TRAVIS_BRANCH} - bash scripts/openAPI3.sh diff --git a/README.md b/README.md index 6f5ab5c1..4d9950af 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Schemas for the GA4GH Tool Registry API This repository is the home for the schema for the GA4GH Tool Registry API. The goal of the API is to provide a standardized way to describe the availability of tools and workflows. In this way, we can have multiple repositories that share Docker-based tools and WDL/CWL/Nextflow-based workflows and have a consistent way to interact, search, and retrieve information from these various registries. The end goal is to make it much easier to share scientific tools and workflows, enhancing our ability to make research reproducible, sharable, and transparent. -**See the human-readable [Reference Documentation](https://ga4gh.github.io/tool-registry-service-schemas/Introduction/). You can also explore the specification in the [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/src/main/resources/swagger/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* +**See the human-readable [Reference Documentation](https://ga4gh.github.io/tool-registry-service-schemas/Introduction/). You can also explore the specification in the [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/openapi/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* See our generated doc @@ -48,7 +48,7 @@ Outstanding questions: How to view ------------ -See the swagger editor to view our [schema in progress](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/src/main/resources/swagger/ga4gh-tool-discovery.yaml). +See the swagger editor to view our [schema in progress](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/openapi/ga4gh-tool-discovery.yaml). How to contribute changes diff --git a/build.gradle b/build.gradle index b6900dd7..c8a077c4 100644 --- a/build.gradle +++ b/build.gradle @@ -43,7 +43,7 @@ ext { } convertSwagger2markup { - swaggerInput file("src/main/resources/swagger/ga4gh-tool-discovery.yaml").getAbsolutePath() + swaggerInput file("openapi/ga4gh-tool-discovery.yaml").getAbsolutePath() outputDir asciiDocOutputDir config = ['swagger2markup.markupLanguage' : 'ASCIIDOC', 'swagger2markup.extensions.dynamicDefinitions.contentPath' : file('docs/asciidoc/swagger2markup/definitions').absolutePath, diff --git a/src/main/resources/swagger/README.md b/openapi/README.md similarity index 100% rename from src/main/resources/swagger/README.md rename to openapi/README.md diff --git a/src/main/resources/swagger/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml similarity index 79% rename from src/main/resources/swagger/ga4gh-tool-discovery.yaml rename to openapi/ga4gh-tool-discovery.yaml index d9f52c77..3360fc44 100644 --- a/src/main/resources/swagger/ga4gh-tool-discovery.yaml +++ b/openapi/ga4gh-tool-discovery.yaml @@ -13,7 +13,7 @@ info: "tool" describes one of the triples as described above. In practice, examples of "tools" include CWL CommandLineTools, CWL Workflows, WDL workflows, and Nextflow workflows that reference containers in formats such - as Docker or Singularity. + as Docker or Singularity. version: 2.0.0 produces: - application/json @@ -29,7 +29,7 @@ paths: operationId: toolsIdGet description: >- This endpoint returns one specific tool (which has ToolVersions nested - inside it) + inside it). tags: - GA4GH parameters: @@ -39,7 +39,7 @@ paths: type: string description: >- A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. responses: '200': description: A tool. @@ -53,7 +53,7 @@ paths: get: summary: List versions of a tool operationId: toolsIdVersionsGet - description: Returns all versions of the specified tool + description: Returns all versions of the specified tool. tags: - GA4GH parameters: @@ -63,10 +63,10 @@ paths: type: string description: >- A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. responses: '200': - description: An array of tool versions + description: An array of tool versions. schema: type: array items: @@ -75,7 +75,7 @@ paths: get: summary: 'List one specific tool version, acts as an anchor for self references' operationId: toolsIdVersionsVersionIdGet - description: This endpoint returns one specific tool version + description: This endpoint returns one specific tool version. tags: - GA4GH parameters: @@ -85,14 +85,14 @@ paths: type: string description: >- A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. - name: version_id in: path required: true type: string description: >- An identifier of the tool version, scoped to this registry, for - example `v1` + example `v1`. responses: '200': description: A tool version. @@ -117,13 +117,19 @@ paths: in: query description: >- A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. - name: alias type: string in: query - description: |- - OPTIONAL for tool registries that support aliases. + description: >- + Support for this parameter is optional for tool registries that + support aliases. + If provided will only return entries with the given alias. + - name: toolClass + type: string + in: query + description: 'Filter tools by the name of the subclass (#/definitions/ToolClass)' - name: registry in: query type: string @@ -153,7 +159,7 @@ paths: - name: checker in: query type: boolean - description: Return only checker workflows + description: Return only checker workflows. - $ref: '#/parameters/offset' - $ref: '#/parameters/limit' responses: @@ -167,21 +173,21 @@ paths: next_page: description: >- A URL that can be used to reach the next page based on the - current offset and page record limit + current offset and page record limit. type: string last_page: description: >- A URL that can be used to reach the last page based on the - current page record limit + current page record limit. type: string self_link: - description: A URL that can be used to return to the current page later + description: A URL that can be used to return to the current page later. type: string current_offset: - description: The current start index of the paging used for this result + description: The current start index of the paging used for this result. type: string current_limit: - description: The current page record limit used for this result + description: The current page record limit used for this result. type: integer '/tools/{id}/versions/{version_id}/{type}/descriptor': get: @@ -197,17 +203,16 @@ paths: required: true in: path description: >- - The output type of the descriptor. If not specified, it is up to the - underlying implementation to determine which output type to return. - Plain types return the bare descriptor while the "non-plain" types - return a descriptor wrapped with metadata. Allowable values include - "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". + The output type of the descriptor. Plain types return the bare + descriptor while the "non-plain" types return a descriptor wrapped + with metadata. Allowable values include "CWL", "WDL", "NFL", + "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". type: string - name: id in: path description: >- A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. required: true type: string - name: version_id @@ -216,7 +221,7 @@ paths: type: string description: >- An identifier of the tool version, scoped to this registry, for - example `v1` + example `v1`. responses: '200': description: The tool descriptor. @@ -236,8 +241,8 @@ paths: in the same or other directories that can be reached as a relative path. This endpoint can be useful for workflow engine implementations like cwltool to programmatically download all the descriptors for a tool and - run it. This can optionally include other files described with FileWrappers - such as test parameters and containerfiles. + run it. This can optionally include other files described with + FileWrappers such as test parameters and containerfiles. tags: - GA4GH parameters: @@ -255,7 +260,7 @@ paths: in: path description: >- A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. required: true type: string - name: version_id @@ -264,7 +269,7 @@ paths: type: string description: >- An identifier of the tool version for this particular tool registry, - for example `v1` + for example `v1`. - name: relative_path in: path required: true @@ -274,7 +279,7 @@ paths: subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from the same directory as the main descriptor. 'nestedDirectory/foo.cwl' would return the file from a nested subdirectory. Unencoded paths - such 'sampleDirectory/foo.cwl' should also be allowed + such 'sampleDirectory/foo.cwl' should also be allowed. pattern: .+ responses: '200': @@ -303,13 +308,13 @@ paths: "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". For example, "CWL" would return an list of ToolTests objects while "PLAIN_CWL" would return a bare JSON list with the content of the - tests. + tests. type: string - name: id in: path description: >- A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. required: true type: string - name: version_id @@ -318,7 +323,7 @@ paths: type: string description: >- An identifier of the tool version for this particular tool registry, - for example `v1` + for example `v1`. responses: '200': description: The tool test JSON response. @@ -353,7 +358,7 @@ paths: in: path description: >- A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. required: true type: string - name: version_id @@ -362,7 +367,7 @@ paths: type: string description: >- An identifier of the tool version for this particular tool registry, - for example `v1` + for example `v1`. responses: '200': description: The array of File JSON responses. @@ -382,7 +387,7 @@ paths: Returns the container specifications(s) for the specified image. For example, a CWL CommandlineTool can be associated with one specification for a container, a CWL Workflow can be associated with multiple - specifications for containers + specifications for containers. tags: - GA4GH parameters: @@ -390,7 +395,7 @@ paths: in: path description: >- A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. required: true type: string - name: version_id @@ -399,7 +404,7 @@ paths: type: string description: >- An identifier of the tool version for this particular tool registry, - for example `v1` + for example `v1`. responses: '200': description: The tool payload. @@ -408,14 +413,14 @@ paths: items: $ref: '#/definitions/FileWrapper' '404': - description: There are no container specifications for this tool + description: There are no container specifications for this tool. schema: $ref: '#/definitions/Error' /service-info: get: summary: Return some information that is useful for describing this registry operationId: serviceInfoGet - description: Return some information that is useful for describing this registry + description: Return some information that is useful for describing this registry. tags: - GA4GH responses: @@ -428,7 +433,7 @@ paths: summary: List all tool types operationId: toolClassesGet description: | - This endpoint returns all tool-classes available + This endpoint returns all tool-classes available. tags: - GA4GH responses: @@ -446,7 +451,7 @@ definitions: type: string description: >- Relative path of the file. A descriptor's path can be used with the - GA4GH .../{type}/descriptor/{relative_path} endpoint + GA4GH .../{type}/descriptor/{relative_path} endpoint. file_type: type: string enum: @@ -459,17 +464,17 @@ definitions: type: object description: >- Describes a class (type) of tool allowing us to categorize workflows, - tasks, and maybe even other entities (such as services) separately + tasks, and maybe even other entities (such as services) separately. properties: id: type: string - description: The unique identifier for the class + description: The unique identifier for the class. name: type: string - description: A short friendly name for the class + description: A short friendly name for the class. description: type: string - description: A longer explanation of what this class is and what it can accomplish + description: A longer explanation of what this class is and what it can accomplish. Tool: type: object description: >- @@ -487,20 +492,27 @@ definitions: url: type: string example: 'http://agora.broadinstitute.org/tools/123456' - description: The URL for this tool in this registry + description: The URL for this tool in this registry. id: type: string example: 123456 - description: 'A unique identifier of the tool, scoped to this registry' + description: 'A unique identifier of the tool, scoped to this registry.' aliases: type: array items: type: string - example: ['630d31c3-381e-488d-b639-ce5d047a0142','dockstore.org:630d31c3-381e-488d-b639-ce5d047a0142','bio.tools:630d31c3-381e-488d-b639-ce5d047a0142'] - description: |- - OPTIONAL + example: + - 630d31c3-381e-488d-b639-ce5d047a0142 + - 'dockstore.org:630d31c3-381e-488d-b639-ce5d047a0142' + - 'bio.tools:630d31c3-381e-488d-b639-ce5d047a0142' + description: >- + Support for this parameter is optional for tool registries that + support aliases. + A list of strings that can be used to identify this tool. + This can be used to expose alternative ids (such as GUIDs) for a tool + for registries. Can be used to match tools across registries. organization: type: string @@ -517,22 +529,21 @@ definitions: type: string description: >- Contact information for the author of this tool entry in the registry. - (More complex authorship information is handled by the descriptor) + (More complex authorship information is handled by the descriptor). meta_version: type: string description: >- The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated. contains: - description: An array of IDs for the applications that are stored inside this tool + description: An array of IDs for the applications that are stored inside this tool. example: 'https://bio.tools/tool/mytum.de/SNAP2/1' type: array items: type: string has_checker: type: boolean - description: >- - Whether this tool has a checker tool associated with it + description: Whether this tool has a checker tool associated with it. checker_url: type: string description: >- @@ -542,17 +553,17 @@ definitions: type: boolean description: >- Reports whether this tool has been verified by a specific organization - or individual + or individual. verified_source: type: string description: >- Source of metadata that can support a verified tool, such as an email - or URL + or URL. signed: type: boolean description: Reports whether this tool has been signed. versions: - description: A list of versions for this tool + description: A list of versions for this tool. type: array items: $ref: '#/definitions/ToolVersion' @@ -570,18 +581,19 @@ definitions: description: The name of the version. url: type: string - description: The URL for this tool in this registry + description: The URL for this tool in this registry. example: 'http://agora.broadinstitute.org/tools/123456/1' id: type: string description: >- An identifier of the version of this tool for this particular tool - registry + registry. example: v1 images: description: >- - All known docker images (and versions/hashes) used by this tool. - If the tool has to evaluate any of the docker images strings at runtime, those ones cannot be reported here. + All known docker images (and versions/hashes) used by this tool. If + the tool has to evaluate any of the docker images strings at runtime, + those ones cannot be reported here. type: array items: $ref: '#/definitions/ImageData' @@ -602,68 +614,71 @@ definitions: type: boolean description: >- Reports whether this tool has been verified by a specific organization - or individual + or individual. verified_source: type: string description: >- Source of metadata that can support a verified tool, such as an email - or URL + or URL. ImageData: type: object - description: Describes one container image + description: Describes one container image. properties: registry_host: type: string description: >- A docker registry or a URL to a Singularity registry. Used along with image_name to locate a specific image. - example: - - registry.hub.docker.com + example: + - registry.hub.docker.com image_name: type: string - description: Used in conjunction with a registry_url if provided to locate images + description: Used in conjunction with a registry_url if provided to locate images. example: - - quay.io/seqware/seqware_full/1.1 - - ubuntu:latest + - quay.io/seqware/seqware_full/1.1 + - 'ubuntu:latest' size: type: integer - description: >- - Size of the container in bytes + description: Size of the container in bytes. updated: type: string - description: >- - Last time the container was updated. - image_type: + description: Last time the container was updated. + image_type: $ref: '#/definitions/ImageType' - ImageType: type: string - description: >- - Indicates what kind of container is this image is + description: Indicates what kind of container is this image is. enum: - Docker - Singularity - Conda - DescriptorType: type: string description: >- The type of descriptor that represents this version of the tool (e.g. CWL, - WDL, or NFL). Note that these files can also include associated Docker/container files - and test parameters that further describe a version of a tool + WDL, or NFL). Note that these files can also include associated + Docker/container files and test parameters that further describe a + version of a tool. enum: - CWL - WDL - NFL FileWrapper: type: object - description: | + description: > A file provides content for one of - - A tool descriptor is a metadata document that describes one or more tools. + + - A tool descriptor is a metadata document that describes one or more + tools. + - A tool document that describes how to test with one or more sample test + JSON. + - A containerfile is a document that describes how to build a particular + container image. Examples include Dockerfiles for creating Docker images + and Singularity recipes for Singularity images properties: content: @@ -673,44 +688,84 @@ definitions: type: string description: >- Optional url to the underlying content, should include version - information, and can include a git hash. Note that this - URL should resolve to the raw unwrapped content that would otherwise - be available in content. One of url or content is required. + information, and can include a git hash. Note that this URL should + resolve to the raw unwrapped content that would otherwise be available + in content. One of url or content is required. example: descriptorfile: - url: https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl + url: >- + https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl containerfile: - url: https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile + url: >- + https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile ServiceInfo: type: object - description: Describes this registry to better allow for mirroring, indexing, and useful information about the running service, including supported versions and - default settings. + description: >- + Describes this registry to better allow for mirroring, indexing, and + useful information about the running service, including supported versions + and default settings. Partially synced with + https://github.com/ga4gh-discovery/service-info required: + - id + - name - version - api_version - contact_info_url properties: + id: + type: string + description: >- + Unique ID of this service. Reverse domain name notation is + recommended, though not required. + example: org.ga4gh.service + name: + type: string + description: Name of this specific service. + example: 1000 Genomes Project + description: + type: string + description: Description of the service. + example: >- + The 1000 Genomes Project is the largest public catalogue of human + variation and genotype data. + documentationUrl: + type: string + description: URL of the documentation of this service (RFC 3986 format). + example: 'https://docs.example.com' + contactUrl: + type: string + description: >- + URL of the contact for the host/maintainer of this service, e.g. a + link to a contact form (RFC 3986 format), or an email (RFC 2368 + format). Users of the endpoint should use this to report problems or + security vulnerabilities. + example: 'mailto:support@example.com' version: type: string - description: The version of this registry + description: Version of the service. + example: '0.1' api_version: - type: string - description: The version of the GA4GH tool-registry API supported by this registry + type: array + items: + type: string + example: + - '2.0' + - '2.1' + - '2.5' + description: >- + The versions of the GA4GH tool-registry API supported by this + registry. Note that this denotes the (likely minor) versions of the + API supported by the endpoints at the basePath specified above. The + service hosting this API may very well support different versions at a + different basePath (with its own ServiceInfo) country: type: string - description: A country code for the registry (ISO 3166-1 alpha-3) + description: A country code for the registry (ISO 3166-1 alpha-3). friendly_name: type: string description: >- A friendly name that can be used in addition to the hostname to - describe a registry - contact_info_url: - type: string - description: >- - An email address URL (mailto:) or web page URL with contact information - for the operator of a specific TRS endpoint. Users of the - endpoint should use this to report problems or security - vulnerabilities. + describe a registry. Error: type: object required: @@ -742,4 +797,4 @@ parameters: type: string externalDocs: description: Description of GA4GH Tool Registry (Exchange) Schema - url: 'https://github.com/ga4gh/tool-registry-schemas' + url: 'https://github.com/ga4gh/tool-registry-schemas' \ No newline at end of file diff --git a/src/main/resources/swagger/openapi.yaml b/openapi/openapi.yaml similarity index 85% rename from src/main/resources/swagger/openapi.yaml rename to openapi/openapi.yaml index 10413ef9..1fe8acec 100644 --- a/src/main/resources/swagger/openapi.yaml +++ b/openapi/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.0 info: title: GA4GH Tool Discovery API - description: 'Proposed API for GA4GH (Global Alliance for Genomics & Health) tool + description: Proposed API for GA4GH (Global Alliance for Genomics & Health) tool repositories. A tool consists of a set of container images that are paired with a set of documents. Examples of documents include CWL (Common Workflow Language) or WDL (Workflow Description Language) or NFL (Nextflow) that @@ -12,7 +12,7 @@ info: "tool" describes one of the triples as described above. In practice, examples of "tools" include CWL CommandLineTools, CWL Workflows, WDL workflows, and Nextflow workflows that reference containers in formats such - as Docker or Singularity. ' + as Docker or Singularity. version: 2.0.0 tags: - name: GA4GH @@ -23,7 +23,7 @@ paths: summary: List one specific tool, acts as an anchor for self references operationId: toolsIdGet description: This endpoint returns one specific tool (which has ToolVersions nested - inside it) + inside it). tags: - GA4GH parameters: @@ -31,7 +31,7 @@ paths: in: path required: true description: A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. schema: type: string responses: @@ -57,7 +57,7 @@ paths: get: summary: List versions of a tool operationId: toolsIdVersionsGet - description: Returns all versions of the specified tool + description: Returns all versions of the specified tool. tags: - GA4GH parameters: @@ -65,12 +65,12 @@ paths: in: path required: true description: A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. schema: type: string responses: "200": - description: An array of tool versions + description: An array of tool versions. content: application/json: schema: @@ -86,7 +86,7 @@ paths: get: summary: List one specific tool version, acts as an anchor for self references operationId: toolsIdVersionsVersionIdGet - description: This endpoint returns one specific tool version + description: This endpoint returns one specific tool version. tags: - GA4GH parameters: @@ -94,14 +94,14 @@ paths: in: path required: true description: A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. schema: type: string - name: version_id in: path required: true description: An identifier of the tool version, scoped to this registry, for - example `v1` + example `v1`. schema: type: string responses: @@ -136,16 +136,23 @@ paths: - name: id in: query description: A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. schema: type: string - name: alias in: query - description: |- - OPTIONAL for tool registries that support aliases. + description: >- + Support for this parameter is optional for tool registries that + support aliases. + If provided will only return entries with the given alias. schema: type: string + - name: toolClass + in: query + description: Filter tools by the name of the subclass (#/definitions/ToolClass) + schema: + type: string - name: registry in: query description: The image registry that contains the image. @@ -179,7 +186,7 @@ paths: type: string - name: checker in: query - description: Return only checker workflows + description: Return only checker workflows. schema: type: boolean - $ref: "#/components/parameters/offset" @@ -190,24 +197,24 @@ paths: headers: next_page: description: A URL that can be used to reach the next page based on the - current offset and page record limit + current offset and page record limit. schema: type: string last_page: description: A URL that can be used to reach the last page based on the - current page record limit + current page record limit. schema: type: string self_link: - description: A URL that can be used to return to the current page later + description: A URL that can be used to return to the current page later. schema: type: string current_offset: - description: The current start index of the paging used for this result + description: The current start index of the paging used for this result. schema: type: string current_limit: - description: The current page record limit used for this result + description: The current page record limit used for this result. schema: type: integer content: @@ -233,17 +240,16 @@ paths: - name: type required: true in: path - description: The output type of the descriptor. If not specified, it is up to the - underlying implementation to determine which output type to return. - Plain types return the bare descriptor while the "non-plain" types - return a descriptor wrapped with metadata. Allowable values include - "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". + description: The output type of the descriptor. Plain types return the bare + descriptor while the "non-plain" types return a descriptor wrapped + with metadata. Allowable values include "CWL", "WDL", "NFL", + "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". schema: type: string - name: id in: path description: A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. required: true schema: type: string @@ -251,7 +257,7 @@ paths: in: path required: true description: An identifier of the tool version, scoped to this registry, for - example `v1` + example `v1`. schema: type: string responses: @@ -277,13 +283,13 @@ paths: get: summary: Get additional tool descriptor files relative to the main file operationId: toolsIdVersionsVersionIdTypeDescriptorRelativePathGet - description: "Descriptors can often include imports that refer to additional + description: Descriptors can often include imports that refer to additional descriptors. This returns additional descriptors for the specified tool in the same or other directories that can be reached as a relative path. This endpoint can be useful for workflow engine implementations like cwltool to programmatically download all the descriptors for a tool and run it. This can optionally include other files described with - FileWrappers such as test parameters and containerfiles. " + FileWrappers such as test parameters and containerfiles. tags: - GA4GH parameters: @@ -300,7 +306,7 @@ paths: - name: id in: path description: A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. required: true schema: type: string @@ -308,7 +314,7 @@ paths: in: path required: true description: An identifier of the tool version for this particular tool registry, - for example `v1` + for example `v1`. schema: type: string - name: relative_path @@ -318,7 +324,7 @@ paths: subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from the same directory as the main descriptor. 'nestedDirectory/foo.cwl' would return the file from a nested subdirectory. Unencoded paths - such 'sampleDirectory/foo.cwl' should also be allowed + such 'sampleDirectory/foo.cwl' should also be allowed. schema: type: string pattern: .+ @@ -353,17 +359,17 @@ paths: - name: type required: true in: path - description: 'The type of the underlying descriptor. Allowable values include + description: The type of the underlying descriptor. Allowable values include "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". For example, "CWL" would return an list of ToolTests objects while "PLAIN_CWL" would return a bare JSON list with the content of the - tests. ' + tests. schema: type: string - name: id in: path description: A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. required: true schema: type: string @@ -371,7 +377,7 @@ paths: in: path required: true description: An identifier of the tool version for this particular tool registry, - for example `v1` + for example `v1`. schema: type: string responses: @@ -418,7 +424,7 @@ paths: - name: id in: path description: A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. required: true schema: type: string @@ -426,7 +432,7 @@ paths: in: path required: true description: An identifier of the tool version for this particular tool registry, - for example `v1` + for example `v1`. schema: type: string responses: @@ -459,14 +465,14 @@ paths: description: Returns the container specifications(s) for the specified image. For example, a CWL CommandlineTool can be associated with one specification for a container, a CWL Workflow can be associated with multiple - specifications for containers + specifications for containers. tags: - GA4GH parameters: - name: id in: path description: A unique identifier of the tool, scoped to this registry, for - example `123456` + example `123456`. required: true schema: type: string @@ -474,7 +480,7 @@ paths: in: path required: true description: An identifier of the tool version for this particular tool registry, - for example `v1` + for example `v1`. schema: type: string responses: @@ -492,7 +498,7 @@ paths: items: $ref: "#/components/schemas/FileWrapper" "404": - description: There are no container specifications for this tool + description: There are no container specifications for this tool. content: application/json: schema: @@ -504,7 +510,7 @@ paths: get: summary: Return some information that is useful for describing this registry operationId: serviceInfoGet - description: Return some information that is useful for describing this registry + description: Return some information that is useful for describing this registry. tags: - GA4GH responses: @@ -522,7 +528,7 @@ paths: summary: List all tool types operationId: toolClassesGet description: | - This endpoint returns all tool-classes available + This endpoint returns all tool-classes available. tags: - GA4GH responses: @@ -571,7 +577,7 @@ components: path: type: string description: Relative path of the file. A descriptor's path can be used with the - GA4GH .../{type}/descriptor/{relative_path} endpoint + GA4GH .../{type}/descriptor/{relative_path} endpoint. file_type: type: string enum: @@ -583,17 +589,18 @@ components: ToolClass: type: object description: Describes a class (type) of tool allowing us to categorize workflows, - tasks, and maybe even other entities (such as services) separately + tasks, and maybe even other entities (such as services) separately. properties: id: type: string - description: The unique identifier for the class + description: The unique identifier for the class. name: type: string - description: A short friendly name for the class + description: A short friendly name for the class. description: type: string - description: A longer explanation of what this class is and what it can accomplish + description: A longer explanation of what this class is and what it can + accomplish. Tool: type: object description: A tool (or described tool) is defined as a tuple of a descriptor file @@ -610,11 +617,11 @@ components: url: type: string example: http://agora.broadinstitute.org/tools/123456 - description: The URL for this tool in this registry + description: The URL for this tool in this registry. id: type: string example: 123456 - description: A unique identifier of the tool, scoped to this registry + description: A unique identifier of the tool, scoped to this registry. aliases: type: array items: @@ -624,7 +631,8 @@ components: - dockstore.org:630d31c3-381e-488d-b639-ce5d047a0142 - bio.tools:630d31c3-381e-488d-b639-ce5d047a0142 description: >- - OPTIONAL + Support for this parameter is optional for tool registries that + support aliases. A list of strings that can be used to identify this tool. @@ -646,20 +654,21 @@ components: type: string description: Contact information for the author of this tool entry in the registry. (More complex authorship information is handled by the - descriptor) + descriptor). meta_version: type: string description: The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated. contains: - description: An array of IDs for the applications that are stored inside this tool + description: An array of IDs for the applications that are stored inside this + tool. example: https://bio.tools/tool/mytum.de/SNAP2/1 type: array items: type: string has_checker: type: boolean - description: Whether this tool has a checker tool associated with it + description: Whether this tool has a checker tool associated with it. checker_url: type: string description: Optional url to the checker tool that will exit successfully if this @@ -667,16 +676,16 @@ components: verified: type: boolean description: Reports whether this tool has been verified by a specific - organization or individual + organization or individual. verified_source: type: string description: Source of metadata that can support a verified tool, such as an - email or URL + email or URL. signed: type: boolean description: Reports whether this tool has been signed. versions: - description: A list of versions for this tool + description: A list of versions for this tool. type: array items: $ref: "#/components/schemas/ToolVersion" @@ -693,12 +702,12 @@ components: description: The name of the version. url: type: string - description: The URL for this tool in this registry + description: The URL for this tool in this registry. example: http://agora.broadinstitute.org/tools/123456/1 id: type: string description: An identifier of the version of this tool for this particular tool - registry + registry. example: v1 images: description: All known docker images (and versions/hashes) used by this tool. If @@ -722,14 +731,14 @@ components: verified: type: boolean description: Reports whether this tool has been verified by a specific - organization or individual + organization or individual. verified_source: type: string description: Source of metadata that can support a verified tool, such as an - email or URL + email or URL. ImageData: type: object - description: Describes one container image + description: Describes one container image. properties: registry_host: type: string @@ -739,13 +748,13 @@ components: - registry.hub.docker.com image_name: type: string - description: Used in conjunction with a registry_url if provided to locate images + description: Used in conjunction with a registry_url if provided to locate images. example: - quay.io/seqware/seqware_full/1.1 - ubuntu:latest size: type: integer - description: Size of the container in bytes + description: Size of the container in bytes. updated: type: string description: Last time the container was updated. @@ -753,7 +762,7 @@ components: $ref: "#/components/schemas/ImageType" ImageType: type: string - description: Indicates what kind of container is this image is + description: Indicates what kind of container is this image is. enum: - Docker - Singularity @@ -763,7 +772,7 @@ components: description: The type of descriptor that represents this version of the tool (e.g. CWL, WDL, or NFL). Note that these files can also include associated Docker/container files and test parameters that further describe a - version of a tool + version of a tool. enum: - CWL - WDL @@ -803,31 +812,64 @@ components: type: object description: Describes this registry to better allow for mirroring, indexing, and useful information about the running service, including supported - versions and default settings. + versions and default settings. Partially synced with + https://github.com/ga4gh-discovery/service-info required: + - id + - name - version - api_version - contact_info_url properties: + id: + type: string + description: Unique ID of this service. Reverse domain name notation is + recommended, though not required. + example: org.ga4gh.service + name: + type: string + description: Name of this specific service. + example: 1000 Genomes Project + description: + type: string + description: Description of the service. + example: The 1000 Genomes Project is the largest public catalogue of human + variation and genotype data. + documentationUrl: + type: string + description: URL of the documentation of this service (RFC 3986 format). + example: https://docs.example.com + contactUrl: + type: string + description: URL of the contact for the host/maintainer of this service, e.g. a + link to a contact form (RFC 3986 format), or an email (RFC 2368 + format). Users of the endpoint should use this to report problems or + security vulnerabilities. + example: mailto:support@example.com version: type: string - description: The version of this registry + description: Version of the service. + example: "0.1" api_version: - type: string - description: The version of the GA4GH tool-registry API supported by this registry + type: array + items: + type: string + example: + - "2.0" + - "2.1" + - "2.5" + description: The versions of the GA4GH tool-registry API supported by this + registry. Note that this denotes the (likely minor) versions of the + API supported by the endpoints at the basePath specified above. The + service hosting this API may very well support different versions at + a different basePath (with its own ServiceInfo) country: type: string - description: A country code for the registry (ISO 3166-1 alpha-3) + description: A country code for the registry (ISO 3166-1 alpha-3). friendly_name: type: string description: A friendly name that can be used in addition to the hostname to - describe a registry - contact_info_url: - type: string - description: "An email address URL (mailto:) or web page URL with contact - information for the operator of a specific TRS endpoint. Users of - the endpoint should use this to report problems or security - vulnerabilities. " + describe a registry. Error: type: object required: diff --git a/openapi/v1/ga4gh-tool-discovery.v1.yaml b/openapi/v1/ga4gh-tool-discovery.v1.yaml new file mode 100644 index 00000000..503d7acb --- /dev/null +++ b/openapi/v1/ga4gh-tool-discovery.v1.yaml @@ -0,0 +1,503 @@ +swagger: '2.0' +info: + title: GA4GH Tool Discovery API + description: 'Proposed API for GA4GH tool repositories. A tool consists of a (currently Docker) image paired with a document that describes how to use that image (currently CWL or WDL) and a Dockerfile that describes how to re-produce the image in the future. We use the following terminology, an "image" describes a (Docker) container as stored on a filesystem, a "tool" describes one of the triples as described above, and a "container" should only be used to describe a running image' + version: "1.0.0" +produces: + - application/json + - text/plain +basePath: /api/ga4gh/v1 +tags: + - name: GA4GH + description: A set of resources proposed as a common standard for tool repositories +paths: + /tools/{id}: + get: + summary: List one specific tool, acts as an anchor for self references + description: This endpoint returns one specific tool (which has ToolVersions nested inside it) + tags: + - GA4GH + parameters: + - name: id + in: path + required: true + type: string + description: A unique identifier of the tool, scoped to this registry, for example `123456` + responses: + '200': + description: A tool. + schema: + $ref: '#/definitions/Tool' + + /tools/{id}/versions: + get: + summary: List versions of a tool + description: Returns all versions of the specified tool + tags: + - GA4GH + parameters: + - name: id + in: path + required: true + type: string + description: A unique identifier of the tool, scoped to this registry, for example `123456` + responses: + '200': + description: An array of tool versions + schema: + type: array + items: + $ref: '#/definitions/ToolVersion' + + /tools/{id}/versions/{version-id}: + get: + summary: List one specific tool version, acts as an anchor for self references + description: This endpoint returns one specific tool version + tags: + - GA4GH + parameters: + - name: id + in: path + required: true + type: string + description: A unique identifier of the tool, scoped to this registry, for example `123456` + - name: version-id + in: path + required: true + type: string + description: An identifier of the tool version, scoped to this registry, for example `v1` + responses: + '200': + description: A tool version. + schema: + $ref: '#/definitions/ToolVersion' + + /tools: + get: + summary: List all tools + description: > + This endpoint returns all tools available or a filtered subset using + metadata query parameters. + tags: + - GA4GH + parameters: + - name: id + type: string + in: query + description: A unique identifier of the tool, scoped to this registry, for example `123456` + - name: registry + in: query + type: string + description: The image registry that contains the image. + - name: organization + in: query + type: string + description: The organization in the registry that published the image. + - name: name + in: query + type: string + description: The name of the image. + - name: toolname + in: query + type: string + description: The name of the tool. + - name: description + in: query + type: string + description: The description of the tool. + - name: author + in: query + type: string + description: 'The author of the tool (TODO a thought occurs, are we assuming that the author of the CWL and the image are the same?).' + - $ref: '#/parameters/offset' + - $ref: '#/parameters/limit' + responses: + '200': + description: An array of Tools that match the filter. + schema: + type: array + items: + $ref: '#/definitions/Tool' + headers: + next-page: + description: A URL that can be used to reach the next page based on the current offset and page record limit + type: string + last-page: + description: A URL that can be used to reach the last page based on the current page record limit + type: string + current-offset: + description: The current start index of the paging used for this result + type: string + current-limit: + description: The current page record limit used for this result + type: integer + + + + /tools/{id}/versions/{version-id}/{type}/descriptor: + get: + summary: Get the tool descriptor (CWL/WDL) for the specified tool. + description: Returns the CWL or WDL descriptor for the specified tool. + tags: + - GA4GH + parameters: + - name: type + required: true + in: path + description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped + with metadata + type: string + enum: + - CWL + - WDL + - plain-CWL + - plain-WDL + - name: id + in: path + description: A unique identifier of the tool, scoped to this registry, for example `123456` + required: true + type: string + - name: version-id + in: path + required: true + type: string + description: An identifier of the tool version for this particular tool registry, for example `v1` + responses: + '200': + description: The tool descriptor. + schema: + $ref: '#/definitions/ToolDescriptor' + '404': + description: The tool can not be output in the specified type. + schema: + $ref: '#/definitions/Error' + + /tools/{id}/versions/{version-id}/{type}/descriptor/{relative-path}: + get: + summary: Get additional tool descriptor files (CWL/WDL) relative to the main file + description: Returns additional CWL or WDL descriptors for the specified tool in the same or subdirectories + tags: + - GA4GH + parameters: + - name: type + in: path + required: true + description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped + with metadata + type: string + enum: + - CWL + - WDL + - plain-CWL + - plain-WDL + - name: id + in: path + description: A unique identifier of the tool, scoped to this registry, for example `123456` + required: true + type: string + - name: version-id + in: path + required: true + type: string + description: An identifier of the tool version for this particular tool registry, for example `v1` + - name: relative-path + in: path + required: true + type: string + description: A relative path to the additional file (same directory or subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from the same directory as the main descriptor + responses: + '200': + description: The tool descriptor. + schema: + $ref: '#/definitions/ToolDescriptor' + '404': + description: The tool can not be output in the specified type. + schema: + $ref: '#/definitions/Error' + + /tools/{id}/versions/{version-id}/{type}/tests: + get: + summary: Get an array of test JSONs suitable for use with this descriptor type. + tags: + - GA4GH + parameters: + - name: type + required: true + in: path + description: The output type of the descriptor. If not specified it is up to the underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped + with metadata + type: string + enum: + - CWL + - WDL + - plain-CWL + - plain-WDL + - name: id + in: path + description: A unique identifier of the tool, scoped to this registry, for example `123456` + required: true + type: string + - name: version-id + in: path + required: true + type: string + description: An identifier of the tool version for this particular tool registry, for example `v1` + responses: + '200': + description: The tool test JSON response. + schema: + type: array + items: + $ref: '#/definitions/ToolTests' + '404': + description: The tool can not be output in the specified type. + schema: + $ref: '#/definitions/Error' + + /tools/{id}/versions/{version-id}/dockerfile: + get: + summary: Get the dockerfile for the specified image. + description: Returns the dockerfile for the specified image. + tags: + - GA4GH + parameters: + - name: id + in: path + description: A unique identifier of the tool, scoped to this registry, for example `123456` + required: true + type: string + - name: version-id + in: path + required: true + type: string + description: An identifier of the tool version for this particular tool registry, for example `v1` + responses: + '200': + description: The tool payload. + schema: + $ref: '#/definitions/ToolDockerfile' + '404': + description: The tool payload is not present in the service. + schema: + $ref: '#/definitions/Error' + + /metadata: + get: + summary: Return some metadata that is useful for describing this registry + description: Return some metadata that is useful for describing this registry + tags: + - GA4GH + responses: + '200': + description: A Metadata object describing this service. + schema: + $ref: '#/definitions/Metadata' + + /tool-classes: + get: + summary: List all tool types + description: > + This endpoint returns all tool-classes available + tags: + - GA4GH + responses: + '200': + description: An array of methods that match the filter. + schema: + type: array + items: + $ref: '#/definitions/ToolClass' + +definitions: + ToolClass: + # thought. it would be nicer if ToolClasses are consistent across registries. How would we accomplish this? Operate a MIME-type like list? + description: Describes a class (type) of tool allowing us to categorize workflows, tools, and maybe even other entities (such as services) separately + properties: + id: + type: string + description: The unique identifier for the class + name: + type: string + description: A short friendly name for the class + description: + type: string + description: A longer explanation of what this class is and what it can accomplish + Tool: + description: A tool (or described tool) describes one pairing of a tool as described in a descriptor file (which potentially describes multiple tools) and a Docker image. + required: + - url + - id + - organization + - author + - meta-version + - toolclass + - versions + properties: + url: + type: string + description: The URL for this tool in this registry, for example `http://agora.broadinstitute.org/tools/123456` + id: + type: string + description: A unique identifier of the tool, scoped to this registry, for example `123456` or `123456_v1` + organization: + type: string + description: The organization that published the image. + toolname: + type: string + description: The name of the tool. + toolclass: + $ref: '#/definitions/ToolClass' + description: + type: string + description: The description of the tool. + author: + type: string + description: Contact information for the author of this tool entry in the registry. (More complex authorship information is handled by the descriptor) + meta-version: + type: string + description: 'The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated.' + contains: + description: An array of IDs for the applications that are stored inside this tool (for example `https://bio.tools/tool/mytum.de/SNAP2/1`) + type: array + items: + type: string + verified: + type: boolean + description: Reports whether this tool has been verified by a specific organization or individual + verified-source: + type: string + description: Source of metadata that can support a verified tool, such as an email or URL + signed: + type: boolean + description: Reports whether this tool has been signed. + versions: + description: A list of versions for this tool + type: array + items: + $ref: '#/definitions/ToolVersion' + ToolVersion: + description: A tool version describes a particular iteration of a tool as described by a reference to a specific image and dockerfile. + required: + - url + - id + - meta-version + properties: + name: + type: string + description: The name of the version. + url: + type: string + description: The URL for this tool in this registry, for example `http://agora.broadinstitute.org/tools/123456/1` + id: + type: string + description: An identifier of the version of this tool for this particular tool registry, for example `v1` + image: + type: string + description: The docker path to the image (and version) for this tool. (e.g. quay.io/seqware/seqware_full/1.1) + descriptor-type: + type: array + description: The type (or types) of descriptors available. + items: + type: string + enum: + - CWL + - WDL + dockerfile: + type: boolean + description: Reports if this tool has a dockerfile available. + meta-version: + type: string + description: 'The version of this tool version in the registry. Iterates when fields like the description, author, etc. are updated.' + verified: + type: boolean + description: Reports whether this tool has been verified by a specific organization or individual + verified-source: + type: string + description: Source of metadata that can support a verified tool, such as an email or URL + ToolDescriptor: + description: A tool descriptor is a metadata document that describes one or more tools. + required: + - type + - descriptor + properties: + type: + type: string + enum: + - CWL + - WDL + descriptor: + type: string + description: The descriptor that represents this version of the tool. (CWL or WDL) + url: + type: string + description: 'Optional url to the tool descriptor used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl )' + ToolTests: + description: A tool document that describes how to test with one or more sample test JSON. + required: + - test + properties: + test: + type: string + description: The test JSON content for this tool. + url: + type: string + description: 'Optional url to the test JSON used to test this tool' + ToolDockerfile: + description: A tool dockerfile is a document that describes how to build a particular Docker image. + required: + - dockerfile + properties: + dockerfile: + type: string + description: The dockerfile content for this tool. + url: + type: string + description: 'Optional url to the dockerfile used to build this image, should include version information, and can include a git hash (e.g. https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile )' + Metadata: + description: Describes this registry to better allow for mirroring and indexing. + required: + - version + - api-version + properties: + version: + type: string + description: The version of this registry + api-version: + type: string + description: The version of the GA4GH tool-registry API supported by this registry + country: + type: string + description: A country code for the registry (ISO 3166-1 alpha-3) + friendly-name: + type: string + description: A friendly name that can be used in addition to the hostname to describe a registry + + Error: + required: + - code + properties: + code: + type: integer + format: int32 + default: 500 + message: + type: string + default: Internal Server Error + +parameters: + limit: + name: limit + in: query + description: Amount of records to return in a given page. By default it is 1000. + type: integer + format: int32 + offset: + name: offset + in: query + description: Start index of paging. Pagination results can be based on numbers or other values chosen by the registry implementor (for example, SHA values). If this exceeds the current result set return an empty set. If not specified in the request this will start at the beginning of the results. + type: string + +externalDocs: + description: Description of GA4GH Tool Registry (Exchange) Schema + url: 'https://github.com/ga4gh/tool-registry-schemas' + diff --git a/scripts/buildui.js b/scripts/buildui.js index d1dc8a76..e93c94cc 100755 --- a/scripts/buildui.js +++ b/scripts/buildui.js @@ -9,7 +9,7 @@ set('-v'); mkdir('-p', 'spec') mkdir('-p', 'docs/web_deploy') -cp('src/main/resources/swagger/openapi.yaml', 'spec/swagger.yaml'); +cp('openapi/openapi.yaml', 'spec/swagger.yaml'); exec('npm run swagger bundle -- -o docs/web_deploy/swagger.json'); exec('npm run swagger bundle -- --yaml -o docs/web_deploy/swagger.yaml'); diff --git a/scripts/openAPI3.sh b/scripts/openAPI3.sh index bdb7d6b3..a06734ef 100644 --- a/scripts/openAPI3.sh +++ b/scripts/openAPI3.sh @@ -4,14 +4,14 @@ set -o pipefail set -o nounset set -o xtrace -if ! git diff --exit-code src/main/resources/swagger/openapi.yaml +if ! git diff --exit-code openapi/openapi.yaml then - git diff src/main/resources/swagger/openapi.yaml + git diff openapi/openapi.yaml openssl aes-256-cbc -K $encrypted_f356a5c69655_key -iv $encrypted_f356a5c69655_iv -in github_deploy_key.enc -out github_deploy_key -d eval "$(ssh-agent)" chmod 600 github_deploy_key ssh-add github_deploy_key - git add src/main/resources/swagger/openapi.yaml + git add openapi/openapi.yaml git commit -m "OpenAPI changed" echo "Pushing changes" git push git@github.com:"${TRAVIS_REPO_SLUG}" ${TRAVIS_BRANCH} From 01fd220eecf40cee507e070aecd65a791b2cad74 Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Wed, 12 Jun 2019 16:16:26 -0400 Subject: [PATCH 051/102] Feature/feature/fix tooling attempt 2 (#88) * Try something completely different * WS-2019-0032 WS-2019-0063 --- .travis.yml | 6 +- package-lock.json | 1052 ++++++++++++++++++++------------------------- 2 files changed, 472 insertions(+), 586 deletions(-) diff --git a/.travis.yml b/.travis.yml index e1e64489..4adfa43f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,7 @@ +dist: xenial +language: java +jdk: openjdk8 + jobs: include: - stage: check-links @@ -11,8 +15,6 @@ jobs: - git checkout -B ${TRAVIS_BRANCH} - bash scripts/openAPI3.sh - stage: build_pages - language: java - jdk: oraclejdk8 script: - "gradle wrapper" - "chmod +x gradlew" diff --git a/package-lock.json b/package-lock.json index 80795d0f..6bb62599 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,30 +5,25 @@ "requires": true, "dependencies": { "@types/babel-types": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.5.tgz", - "integrity": "sha512-0t0R7fKAXT/P++S98djRkXbL9Sxd9NNtfNg3BNw2EQOjVIkiMBdmO55N2Tp3wGK3mylmM7Vck9h5tEoSuSUabA==" + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz", + "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==" }, "@types/babylon": { "version": "6.16.5", "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz", "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==", "requires": { - "@types/babel-types": "7.0.5" + "@types/babel-types": "*" } }, - "JSONSelect": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/JSONSelect/-/JSONSelect-0.4.0.tgz", - "integrity": "sha1-oI7cxn6z/L6Z7WMIVTRKDPKCu40=" - }, "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "requires": { - "mime-types": "2.1.22", - "negotiator": "0.6.1" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" } }, "acorn": { @@ -41,7 +36,7 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", "requires": { - "acorn": "4.0.13" + "acorn": "^4.0.4" }, "dependencies": { "acorn": { @@ -56,9 +51,9 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "ansi-regex": { @@ -71,7 +66,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "array-flatten": { @@ -84,7 +79,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -112,8 +107,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.6.5", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-types": { @@ -121,10 +116,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -138,20 +133,20 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "body-parser": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "requires": { - "bytes": "3.0.0", - "content-type": "1.0.4", + "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", - "on-finished": "2.3.0", - "qs": "6.5.2", - "raw-body": "2.3.3", - "type-is": "1.6.16" + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" } }, "bower": { @@ -164,14 +159,14 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "camelcase": { "version": "1.2.1", @@ -183,8 +178,8 @@ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chance": { @@ -197,20 +192,15 @@ "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", "requires": { - "is-regex": "1.0.4" + "is-regex": "^1.0.3" } }, - "cjson": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.2.1.tgz", - "integrity": "sha1-c82KrWXZ4VBfmvF0TTt5wVJ2gqU=" - }, "clean-css": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", "requires": { - "source-map": "0.6.1" + "source-map": "~0.6.0" } }, "cliui": { @@ -218,8 +208,8 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" } }, @@ -228,28 +218,23 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, - "colors": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", - "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=" - }, "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" }, "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "concat-map": { "version": "0.0.1", @@ -257,13 +242,13 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "connect": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", - "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "requires": { "debug": "2.6.9", - "finalhandler": "1.1.0", - "parseurl": "1.3.2", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", "utils-merge": "1.0.1" } }, @@ -272,16 +257,19 @@ "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", "requires": { - "@types/babel-types": "7.0.5", - "@types/babylon": "6.16.5", - "babel-types": "6.26.0", - "babylon": "6.18.0" + "@types/babel-types": "^7.0.0", + "@types/babylon": "^6.16.2", + "babel-types": "^6.26.0", + "babylon": "^6.18.0" } }, "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } }, "content-type": { "version": "1.0.4", @@ -289,9 +277,9 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" }, "cookie-signature": { "version": "1.0.6", @@ -304,9 +292,9 @@ "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" }, "core-js": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", - "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", + "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==" }, "core-util-is": { "version": "1.0.2", @@ -318,8 +306,8 @@ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "requires": { - "object-assign": "4.1.1", - "vary": "1.1.2" + "object-assign": "^4", + "vary": "^1" } }, "cross-spawn": { @@ -327,9 +315,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "requires": { - "lru-cache": "4.1.5", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "debug": { @@ -370,7 +358,7 @@ "resolved": "https://registry.npmjs.org/deref/-/deref-0.6.4.tgz", "integrity": "sha1-vVqW1F2+0wEbuBvfaN31S+jhvU4=", "requires": { - "deep-extend": "0.4.2" + "deep-extend": "^0.4.0" } }, "destroy": { @@ -388,11 +376,6 @@ "resolved": "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz", "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==" }, - "ebnf-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/ebnf-parser/-/ebnf-parser-0.1.10.tgz", - "integrity": "sha1-zR9rpHfFY4xAyX7ZtXLbW6tdgzE=" - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -414,19 +397,21 @@ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "escodegen": { - "version": "0.0.21", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.21.tgz", - "integrity": "sha1-U9ZSz6EDA4gnlFilJmxf/HCcY8M=", - "requires": { - "esprima": "1.0.4", - "estraverse": "0.0.4", - "source-map": "0.6.1" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz", + "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==", + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" } } }, @@ -436,9 +421,9 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "estraverse": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz", - "integrity": "sha1-AaCTLf7ldGhKWYr1pnw7+bZCjbI=" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" }, "esutils": { "version": "2.0.2", @@ -455,71 +440,50 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.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": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", - "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.7", "array-flatten": "1.1.1", - "body-parser": "1.18.3", - "content-disposition": "0.5.2", - "content-type": "1.0.4", - "cookie": "0.3.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "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", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.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", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "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" - }, - "dependencies": { - "finalhandler": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "requires": { - "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", - "unpipe": "1.0.0" - } - }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" - } + "vary": "~1.1.2" } }, "extend": { @@ -538,17 +502,17 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" } }, "find-up": { @@ -556,7 +520,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "foreach": { @@ -569,9 +533,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.7", - "mime-types": "2.1.22" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "formidable": { @@ -619,14 +583,14 @@ "resolved": "https://registry.npmjs.org/github-markdown/-/github-markdown-3.2.0.tgz", "integrity": "sha512-mtc8/f3DOCoxLi/lVgCpx5I71YxusLiFqgDJZWPcx+wd+fa3z6+hOTmuKhekawq+/4ftwp93EipxDIf5P7a7Vg==", "requires": { - "get-stdin": "5.0.1", - "globby": "6.1.0", - "highlight.js": "9.14.2", - "markdown-it": "8.4.2", - "minimist": "1.2.0", - "pify": "3.0.0", - "primer-css": "9.6.0", - "pug": "2.0.3" + "get-stdin": "^5.0.1", + "globby": "^6.1.0", + "highlight.js": "^9.12.0", + "markdown-it": "^8.3.1", + "minimist": "^1.2.0", + "pify": "^3.0.0", + "primer-css": "^9.0.0", + "pug": "^2.0.0-rc.2" } }, "github-markdown-css": { @@ -635,16 +599,16 @@ "integrity": "sha512-RX5VUC54uX6Lvrm226M9kMzsNeOa81MnKyxb3J0G5KLjyoOySOZgwyKFkUpv6iUhooiUZdogk+OTwQPJ4WttYg==" }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "globby": { @@ -652,11 +616,11 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "requires": { - "array-union": "1.0.2", - "glob": "7.1.3", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -671,7 +635,7 @@ "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.7.tgz", "integrity": "sha512-TyI9jIy2J4j0qgPmOOrHTCtpPqJGN/aurBwc6ZT+bRii+di1I+Wv3obRhVrmBEXet+qkMaEX67dXrwsd3QQM6w==", "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.5" } }, "has": { @@ -679,7 +643,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "help": { @@ -688,34 +652,28 @@ "integrity": "sha1-luGQ1KCkU7icLLSwWrOOOo+f2t0=" }, "highlight.js": { - "version": "9.14.2", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.14.2.tgz", - "integrity": "sha512-Nc6YNECYpxyJABGYJAyw7dBAYbXEuIzwzkqoJnwbc1nIpCiN+3ioYf0XrBnLiyyG0JLuJhpPtt2iTSbXiKLoyA==" + "version": "9.15.8", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.8.tgz", + "integrity": "sha512-RrapkKQWwE+wKdF73VsOa2RQdIoO3mxwJ4P8mhbI6KYJUraUHRKM5w5zQQKXNk0xNL4UVRdulV9SBJcmzJNzVA==" }, "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": "1.5.0" - }, - "dependencies": { - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - } + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" } }, "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "inflight": { @@ -723,8 +681,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -743,9 +701,9 @@ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, "is-buffer": { "version": "1.1.6", @@ -757,8 +715,8 @@ "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", "requires": { - "acorn": "4.0.13", - "object-assign": "4.1.1" + "acorn": "~4.0.2", + "object-assign": "^4.0.1" }, "dependencies": { "acorn": { @@ -783,7 +741,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-stream": { @@ -801,37 +759,6 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, - "jison": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/jison/-/jison-0.4.13.tgz", - "integrity": "sha1-kEFwfWIkE2f1iDRTK58ZwsNvrHg=", - "requires": { - "JSONSelect": "0.4.0", - "cjson": "0.2.1", - "ebnf-parser": "0.1.10", - "escodegen": "0.0.21", - "esprima": "1.0.4", - "jison-lex": "0.2.1", - "lex-parser": "0.1.4", - "nomnom": "1.5.2" - }, - "dependencies": { - "esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" - } - } - }, - "jison-lex": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/jison-lex/-/jison-lex-0.2.1.tgz", - "integrity": "sha1-rEuBXozOUTLrErXfz+jXB7iETf4=", - "requires": { - "lex-parser": "0.1.4", - "nomnom": "1.5.2" - } - }, "js-base64": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", @@ -843,12 +770,12 @@ "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=" }, "js-yaml": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", - "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "json-pointer": { @@ -856,7 +783,7 @@ "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.0.tgz", "integrity": "sha1-jlAFUKaqxUZKRzN32leqbMIoKNc=", "requires": { - "foreach": "2.0.5" + "foreach": "^2.0.4" } }, "json-refs": { @@ -864,13 +791,13 @@ "resolved": "https://registry.npmjs.org/json-refs/-/json-refs-2.1.7.tgz", "integrity": "sha1-uesB/in16j6Sh48VrqEK04taz4k=", "requires": { - "commander": "2.19.0", - "graphlib": "2.1.7", - "js-yaml": "3.12.1", - "native-promise-only": "0.8.1", - "path-loader": "1.0.9", - "slash": "1.0.0", - "uri-js": "3.0.2" + "commander": "^2.9.0", + "graphlib": "^2.1.1", + "js-yaml": "^3.8.3", + "native-promise-only": "^0.8.1", + "path-loader": "^1.0.2", + "slash": "^1.0.0", + "uri-js": "^3.0.2" } }, "json-schema-faker": { @@ -878,20 +805,19 @@ "resolved": "https://registry.npmjs.org/json-schema-faker/-/json-schema-faker-0.2.16.tgz", "integrity": "sha1-UdPKSJVdj+c09ZHXR7ckU75aePI=", "requires": { - "chance": "1.0.18", - "deref": "0.6.4", - "faker": "3.1.0", - "randexp": "0.4.9" + "chance": "~1.0.1", + "deref": "~0.6.3", + "faker": "~3.1.0", + "randexp": "~0.4.2" } }, "jsonpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.0.tgz", - "integrity": "sha1-Rc2dTE0NaCXZC9fkD4PxGCsT3Qc=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", + "integrity": "sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA==", "requires": { "esprima": "1.2.2", - "jison": "0.4.13", - "static-eval": "2.0.0", + "static-eval": "2.0.2", "underscore": "1.7.0" }, "dependencies": { @@ -907,8 +833,8 @@ "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", "requires": { - "is-promise": "2.1.0", - "promise": "7.3.1" + "is-promise": "^2.0.0", + "promise": "^7.0.1" } }, "kind-of": { @@ -916,7 +842,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lazy-cache": { @@ -929,7 +855,7 @@ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "levn": { @@ -937,21 +863,16 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, - "lex-parser": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/lex-parser/-/lex-parser-0.1.4.tgz", - "integrity": "sha1-ZMTwJfF/1Tv7RXY/rrFvAVp0dVA=" - }, "linkify-it": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz", "integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==", "requires": { - "uc.micro": "1.0.6" + "uc.micro": "^1.0.1" } }, "locate-path": { @@ -959,8 +880,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -988,8 +909,8 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "markdown-it": { @@ -997,11 +918,11 @@ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", "requires": { - "argparse": "1.0.10", - "entities": "1.1.2", - "linkify-it": "2.1.0", - "mdurl": "1.0.1", - "uc.micro": "1.0.6" + "argparse": "^1.0.7", + "entities": "~1.1.1", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" } }, "mdurl": { @@ -1019,7 +940,7 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "merge-descriptors": { @@ -1033,21 +954,21 @@ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==" + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" }, "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "requires": { - "mime-db": "1.38.0" + "mime-db": "1.40.0" } }, "mimic-fn": { @@ -1060,7 +981,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -1094,32 +1015,16 @@ "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=" }, "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" - }, - "nomnom": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.5.2.tgz", - "integrity": "sha1-9DRUSKhTz71cDSYyDyR3qwUm/i8=", - "requires": { - "colors": "0.5.1", - "underscore": "1.1.7" - }, - "dependencies": { - "underscore": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.1.7.tgz", - "integrity": "sha1-QLq4S60Z0jAJbo1u9ii/8FXYPbA=" - } - } + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "number-is-nan": { @@ -1145,7 +1050,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optionator": { @@ -1153,12 +1058,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" }, "dependencies": { "wordwrap": { @@ -1173,9 +1078,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "p-finally": { @@ -1188,7 +1093,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -1196,7 +1101,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -1205,9 +1110,9 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" }, "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, "path-exists": { "version": "3.0.0", @@ -1225,12 +1130,12 @@ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-loader": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/path-loader/-/path-loader-1.0.9.tgz", - "integrity": "sha512-pD37gArtr+/72Tst9oJoDB9k7gB9A09Efj7yyBi5HDUqaxqULXBWW8Rnw2TfNF+3sN7QZv0ZNdW1Qx2pFGW5Jg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/path-loader/-/path-loader-1.0.10.tgz", + "integrity": "sha512-CMP0v6S6z8PHeJ6NFVyVJm6WyJjIwFvyz2b0n2/4bKdS/0uZa/9sKUlYZzubrn3zuDRU0zIuEDX9DZYQ2ZI8TA==", "requires": { - "native-promise-only": "0.8.1", - "superagent": "3.8.3" + "native-promise-only": "^0.8.1", + "superagent": "^3.8.3" } }, "path-parse": { @@ -1258,7 +1163,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "portfinder": { @@ -1266,9 +1171,9 @@ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" } }, "prelude-ls": { @@ -1560,16 +1465,16 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.8.0" + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" } }, "pseudomap": { @@ -1582,14 +1487,14 @@ "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.3.tgz", "integrity": "sha1-ccuoJTfJWl6rftBGluQiH1Oqh44=", "requires": { - "pug-code-gen": "2.0.1", - "pug-filters": "3.1.0", - "pug-lexer": "4.0.0", - "pug-linker": "3.0.5", - "pug-load": "2.0.11", - "pug-parser": "5.0.0", - "pug-runtime": "2.0.4", - "pug-strip-comments": "1.0.3" + "pug-code-gen": "^2.0.1", + "pug-filters": "^3.1.0", + "pug-lexer": "^4.0.0", + "pug-linker": "^3.0.5", + "pug-load": "^2.0.11", + "pug-parser": "^5.0.0", + "pug-runtime": "^2.0.4", + "pug-strip-comments": "^1.0.3" } }, "pug-attrs": { @@ -1597,9 +1502,9 @@ "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.3.tgz", "integrity": "sha1-owlflw5kFR972tlX7vVftdeQXRU=", "requires": { - "constantinople": "3.1.2", - "js-stringify": "1.0.2", - "pug-runtime": "2.0.4" + "constantinople": "^3.0.1", + "js-stringify": "^1.0.1", + "pug-runtime": "^2.0.4" } }, "pug-code-gen": { @@ -1607,14 +1512,14 @@ "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.1.tgz", "integrity": "sha1-CVHsgyJddNjPxHan+Zolm199BQw=", "requires": { - "constantinople": "3.1.2", - "doctypes": "1.1.0", - "js-stringify": "1.0.2", - "pug-attrs": "2.0.3", - "pug-error": "1.3.2", - "pug-runtime": "2.0.4", - "void-elements": "2.0.1", - "with": "5.1.1" + "constantinople": "^3.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.1", + "pug-attrs": "^2.0.3", + "pug-error": "^1.3.2", + "pug-runtime": "^2.0.4", + "void-elements": "^2.0.1", + "with": "^5.0.0" } }, "pug-error": { @@ -1627,13 +1532,13 @@ "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.0.tgz", "integrity": "sha1-JxZVVbwEwjbkqisDZiRt+gIbYm4=", "requires": { - "clean-css": "4.2.1", - "constantinople": "3.1.2", + "clean-css": "^4.1.11", + "constantinople": "^3.0.1", "jstransformer": "1.0.0", - "pug-error": "1.3.2", - "pug-walk": "1.1.7", - "resolve": "1.10.0", - "uglify-js": "2.8.29" + "pug-error": "^1.3.2", + "pug-walk": "^1.1.7", + "resolve": "^1.1.6", + "uglify-js": "^2.6.1" } }, "pug-lexer": { @@ -1641,9 +1546,9 @@ "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.0.0.tgz", "integrity": "sha1-IQwYRX7y4XYCQnQMXmR715TOwng=", "requires": { - "character-parser": "2.2.0", - "is-expression": "3.0.0", - "pug-error": "1.3.2" + "character-parser": "^2.1.1", + "is-expression": "^3.0.0", + "pug-error": "^1.3.2" } }, "pug-linker": { @@ -1651,8 +1556,8 @@ "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.5.tgz", "integrity": "sha1-npp65ABWgtAn3uuWsAD4juuDoC8=", "requires": { - "pug-error": "1.3.2", - "pug-walk": "1.1.7" + "pug-error": "^1.3.2", + "pug-walk": "^1.1.7" } }, "pug-load": { @@ -1660,8 +1565,8 @@ "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.11.tgz", "integrity": "sha1-5kjlftET/iwfRdV4WOorrWvAFSc=", "requires": { - "object-assign": "4.1.1", - "pug-walk": "1.1.7" + "object-assign": "^4.1.0", + "pug-walk": "^1.1.7" } }, "pug-parser": { @@ -1669,7 +1574,7 @@ "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.0.tgz", "integrity": "sha1-45Stmz/KkxI5QK/4hcBuRKt+aOQ=", "requires": { - "pug-error": "1.3.2", + "pug-error": "^1.3.2", "token-stream": "0.0.1" } }, @@ -1683,7 +1588,7 @@ "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.3.tgz", "integrity": "sha1-8VWVkiBu3G+FMQ2s9K+0igJa9Z8=", "requires": { - "pug-error": "1.3.2" + "pug-error": "^1.3.2" } }, "pug-walk": { @@ -1697,32 +1602,32 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, "randexp": { "version": "0.4.9", "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.9.tgz", "integrity": "sha512-maAX1cnBkzIZ89O4tSQUOF098xjGMC8N+9vuY/WfHwg87THw6odD2Br35donlj5e6KnB1SB0QBHhTQhhDHuTPQ==", "requires": { - "drange": "1.1.1", - "ret": "0.2.2" + "drange": "^1.0.0", + "ret": "^0.2.0" } }, "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", "unpipe": "1.0.0" } }, @@ -1731,13 +1636,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rechoir": { @@ -1745,7 +1650,7 @@ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "requires": { - "resolve": "1.10.0" + "resolve": "^1.1.6" } }, "regenerator-runtime": { @@ -1774,11 +1679,11 @@ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz", + "integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } }, "ret": { @@ -1791,7 +1696,7 @@ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "safe-buffer": { @@ -1805,41 +1710,41 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" }, "dependencies": { - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.2" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" } }, "set-blocking": { @@ -1848,16 +1753,16 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -1870,9 +1775,9 @@ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", "requires": { - "glob": "7.1.3", - "interpret": "1.2.0", - "rechoir": "0.6.2" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } }, "showdown": { @@ -1880,7 +1785,7 @@ "resolved": "https://registry.npmjs.org/showdown/-/showdown-1.9.0.tgz", "integrity": "sha512-x7xDCRIaOlicbC57nMhGfKamu+ghwsdVkHMttyn+DelwzuHOx4OHCVL/UW/2QOLH7BxfCcCCVVUix3boKXJKXQ==", "requires": { - "yargs": "10.1.2" + "yargs": "^10.0.3" }, "dependencies": { "cliui": { @@ -1888,9 +1793,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "yargs": { @@ -1898,18 +1803,18 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.3", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "8.1.0" + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.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", + "yargs-parser": "^8.1.0" } } } @@ -1935,49 +1840,25 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "static-eval": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.0.tgz", - "integrity": "sha512-6flshd3F1Gwm+Ksxq463LtFd1liC77N/PX1FVVc3OzL3hAmo2fwHFbuArkcfi7s9rTNsLEhcRmXGFZhlgy40uw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", "requires": { - "escodegen": "1.11.0" - }, - "dependencies": { - "escodegen": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", - "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", - "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" - } + "escodegen": "^1.8.1" } }, "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string_decoder": { @@ -1985,7 +1866,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -1993,7 +1874,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "strip-eof": { @@ -2006,16 +1887,16 @@ "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", "requires": { - "component-emitter": "1.2.1", - "cookiejar": "2.1.2", - "debug": "3.2.6", - "extend": "3.0.2", - "form-data": "2.3.3", - "formidable": "1.2.1", - "methods": "1.1.2", - "mime": "1.4.1", - "qs": "6.5.2", - "readable-stream": "2.3.6" + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.2.0", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.3.5" }, "dependencies": { "debug": { @@ -2023,13 +1904,13 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -2048,27 +1929,20 @@ "resolved": "https://registry.npmjs.org/swagger-repo/-/swagger-repo-1.5.1.tgz", "integrity": "sha512-ZZD0clWcQNfbomM3DKHuFMLLePxSMDBumgGnrY1iGvSfkTRFX7lIU4H8H1cQsZtY9oJpJdhuzv35xpiGRvAULw==", "requires": { - "body-parser": "1.18.3", - "commander": "2.19.0", - "cors": "2.8.5", - "express": "4.16.4", - "glob": "7.1.3", - "js-yaml": "3.12.1", - "json-pointer": "0.6.0", - "jsonpath": "1.0.0", - "lodash": "4.17.11", - "mkdirp": "0.5.1", - "require-dir": "1.2.0", - "swagger-editor": "2.10.5", - "swagger-ui": "2.2.10", - "sway": "1.0.0" - }, - "dependencies": { - "swagger-ui": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/swagger-ui/-/swagger-ui-2.2.10.tgz", - "integrity": "sha1-sl56IWZOXZC/OR2zDbCN5B6FLXs=" - } + "body-parser": "^1.15.2", + "commander": "^2.9.0", + "cors": "^2.7.1", + "express": "^4.13.4", + "glob": "^7.0.0", + "js-yaml": "^3.5.3", + "json-pointer": "^0.6.0", + "jsonpath": "^1.0.0", + "lodash": "^4.5.0", + "mkdirp": "^0.5.1", + "require-dir": "^1.0.0", + "swagger-editor": "^2.10.3", + "swagger-ui": "^2.2.0", + "sway": "^1.0.0" } }, "swagger-schema-official": { @@ -2076,27 +1950,32 @@ "resolved": "https://registry.npmjs.org/swagger-schema-official/-/swagger-schema-official-2.0.0-bab6bed.tgz", "integrity": "sha1-cAcEaNbSl3ylI3suUZyn0Gouo/0=" }, + "swagger-ui": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/swagger-ui/-/swagger-ui-2.2.10.tgz", + "integrity": "sha1-sl56IWZOXZC/OR2zDbCN5B6FLXs=" + }, "swagger-ui-dist": { - "version": "3.20.8", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.20.8.tgz", - "integrity": "sha512-dAvW8CVqJXYVVf8i7sppkpEGxzmXEKMkCYhNseSBUmkhb9IzENNaz5qVRrNEeCbDKNdJlrSKiilZy6cSHKL+ug==" + "version": "3.22.3", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.22.3.tgz", + "integrity": "sha512-tmjAsqT43pqg5UoiQ2805c+juX0ASSoI/Ash/0c19jjAOFtTfE93ZrzmFd9hjqVgre935CYeXT0uaku42Lu8xg==" }, "sway": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/sway/-/sway-1.0.0.tgz", "integrity": "sha1-No/8Dpa9hCJu0bmzPWa+V9oE8Jo=", "requires": { - "debug": "2.6.9", - "js-base64": "2.5.1", - "js-yaml": "3.12.1", - "json-refs": "2.1.7", - "json-schema-faker": "0.2.16", - "lodash": "4.17.11", - "native-promise-only": "0.8.1", - "path-to-regexp": "1.7.0", - "swagger-methods": "1.0.8", + "debug": "^2.2.0", + "js-base64": "^2.1.9", + "js-yaml": "^3.5.2", + "json-refs": "^2.1.5", + "json-schema-faker": "^0.2.8", + "lodash": "^4.2.0", + "native-promise-only": "^0.8.1", + "path-to-regexp": "^1.2.1", + "swagger-methods": "^1.0.0", "swagger-schema-official": "2.0.0-bab6bed", - "z-schema": "3.25.1" + "z-schema": "^3.16.1" }, "dependencies": { "isarray": { @@ -2119,6 +1998,11 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, "token-stream": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", @@ -2129,16 +2013,16 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.22" + "mime-types": "~2.1.24" } }, "uc.micro": { @@ -2151,9 +2035,9 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "source-map": { @@ -2184,7 +2068,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz", "integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=", "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "util-deprecate": { @@ -2217,7 +2101,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -2235,8 +2119,8 @@ "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", "requires": { - "acorn": "3.3.0", - "acorn-globals": "3.1.0" + "acorn": "^3.1.0", + "acorn-globals": "^3.0.0" } }, "wordwrap": { @@ -2249,8 +2133,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-regex": { @@ -2263,7 +2147,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -2271,9 +2155,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -2281,7 +2165,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -2306,9 +2190,9 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } }, @@ -2317,7 +2201,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -2332,11 +2216,11 @@ "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-3.25.1.tgz", "integrity": "sha512-7tDlwhrBG+oYFdXNOjILSurpfQyuVgkRe3hB2q8TEssamDHB7BbLWYkYO98nTn0FibfdFroFKDjndbgufAgS/Q==", "requires": { - "commander": "2.19.0", - "core-js": "2.6.5", - "lodash.get": "4.4.2", - "lodash.isequal": "4.5.0", - "validator": "10.11.0" + "commander": "^2.7.1", + "core-js": "^2.5.7", + "lodash.get": "^4.0.0", + "lodash.isequal": "^4.0.0", + "validator": "^10.0.0" } } } From 0d36f7199c1c32446127f242406c0214f19c597c Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Tue, 25 Jun 2019 11:00:25 -0400 Subject: [PATCH 052/102] Attempt to fix tooling (#89) --- scripts/update-ghpages.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/update-ghpages.sh b/scripts/update-ghpages.sh index f53d176e..7a2caba7 100644 --- a/scripts/update-ghpages.sh +++ b/scripts/update-ghpages.sh @@ -8,6 +8,8 @@ BRANCH=$(echo "$TRAVIS_BRANCH" | awk '{print tolower($0)}') BRANCH_PATH="preview/$BRANCH" git config --replace-all remote.origin.fetch +refs/heads/*:refs/remotes/origin/* git fetch origin gh-pages +#TODO: changes in the package-lock.json are breaking the build, see https://api.travis-ci.org/v3/job/544918298/log.txt +git checkout package-lock.json git checkout gh-pages rm -rf "${BRANCH_PATH}" mkdir -p "${BRANCH_PATH}" From df5120e9dab25245c75a8a48d2b916749e2701e6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 11 Jul 2019 11:00:30 -0400 Subject: [PATCH 053/102] [Security] Bump lodash from 4.17.11 to 4.17.14 (#90) Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.14. **This update includes security fixes.** - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.14) Signed-off-by: dependabot-preview[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6bb62599..c2c08ad3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -885,9 +885,9 @@ } }, "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", + "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" }, "lodash.get": { "version": "4.4.2", From 48fae3b2e3ac995577c75ddf8b38ee0aec7eb68b Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Fri, 19 Jul 2019 10:37:30 -0400 Subject: [PATCH 054/102] Update README.md for gitflow (#91) * Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 4d9950af..fac45c68 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,9 @@ What is the Tool Registry API Schema? This is the home of the schema for the GA4GH Tool Registry API. The GA4GH Tool Registry API is a standard for listing and describing available tools (both stand-alone, Docker-based tools as well as workflows in CWL, WDL or Nextflow) in a given registry. This defines a minimal, common API describing tools that we propose for support by multiple tool/workflow registries like [Dockstore](https://www.dockstore.org/), [BioContainers](https://biocontainers.pro), and [Agora](https://github.com/broadinstitute/agora) for the purposes of exchange, indexing, and searching. +This repo uses the [HubFlow](https://datasift.github.io/gitflow/) scheme which is closely based on [GitFlow](https://nvie.com/posts/a-successful-git-branching-model/). In practice, this means that the master branch contains the last production release of the schema whereas the develop branch contains the latest development changes which will end up in the next production release. +As of July 2019, this means that the 1.0.0 version is described on master whereas the develop branch contains the 2.0.0-beta.3 version which will evolve into the 2.0.0 production release. + Our current proposal is to start with a read-only API due to potentially different views and approaches to registration/security. Key features of the current API proposal: @@ -38,6 +41,7 @@ Key features of the current API proposal: * May serve up CWL, WDL or Nextflow to describe a tool or represent a workflow depending on the tool/workflow submitter * ID: globally unique across systems and also identifies the system that it came from (ex: 123456323@agora.broadinstitute.org ) + Outstanding questions: * How do we track authorship? Should we track authorship of the tool metadata, the Docker image, or the underlying algorithm, or all of above? From 5fc41888de50353454c9b0f5b37373f14ad7140a Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Mon, 29 Jul 2019 16:28:40 -0400 Subject: [PATCH 055/102] Simple PRC feedback PR (#92) * Simple PRC feedback PR * Feedback from BOSC --- openapi/ga4gh-tool-discovery.yaml | 34 +++++++++++++++++++------------ openapi/openapi.yaml | 34 ++++++++++++++++++++----------- 2 files changed, 43 insertions(+), 25 deletions(-) diff --git a/openapi/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml index 3360fc44..13495bf5 100644 --- a/openapi/ga4gh-tool-discovery.yaml +++ b/openapi/ga4gh-tool-discovery.yaml @@ -21,7 +21,9 @@ produces: basePath: /ga4gh/trs/v2 tags: - name: GA4GH - description: A set of resources proposed as a common standard for tool repositories + description: A group of web resources proposed as a common standard for tool repositories + externalDocs: + url: https://ga4gh.github.io/tool-registry-service-schemas/Introduction/ paths: '/tools/{id}': get: @@ -509,7 +511,8 @@ definitions: Support for this parameter is optional for tool registries that support aliases. - A list of strings that can be used to identify this tool. + A list of strings that can be used to identify this tool which could be + straight up URLs. This can be used to expose alternative ids (such as GUIDs) for a tool @@ -517,7 +520,7 @@ definitions: organization: type: string description: The organization that published the image. - toolname: + name: type: string description: The name of the tool. toolclass: @@ -526,7 +529,9 @@ definitions: type: string description: The description of the tool. author: - type: string + type: array + items: + type: string description: >- Contact information for the author of this tool entry in the registry. (More complex authorship information is handled by the descriptor). @@ -535,9 +540,11 @@ definitions: description: >- The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated. - contains: + included_apps: description: An array of IDs for the applications that are stored inside this tool. - example: 'https://bio.tools/tool/mytum.de/SNAP2/1' + example: + - 'https://bio.tools/tool/mytum.de/SNAP2/1' + - 'https://bio.tools/bioexcel_seqqc' type: array items: type: string @@ -555,7 +562,9 @@ definitions: Reports whether this tool has been verified by a specific organization or individual. verified_source: - type: string + type: array + items: + type: string description: >- Source of metadata that can support a verified tool, such as an email or URL. @@ -604,7 +613,7 @@ definitions: $ref: '#/definitions/DescriptorType' containerfile: type: boolean - description: Reports if this tool has a containerfile available. + description: Reports if this tool has a containerfile available. (For Docker-based tools, this would indicate the presence of a Dockerfile) meta_version: type: string description: >- @@ -616,7 +625,9 @@ definitions: Reports whether this tool has been verified by a specific organization or individual. verified_source: - type: string + type: array + items: + type: string description: >- Source of metadata that can support a verified tool, such as an email or URL. @@ -758,9 +769,6 @@ definitions: API supported by the endpoints at the basePath specified above. The service hosting this API may very well support different versions at a different basePath (with its own ServiceInfo) - country: - type: string - description: A country code for the registry (ISO 3166-1 alpha-3). friendly_name: type: string description: >- @@ -797,4 +805,4 @@ parameters: type: string externalDocs: description: Description of GA4GH Tool Registry (Exchange) Schema - url: 'https://github.com/ga4gh/tool-registry-schemas' \ No newline at end of file + url: 'https://github.com/ga4gh/tool-registry-schemas' diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 1fe8acec..1179272b 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -16,7 +16,10 @@ info: version: 2.0.0 tags: - name: GA4GH - description: A set of resources proposed as a common standard for tool repositories + description: A group of web resources proposed as a common standard for tool + repositories + externalDocs: + url: https://ga4gh.github.io/tool-registry-service-schemas/Introduction/ paths: "/tools/{id}": get: @@ -634,7 +637,7 @@ components: Support for this parameter is optional for tool registries that support aliases. - A list of strings that can be used to identify this tool. + A list of strings that can be used to identify this tool which could be straight up URLs. This can be used to expose alternative ids (such as GUIDs) for a tool @@ -642,7 +645,7 @@ components: organization: type: string description: The organization that published the image. - toolname: + name: type: string description: The name of the tool. toolclass: @@ -651,7 +654,9 @@ components: type: string description: The description of the tool. author: - type: string + type: array + items: + type: string description: Contact information for the author of this tool entry in the registry. (More complex authorship information is handled by the descriptor). @@ -659,10 +664,12 @@ components: type: string description: The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated. - contains: + included_apps: description: An array of IDs for the applications that are stored inside this tool. - example: https://bio.tools/tool/mytum.de/SNAP2/1 + example: + - https://bio.tools/tool/mytum.de/SNAP2/1 + - https://bio.tools/bioexcel_seqqc type: array items: type: string @@ -678,7 +685,9 @@ components: description: Reports whether this tool has been verified by a specific organization or individual. verified_source: - type: string + type: array + items: + type: string description: Source of metadata that can support a verified tool, such as an email or URL. signed: @@ -723,7 +732,9 @@ components: $ref: "#/components/schemas/DescriptorType" containerfile: type: boolean - description: Reports if this tool has a containerfile available. + description: Reports if this tool has a containerfile available. (For + Docker-based tools, this would indicate the presence of a + Dockerfile) meta_version: type: string description: The version of this tool version in the registry. Iterates when @@ -733,7 +744,9 @@ components: description: Reports whether this tool has been verified by a specific organization or individual. verified_source: - type: string + type: array + items: + type: string description: Source of metadata that can support a verified tool, such as an email or URL. ImageData: @@ -863,9 +876,6 @@ components: API supported by the endpoints at the basePath specified above. The service hosting this API may very well support different versions at a different basePath (with its own ServiceInfo) - country: - type: string - description: A country code for the registry (ISO 3166-1 alpha-3). friendly_name: type: string description: A friendly name that can be used in addition to the hostname to From 60430fee9f372a1eb741ecb1f63a942690e7fbb3 Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Fri, 2 Aug 2019 12:01:16 -0400 Subject: [PATCH 056/102] Typo in example (#99) * Update ga4gh-tool-discovery.yaml * Update ga4gh-tool-discovery.yaml * OpenAPI changed --- openapi/ga4gh-tool-discovery.yaml | 4 ++-- openapi/openapi.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/openapi/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml index 13495bf5..d89c22a5 100644 --- a/openapi/ga4gh-tool-discovery.yaml +++ b/openapi/ga4gh-tool-discovery.yaml @@ -590,8 +590,8 @@ definitions: description: The name of the version. url: type: string - description: The URL for this tool in this registry. - example: 'http://agora.broadinstitute.org/tools/123456/1' + description: The URL for this tool version in this registry. + example: 'http://agora.broadinstitute.org/tools/123456/versions/1' id: type: string description: >- diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 1179272b..40446b0e 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -711,8 +711,8 @@ components: description: The name of the version. url: type: string - description: The URL for this tool in this registry. - example: http://agora.broadinstitute.org/tools/123456/1 + description: The URL for this tool version in this registry. + example: http://agora.broadinstitute.org/tools/123456/versions/1 id: type: string description: An identifier of the version of this tool for this particular tool From a76c16654ce8f4bb070ddcfa28e6be6646c58cde Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Mon, 12 Aug 2019 11:38:26 -0400 Subject: [PATCH 057/102] Remove service-info to avoid breaking change (#101) * Update ga4gh-tool-discovery.yaml * OpenAPI changed --- openapi/ga4gh-tool-discovery.yaml | 77 ------------------------------- openapi/openapi.yaml | 76 ------------------------------ 2 files changed, 153 deletions(-) diff --git a/openapi/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml index d89c22a5..8c14ba1f 100644 --- a/openapi/ga4gh-tool-discovery.yaml +++ b/openapi/ga4gh-tool-discovery.yaml @@ -418,18 +418,6 @@ paths: description: There are no container specifications for this tool. schema: $ref: '#/definitions/Error' - /service-info: - get: - summary: Return some information that is useful for describing this registry - operationId: serviceInfoGet - description: Return some information that is useful for describing this registry. - tags: - - GA4GH - responses: - '200': - description: A ServiceInfo object describing this service. - schema: - $ref: '#/definitions/ServiceInfo' /toolClasses: get: summary: List all tool types @@ -709,71 +697,6 @@ definitions: containerfile: url: >- https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile - ServiceInfo: - type: object - description: >- - Describes this registry to better allow for mirroring, indexing, and - useful information about the running service, including supported versions - and default settings. Partially synced with - https://github.com/ga4gh-discovery/service-info - required: - - id - - name - - version - - api_version - - contact_info_url - properties: - id: - type: string - description: >- - Unique ID of this service. Reverse domain name notation is - recommended, though not required. - example: org.ga4gh.service - name: - type: string - description: Name of this specific service. - example: 1000 Genomes Project - description: - type: string - description: Description of the service. - example: >- - The 1000 Genomes Project is the largest public catalogue of human - variation and genotype data. - documentationUrl: - type: string - description: URL of the documentation of this service (RFC 3986 format). - example: 'https://docs.example.com' - contactUrl: - type: string - description: >- - URL of the contact for the host/maintainer of this service, e.g. a - link to a contact form (RFC 3986 format), or an email (RFC 2368 - format). Users of the endpoint should use this to report problems or - security vulnerabilities. - example: 'mailto:support@example.com' - version: - type: string - description: Version of the service. - example: '0.1' - api_version: - type: array - items: - type: string - example: - - '2.0' - - '2.1' - - '2.5' - description: >- - The versions of the GA4GH tool-registry API supported by this - registry. Note that this denotes the (likely minor) versions of the - API supported by the endpoints at the basePath specified above. The - service hosting this API may very well support different versions at a - different basePath (with its own ServiceInfo) - friendly_name: - type: string - description: >- - A friendly name that can be used in addition to the hostname to - describe a registry. Error: type: object required: diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 40446b0e..9b53e825 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -509,23 +509,6 @@ paths: text/plain: schema: $ref: "#/components/schemas/Error" - /service-info: - get: - summary: Return some information that is useful for describing this registry - operationId: serviceInfoGet - description: Return some information that is useful for describing this registry. - tags: - - GA4GH - responses: - "200": - description: A ServiceInfo object describing this service. - content: - application/json: - schema: - $ref: "#/components/schemas/ServiceInfo" - text/plain: - schema: - $ref: "#/components/schemas/ServiceInfo" /toolClasses: get: summary: List all tool types @@ -821,65 +804,6 @@ components: url: https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl containerfile: url: https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile - ServiceInfo: - type: object - description: Describes this registry to better allow for mirroring, indexing, and - useful information about the running service, including supported - versions and default settings. Partially synced with - https://github.com/ga4gh-discovery/service-info - required: - - id - - name - - version - - api_version - - contact_info_url - properties: - id: - type: string - description: Unique ID of this service. Reverse domain name notation is - recommended, though not required. - example: org.ga4gh.service - name: - type: string - description: Name of this specific service. - example: 1000 Genomes Project - description: - type: string - description: Description of the service. - example: The 1000 Genomes Project is the largest public catalogue of human - variation and genotype data. - documentationUrl: - type: string - description: URL of the documentation of this service (RFC 3986 format). - example: https://docs.example.com - contactUrl: - type: string - description: URL of the contact for the host/maintainer of this service, e.g. a - link to a contact form (RFC 3986 format), or an email (RFC 2368 - format). Users of the endpoint should use this to report problems or - security vulnerabilities. - example: mailto:support@example.com - version: - type: string - description: Version of the service. - example: "0.1" - api_version: - type: array - items: - type: string - example: - - "2.0" - - "2.1" - - "2.5" - description: The versions of the GA4GH tool-registry API supported by this - registry. Note that this denotes the (likely minor) versions of the - API supported by the endpoints at the basePath specified above. The - service hosting this API may very well support different versions at - a different basePath (with its own ServiceInfo) - friendly_name: - type: string - description: A friendly name that can be used in addition to the hostname to - describe a registry. Error: type: object required: From 3fc0d63ba03fa259c7b3b9718cb7dfc6600cc6fd Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Mon, 12 Aug 2019 13:32:33 -0400 Subject: [PATCH 058/102] Move around a few fields (#97) * Update ga4gh-tool-discovery.yaml --- openapi/ga4gh-tool-discovery.yaml | 49 ++++++++++++------------------- openapi/openapi.yaml | 49 ++++++++++++------------------- 2 files changed, 37 insertions(+), 61 deletions(-) diff --git a/openapi/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml index 8c14ba1f..b8de1eb1 100644 --- a/openapi/ga4gh-tool-discovery.yaml +++ b/openapi/ga4gh-tool-discovery.yaml @@ -475,7 +475,6 @@ definitions: - url - id - organization - - author - toolclass - versions properties: @@ -516,26 +515,11 @@ definitions: description: type: string description: The description of the tool. - author: - type: array - items: - type: string - description: >- - Contact information for the author of this tool entry in the registry. - (More complex authorship information is handled by the descriptor). meta_version: type: string description: >- The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated. - included_apps: - description: An array of IDs for the applications that are stored inside this tool. - example: - - 'https://bio.tools/tool/mytum.de/SNAP2/1' - - 'https://bio.tools/bioexcel_seqqc' - type: array - items: - type: string has_checker: type: boolean description: Whether this tool has a checker tool associated with it. @@ -544,21 +528,6 @@ definitions: description: >- Optional url to the checker tool that will exit successfully if this tool produced the expected result given test data. - verified: - type: boolean - description: >- - Reports whether this tool has been verified by a specific organization - or individual. - verified_source: - type: array - items: - type: string - description: >- - Source of metadata that can support a verified tool, such as an email - or URL. - signed: - type: boolean - description: Reports whether this tool has been signed. versions: description: A list of versions for this tool. type: array @@ -573,6 +542,13 @@ definitions: - url - id properties: + author: + type: array + items: + type: string + description: >- + Contact information for the author of this version of the tool in the registry. + (More complex authorship information is handled by the descriptor). name: type: string description: The name of the version. @@ -619,6 +595,17 @@ definitions: description: >- Source of metadata that can support a verified tool, such as an email or URL. + signed: + type: boolean + description: Reports whether this version of the tool has been signed. + included_apps: + description: An array of IDs for the applications that are stored inside this tool. + example: + - 'https://bio.tools/tool/mytum.de/SNAP2/1' + - 'https://bio.tools/bioexcel_seqqc' + type: array + items: + type: string ImageData: type: object description: Describes one container image. diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 9b53e825..99c0bb84 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -596,7 +596,6 @@ components: - url - id - organization - - author - toolclass - versions properties: @@ -636,26 +635,10 @@ components: description: type: string description: The description of the tool. - author: - type: array - items: - type: string - description: Contact information for the author of this tool entry in the - registry. (More complex authorship information is handled by the - descriptor). meta_version: type: string description: The version of this tool in the registry. Iterates when fields like the description, author, etc. are updated. - included_apps: - description: An array of IDs for the applications that are stored inside this - tool. - example: - - https://bio.tools/tool/mytum.de/SNAP2/1 - - https://bio.tools/bioexcel_seqqc - type: array - items: - type: string has_checker: type: boolean description: Whether this tool has a checker tool associated with it. @@ -663,19 +646,6 @@ components: type: string description: Optional url to the checker tool that will exit successfully if this tool produced the expected result given test data. - verified: - type: boolean - description: Reports whether this tool has been verified by a specific - organization or individual. - verified_source: - type: array - items: - type: string - description: Source of metadata that can support a verified tool, such as an - email or URL. - signed: - type: boolean - description: Reports whether this tool has been signed. versions: description: A list of versions for this tool. type: array @@ -689,6 +659,13 @@ components: - url - id properties: + author: + type: array + items: + type: string + description: Contact information for the author of this version of the tool in + the registry. (More complex authorship information is handled by the + descriptor). name: type: string description: The name of the version. @@ -732,6 +709,18 @@ components: type: string description: Source of metadata that can support a verified tool, such as an email or URL. + signed: + type: boolean + description: Reports whether this version of the tool has been signed. + included_apps: + description: An array of IDs for the applications that are stored inside this + tool. + example: + - https://bio.tools/tool/mytum.de/SNAP2/1 + - https://bio.tools/bioexcel_seqqc + type: array + items: + type: string ImageData: type: object description: Describes one container image. From 36d580aaa71e8eb1b6852a53afc235043852996b Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Mon, 12 Aug 2019 15:08:02 -0400 Subject: [PATCH 059/102] test gradle fix for site deployment (#105) --- .travis.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.travis.yml b/.travis.yml index 4adfa43f..af5dd66e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,14 @@ dist: xenial language: java jdk: openjdk8 +# looks like papa32 plugin 1.5.0 is no longer compatible with gradle 5, the other option is to try running without it +before_install: + - wget http://services.gradle.org/distributions/gradle-4.10.2-bin.zip + - unzip -qq gradle-4.10.2-bin.zip + - export GRADLE_HOME=$PWD/gradle-4.10.2 + - export PATH=$GRADLE_HOME/bin:$PATH + - gradle -v + jobs: include: - stage: check-links From 5b5e49979b7ff1bf8792d98c3dce8ed8372ce21b Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Tue, 13 Aug 2019 11:13:53 -0400 Subject: [PATCH 060/102] Optional auth (#102) * Update ga4gh-tool-discovery.yaml --- openapi/ga4gh-tool-discovery.yaml | 25 +++++++++++++++++++++++++ openapi/openapi.yaml | 25 +++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/openapi/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml index b8de1eb1..d03e7038 100644 --- a/openapi/ga4gh-tool-discovery.yaml +++ b/openapi/ga4gh-tool-discovery.yaml @@ -19,6 +19,11 @@ produces: - application/json - text/plain basePath: /ga4gh/trs/v2 +securityDefinitions: + BEARER: + type: apiKey + name: Authorization + in: header tags: - name: GA4GH description: A group of web resources proposed as a common standard for tool repositories @@ -51,6 +56,8 @@ paths: description: The tool can not be found. schema: $ref: '#/definitions/Error' + security: + - BEARER: [] '/tools/{id}/versions': get: summary: List versions of a tool @@ -73,6 +80,8 @@ paths: type: array items: $ref: '#/definitions/ToolVersion' + security: + - BEARER: [] '/tools/{id}/versions/{version_id}': get: summary: 'List one specific tool version, acts as an anchor for self references' @@ -104,6 +113,8 @@ paths: description: The tool can not be found. schema: $ref: '#/definitions/Error' + security: + - BEARER: [] /tools: get: summary: List all tools @@ -191,6 +202,8 @@ paths: current_limit: description: The current page record limit used for this result. type: integer + security: + - BEARER: [] '/tools/{id}/versions/{version_id}/{type}/descriptor': get: summary: Get the tool descriptor for the specified tool @@ -233,6 +246,8 @@ paths: description: The tool descriptor can not be found. schema: $ref: '#/definitions/Error' + security: + - BEARER: [] '/tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}': get: summary: Get additional tool descriptor files relative to the main file @@ -292,6 +307,8 @@ paths: description: The tool can not be output in the specified type. schema: $ref: '#/definitions/Error' + security: + - BEARER: [] '/tools/{id}/versions/{version_id}/{type}/tests': get: summary: Get a list of test JSONs @@ -337,6 +354,8 @@ paths: description: The tool can not be output in the specified type. schema: $ref: '#/definitions/Error' + security: + - BEARER: [] '/tools/{id}/versions/{version_id}/{type}/files': get: summary: Get a list of objects that contain the relative path and file type @@ -381,6 +400,8 @@ paths: description: The tool can not be output in the specified type. schema: $ref: '#/definitions/Error' + security: + - BEARER: [] '/tools/{id}/versions/{version_id}/containerfile': get: summary: Get the container specification(s) for the specified image. @@ -418,6 +439,8 @@ paths: description: There are no container specifications for this tool. schema: $ref: '#/definitions/Error' + security: + - BEARER: [] /toolClasses: get: summary: List all tool types @@ -433,6 +456,8 @@ paths: type: array items: $ref: '#/definitions/ToolClass' + security: + - BEARER: [] definitions: ToolFile: type: object diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 99c0bb84..1c90facf 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -56,6 +56,8 @@ paths: text/plain: schema: $ref: "#/components/schemas/Error" + security: + - BEARER: [] "/tools/{id}/versions": get: summary: List versions of a tool @@ -85,6 +87,8 @@ paths: type: array items: $ref: "#/components/schemas/ToolVersion" + security: + - BEARER: [] "/tools/{id}/versions/{version_id}": get: summary: List one specific tool version, acts as an anchor for self references @@ -126,6 +130,8 @@ paths: text/plain: schema: $ref: "#/components/schemas/Error" + security: + - BEARER: [] /tools: get: summary: List all tools @@ -231,6 +237,8 @@ paths: type: array items: $ref: "#/components/schemas/Tool" + security: + - BEARER: [] "/tools/{id}/versions/{version_id}/{type}/descriptor": get: summary: Get the tool descriptor for the specified tool @@ -282,6 +290,8 @@ paths: text/plain: schema: $ref: "#/components/schemas/Error" + security: + - BEARER: [] "/tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}": get: summary: Get additional tool descriptor files relative to the main file @@ -350,6 +360,8 @@ paths: text/plain: schema: $ref: "#/components/schemas/Error" + security: + - BEARER: [] "/tools/{id}/versions/{version_id}/{type}/tests": get: summary: Get a list of test JSONs @@ -406,6 +418,8 @@ paths: text/plain: schema: $ref: "#/components/schemas/Error" + security: + - BEARER: [] "/tools/{id}/versions/{version_id}/{type}/files": get: summary: Get a list of objects that contain the relative path and file type @@ -461,6 +475,8 @@ paths: text/plain: schema: $ref: "#/components/schemas/Error" + security: + - BEARER: [] "/tools/{id}/versions/{version_id}/containerfile": get: summary: Get the container specification(s) for the specified image. @@ -509,6 +525,8 @@ paths: text/plain: schema: $ref: "#/components/schemas/Error" + security: + - BEARER: [] /toolClasses: get: summary: List all tool types @@ -531,6 +549,8 @@ paths: type: array items: $ref: "#/components/schemas/ToolClass" + security: + - BEARER: [] externalDocs: description: Description of GA4GH Tool Registry (Exchange) Schema url: https://github.com/ga4gh/tool-registry-schemas @@ -556,6 +576,11 @@ components: results. schema: type: string + securitySchemes: + BEARER: + type: apiKey + name: Authorization + in: header schemas: ToolFile: type: object From e58c2e4e6b8d954bcbdf819ff3f85c135ccd2e07 Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Wed, 14 Aug 2019 10:18:47 -0400 Subject: [PATCH 061/102] PRC feedback - strict tool versioning for reproducibility (#93) * Update to match discussion in DRS checksum object added and tweaked to match https://github.com/ga4gh/data-repository-service-schemas/pull/282 --- openapi/ga4gh-tool-discovery.yaml | 44 ++++++++++++++++++++++++++- openapi/openapi.yaml | 50 ++++++++++++++++++++++++++++++- 2 files changed, 92 insertions(+), 2 deletions(-) diff --git a/openapi/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml index d03e7038..b48f9d06 100644 --- a/openapi/ga4gh-tool-discovery.yaml +++ b/openapi/ga4gh-tool-discovery.yaml @@ -103,7 +103,9 @@ paths: type: string description: >- An identifier of the tool version, scoped to this registry, for - example `v1`. + example `v1`. We recommend that versions use semantic versioning https://semver.org/spec/v2.0.0.html + (For example, `1.0.0` instead of `develop`) + responses: '200': description: A tool version. @@ -459,6 +461,21 @@ paths: security: - BEARER: [] definitions: + Checksum: + type: object + required: ['checksum', 'type'] + properties: + checksum: + type: string + description: |- + The hex-string encoded checksum for the data. + type: + type: string + description: |- + The digest method used to create the checksum. + The value (e.g. `sha-256`) SHOULD be listed as `Hash Name String` in the https://github.com/ga4gh-discovery/ga4gh-hash-alg-registry/blob/master/hash-alg.csv[GA4GH Hash Algorithm Registry]. + Other values MAY be used, as long as implementors are aware of the issues discussed in https://tools.ietf.org/html/rfc6920#section-9.4[RFC6920]. + GA4GH may provide more explicit guidance for use of non-IANA-registered algorithms in the future. ToolFile: type: object properties: @@ -587,6 +604,12 @@ definitions: An identifier of the version of this tool for this particular tool registry. example: v1 + is_production: + type: boolean + description: >- + This version of a tool is guaranteed to not change over time (for example, a + tool built from a tag in git as opposed to a branch). A production quality tool + is required to have a checksum images: description: >- All known docker images (and versions/hashes) used by this tool. If @@ -654,6 +677,16 @@ definitions: updated: type: string description: Last time the container was updated. + checksum: + type: array + items: + $ref: '#/definitions/Checksum' + description: >- + A production (immutable) tool version is required to have a hashcode. Not required otherwise, but might be useful to detect changes. + This exposes the hashcode for specific image versions to verify that the container version pulled is actually the version that was indexed by the registry. + example: + - checksum: '77af4d6b9913e693e8d0b4b294fa62ade6054e6b2f1ffb617ac955dd63fb0182' + type: sha256 image_type: $ref: '#/definitions/ImageType' ImageType: @@ -695,6 +728,15 @@ definitions: content: type: string description: The content of the file itself. One of url or content is required. + checksum: + type: array + items: + $ref: '#/definitions/Checksum' + description: >- + A production (immutable) tool version is required to have a hashcode. Not required otherwise, but might be useful to detect changes. + example: + - checksum: ea2a5db69bd20a42976838790bc29294df3af02b + type: sha1 url: type: string description: >- diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 1c90facf..610d284d 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -108,7 +108,9 @@ paths: in: path required: true description: An identifier of the tool version, scoped to this registry, for - example `v1`. + example `v1`. We recommend that versions use semantic versioning + https://semver.org/spec/v2.0.0.html (For example, `1.0.0` instead + of `develop`) schema: type: string responses: @@ -582,6 +584,25 @@ components: name: Authorization in: header schemas: + Checksum: + type: object + required: + - checksum + - type + properties: + checksum: + type: string + description: "The hex-string encoded checksum for the data. " + type: + type: string + description: >- + The digest method used to create the checksum. + + The value (e.g. `sha-256`) SHOULD be listed as `Hash Name String` in the https://github.com/ga4gh-discovery/ga4gh-hash-alg-registry/blob/master/hash-alg.csv[GA4GH Hash Algorithm Registry]. + + Other values MAY be used, as long as implementors are aware of the issues discussed in https://tools.ietf.org/html/rfc6920#section-9.4[RFC6920]. + + GA4GH may provide more explicit guidance for use of non-IANA-registered algorithms in the future. ToolFile: type: object properties: @@ -703,6 +724,11 @@ components: description: An identifier of the version of this tool for this particular tool registry. example: v1 + is_production: + type: boolean + description: This version of a tool is guaranteed to not change over time (for + example, a tool built from a tag in git as opposed to a branch). A + production quality tool is required to have a checksum images: description: All known docker images (and versions/hashes) used by this tool. If the tool has to evaluate any of the docker images strings at @@ -768,6 +794,18 @@ components: updated: type: string description: Last time the container was updated. + checksum: + type: array + items: + $ref: "#/components/schemas/Checksum" + description: A production (immutable) tool version is required to have a + hashcode. Not required otherwise, but might be useful to detect + changes. This exposes the hashcode for specific image versions to + verify that the container version pulled is actually the version + that was indexed by the registry. + example: + - checksum: 77af4d6b9913e693e8d0b4b294fa62ade6054e6b2f1ffb617ac955dd63fb0182 + type: sha256 image_type: $ref: "#/components/schemas/ImageType" ImageType: @@ -807,6 +845,16 @@ components: content: type: string description: The content of the file itself. One of url or content is required. + checksum: + type: array + items: + $ref: "#/components/schemas/Checksum" + description: "A production (immutable) tool version is required to have a + hashcode. Not required otherwise, but might be useful to detect + changes. " + example: + - checksum: ea2a5db69bd20a42976838790bc29294df3af02b + type: sha1 url: type: string description: Optional url to the underlying content, should include version From 495d967975b77f653df621a3a16e7af9b80631bb Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Wed, 21 Aug 2019 12:27:13 -0400 Subject: [PATCH 062/102] Update README.md (#108) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fac45c68..11b394b0 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Schemas for the GA4GH Tool Registry API This repository is the home for the schema for the GA4GH Tool Registry API. The goal of the API is to provide a standardized way to describe the availability of tools and workflows. In this way, we can have multiple repositories that share Docker-based tools and WDL/CWL/Nextflow-based workflows and have a consistent way to interact, search, and retrieve information from these various registries. The end goal is to make it much easier to share scientific tools and workflows, enhancing our ability to make research reproducible, sharable, and transparent. -**See the human-readable [Reference Documentation](https://ga4gh.github.io/tool-registry-service-schemas/Introduction/). You can also explore the specification in the [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/openapi/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* +**See the human-readable [Reference Documentation](https://ga4gh.github.io/tool-registry-service-schemas). You can also explore the specification in the [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/openapi/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* See our generated doc From 805e4a56f298f977a97eb8ec7026b0418d719d11 Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Wed, 21 Aug 2019 17:34:18 -0400 Subject: [PATCH 063/102] Feature/fix delete branch script (#110) * Testing * Test once more * Fetch all branches * Last index.md to change...hopefully * Don't use lower case --- scripts/update-ghpages.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/update-ghpages.sh b/scripts/update-ghpages.sh index 7a2caba7..c86fb4cf 100644 --- a/scripts/update-ghpages.sh +++ b/scripts/update-ghpages.sh @@ -4,10 +4,10 @@ set -o pipefail set -o nounset set -o xtrace set -u -BRANCH=$(echo "$TRAVIS_BRANCH" | awk '{print tolower($0)}') +BRANCH=$(echo "$TRAVIS_BRANCH") BRANCH_PATH="preview/$BRANCH" git config --replace-all remote.origin.fetch +refs/heads/*:refs/remotes/origin/* -git fetch origin gh-pages +git fetch --deepen=50000 #TODO: changes in the package-lock.json are breaking the build, see https://api.travis-ci.org/v3/job/544918298/log.txt git checkout package-lock.json git checkout gh-pages @@ -23,7 +23,7 @@ if [[ -n "$(git status --porcelain "${BRANCH_PATH}")" && ${TRAVIS_PULL_REQUEST} bash scripts/create-table-of-contents.sh bash scripts/remove-docs-for-deleted-branches.sh git add preview - git add index.md + git add TableOfContents.md git commit -m "Docs changed for "${TRAVIS_BRANCH}"" git push git@github.com:"${TRAVIS_REPO_SLUG}" gh-pages else From 0d99c7cf7bd01a7b80d82a4fc34b2181cb3b33c1 Mon Sep 17 00:00:00 2001 From: Susheel Varma Date: Wed, 21 Aug 2019 22:38:12 +0100 Subject: [PATCH 064/102] Corrects link to GA4GH . checksum hash algorithm registry (#106) * Correcting hash algorithm registry link * Correcting hash alg registry link * Fixing unrelated link --- openapi/ga4gh-tool-discovery.yaml | 2 +- openapi/openapi.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openapi/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml index b48f9d06..d67c371a 100644 --- a/openapi/ga4gh-tool-discovery.yaml +++ b/openapi/ga4gh-tool-discovery.yaml @@ -473,7 +473,7 @@ definitions: type: string description: |- The digest method used to create the checksum. - The value (e.g. `sha-256`) SHOULD be listed as `Hash Name String` in the https://github.com/ga4gh-discovery/ga4gh-hash-alg-registry/blob/master/hash-alg.csv[GA4GH Hash Algorithm Registry]. + The value (e.g. `sha-256`) SHOULD be listed as `Hash Name String` in the https://github.com/ga4gh-discovery/ga4gh-checksum/blob/master/hash-alg.csv[GA4GH Checksum Hash Algorithm Registry]. Other values MAY be used, as long as implementors are aware of the issues discussed in https://tools.ietf.org/html/rfc6920#section-9.4[RFC6920]. GA4GH may provide more explicit guidance for use of non-IANA-registered algorithms in the future. ToolFile: diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 610d284d..0fb44f61 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -598,7 +598,7 @@ components: description: >- The digest method used to create the checksum. - The value (e.g. `sha-256`) SHOULD be listed as `Hash Name String` in the https://github.com/ga4gh-discovery/ga4gh-hash-alg-registry/blob/master/hash-alg.csv[GA4GH Hash Algorithm Registry]. + The value (e.g. `sha-256`) SHOULD be listed as `Hash Name String` in the https://github.com/ga4gh-discovery/ga4gh-checksum/blob/master/hash-alg.csv[GA4GH Checksum Hash Algorithm Registry]. Other values MAY be used, as long as implementors are aware of the issues discussed in https://tools.ietf.org/html/rfc6920#section-9.4[RFC6920]. From 72a8846edf84d58a99e1d8eacf63c8b3d2c9def2 Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Wed, 21 Aug 2019 18:41:34 -0400 Subject: [PATCH 065/102] Glitchy badge (#112) --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 11b394b0..30e616d3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![ga4gh logo](https://github.com/dockstore/dockstore-ui2/raw/develop/src/assets/images/sponsors/coloured/ga4gh.png) -[![DOI](https://zenodo.org/badge/48013867.svg)](https://zenodo.org/badge/latestdoi/48013867) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3374001.svg)](https://doi.org/10.5281/zenodo.3374001) Schemas for the GA4GH Tool Registry API @@ -10,8 +10,6 @@ This repository is the home for the schema for the GA4GH Tool Registry API. The **See the human-readable [Reference Documentation](https://ga4gh.github.io/tool-registry-service-schemas). You can also explore the specification in the [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/openapi/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* -See our generated doc - The [Global Alliance for Genomics and Health](http://genomicsandhealth.org/) (GA4GH) is an international coalition, formed to enable the sharing of genomic and clinical data. From c343e9c64e6e480f0b5a212d93473d8aba59ed0e Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Mon, 23 Sep 2019 13:18:56 -0400 Subject: [PATCH 066/102] Update registry.json (#115) * Update registry.json --- registry.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/registry.json b/registry.json index cff614d7..c8592d71 100644 --- a/registry.json +++ b/registry.json @@ -1,5 +1,8 @@ { - "dockstore" : [ - "https://www.dockstore.org:8443/api/v1/metadata" - ] + "dockstore": [ + "https://dockstore.org/api/api/ga4gh/v2/metadata" + ], + "biocontainers": [ + "https://api.biocontainers.pro/api/ga4gh/v2/metadata" + ] } From fff394724410321e2c463e4705cf2b6e92b31de8 Mon Sep 17 00:00:00 2001 From: Susheel Varma Date: Tue, 28 Jan 2020 11:02:49 +0000 Subject: [PATCH 067/102] Adding GA4GH service-info into TRS --- openapi/ga4gh-tool-discovery.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openapi/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml index d67c371a..23dd178d 100644 --- a/openapi/ga4gh-tool-discovery.yaml +++ b/openapi/ga4gh-tool-discovery.yaml @@ -30,6 +30,9 @@ tags: externalDocs: url: https://ga4gh.github.io/tool-registry-service-schemas/Introduction/ paths: + '/service-info': + # Links to the latest version of service-info. Use a tag once service-info is released instead. + $ref: 'https://raw.githubusercontent.com/ga4gh-discovery/ga4gh-service-info/develop/service-info.yaml#/paths/~1service-info' '/tools/{id}': get: summary: 'List one specific tool, acts as an anchor for self references' From 746f296b7eed4f90c5b49998bac9e6013384207b Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Tue, 28 Jan 2020 11:29:59 -0500 Subject: [PATCH 068/102] adding https to gradle --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index af5dd66e..2d3111a6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ jdk: openjdk8 # looks like papa32 plugin 1.5.0 is no longer compatible with gradle 5, the other option is to try running without it before_install: - - wget http://services.gradle.org/distributions/gradle-4.10.2-bin.zip + - wget https://services.gradle.org/distributions/gradle-4.10.2-bin.zip - unzip -qq gradle-4.10.2-bin.zip - export GRADLE_HOME=$PWD/gradle-4.10.2 - export PATH=$GRADLE_HOME/bin:$PATH From 08a92f0c14e654baeb4399100147b0da0685a372 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 28 Jan 2020 16:31:44 +0000 Subject: [PATCH 069/102] OpenAPI changed --- openapi/openapi.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 0fb44f61..f01bee9c 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -21,6 +21,8 @@ tags: externalDocs: url: https://ga4gh.github.io/tool-registry-service-schemas/Introduction/ paths: + /service-info: + $ref: https://raw.githubusercontent.com/ga4gh-discovery/ga4gh-service-info/develop/service-info.yaml#/paths/~1service-info "/tools/{id}": get: summary: List one specific tool, acts as an anchor for self references From 540d48e07bb781471327e7febc4bd4b75e1b9284 Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Thu, 6 Feb 2020 12:14:16 -0500 Subject: [PATCH 070/102] Fix CI (#123) --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index af5dd66e..2d3111a6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ jdk: openjdk8 # looks like papa32 plugin 1.5.0 is no longer compatible with gradle 5, the other option is to try running without it before_install: - - wget http://services.gradle.org/distributions/gradle-4.10.2-bin.zip + - wget https://services.gradle.org/distributions/gradle-4.10.2-bin.zip - unzip -qq gradle-4.10.2-bin.zip - export GRADLE_HOME=$PWD/gradle-4.10.2 - export PATH=$GRADLE_HOME/bin:$PATH From adf2ac6e671ec0ccea1bec2df00dcfaa2d8ad16d Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Thu, 6 Feb 2020 15:42:02 -0500 Subject: [PATCH 071/102] Don't create swagger-ui (#125) * Don't create swagger-ui * Remove build script --- .travis.yml | 2 +- build.gradle | 11 +- package-lock.json | 2227 ------------------------------------- package.json | 22 - scripts/buildui.js | 21 - scripts/update-ghpages.sh | 3 +- 6 files changed, 3 insertions(+), 2283 deletions(-) delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100755 scripts/buildui.js diff --git a/.travis.yml b/.travis.yml index 2d3111a6..145cb8a8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,6 +26,6 @@ jobs: script: - "gradle wrapper" - "chmod +x gradlew" - - "./gradlew installSwagger buildSwagger asciidoctor" + - "./gradlew asciidoctor" after_success: - bash scripts/update-ghpages.sh diff --git a/build.gradle b/build.gradle index c8a077c4..b055a786 100644 --- a/build.gradle +++ b/build.gradle @@ -94,14 +94,5 @@ liveReload { task wrapper(type: Wrapper) { - gradleVersion = '3.5' + gradleVersion = '4.10.2' } - -task installSwagger(type: NpmTask) { - npmCommand = ["install"] -} - -task buildSwagger(type: NpmTask) { - npmCommand = ["run", "build"] -} - diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index c2c08ad3..00000000 --- a/package-lock.json +++ /dev/null @@ -1,2227 +0,0 @@ -{ - "name": "Workflow-Execution-Service-openapi-spec", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@types/babel-types": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz", - "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==" - }, - "@types/babylon": { - "version": "6.16.5", - "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz", - "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==", - "requires": { - "@types/babel-types": "*" - } - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" - }, - "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", - "requires": { - "acorn": "^4.0.4" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } - } - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - } - }, - "bower": { - "version": "1.8.8", - "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.8.tgz", - "integrity": "sha512-1SrJnXnkP9soITHptSO+ahx3QKp3cVzn8poI6ujqc5SeOkg5iqM1pK9H+DSc2OQ8SnO0jC/NG4Ur/UIwy7574A==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "chance": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/chance/-/chance-1.0.18.tgz", - "integrity": "sha512-g9YLQVHVZS/3F+zIicfB58vjcxopvYQRp7xHzvyDFDhXH1aRZI/JhwSAO0X5qYiQluoGnaNAU6wByD2KTxJN1A==" - }, - "character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", - "requires": { - "is-regex": "^1.0.3" - } - }, - "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", - "requires": { - "source-map": "~0.6.0" - } - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - } - }, - "constantinople": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", - "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", - "requires": { - "@types/babel-types": "^7.0.0", - "@types/babylon": "^6.16.2", - "babel-types": "^6.26.0", - "babylon": "^6.18.0" - } - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" - }, - "core-js": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", - "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "deref": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/deref/-/deref-0.6.4.tgz", - "integrity": "sha1-vVqW1F2+0wEbuBvfaN31S+jhvU4=", - "requires": { - "deep-extend": "^0.4.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=" - }, - "drange": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz", - "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escodegen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz", - "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==", - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.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": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "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.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "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" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "faker": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/faker/-/faker-3.1.0.tgz", - "integrity": "sha1-D5CPr05uwCUk5UpX5DLFwBPgjJ8=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "formidable": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", - "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==" - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "github-markdown": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/github-markdown/-/github-markdown-3.2.0.tgz", - "integrity": "sha512-mtc8/f3DOCoxLi/lVgCpx5I71YxusLiFqgDJZWPcx+wd+fa3z6+hOTmuKhekawq+/4ftwp93EipxDIf5P7a7Vg==", - "requires": { - "get-stdin": "^5.0.1", - "globby": "^6.1.0", - "highlight.js": "^9.12.0", - "markdown-it": "^8.3.1", - "minimist": "^1.2.0", - "pify": "^3.0.0", - "primer-css": "^9.0.0", - "pug": "^2.0.0-rc.2" - } - }, - "github-markdown-css": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-2.10.0.tgz", - "integrity": "sha512-RX5VUC54uX6Lvrm226M9kMzsNeOa81MnKyxb3J0G5KLjyoOySOZgwyKFkUpv6iUhooiUZdogk+OTwQPJ4WttYg==" - }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "graphlib": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.7.tgz", - "integrity": "sha512-TyI9jIy2J4j0qgPmOOrHTCtpPqJGN/aurBwc6ZT+bRii+di1I+Wv3obRhVrmBEXet+qkMaEX67dXrwsd3QQM6w==", - "requires": { - "lodash": "^4.17.5" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "help": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/help/-/help-3.0.2.tgz", - "integrity": "sha1-luGQ1KCkU7icLLSwWrOOOo+f2t0=" - }, - "highlight.js": { - "version": "9.15.8", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.8.tgz", - "integrity": "sha512-RrapkKQWwE+wKdF73VsOa2RQdIoO3mxwJ4P8mhbI6KYJUraUHRKM5w5zQQKXNk0xNL4UVRdulV9SBJcmzJNzVA==" - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", - "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", - "requires": { - "acorn": "~4.0.2", - "object-assign": "^4.0.1" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "requires": { - "has": "^1.0.1" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "js-base64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", - "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==" - }, - "js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-pointer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.0.tgz", - "integrity": "sha1-jlAFUKaqxUZKRzN32leqbMIoKNc=", - "requires": { - "foreach": "^2.0.4" - } - }, - "json-refs": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/json-refs/-/json-refs-2.1.7.tgz", - "integrity": "sha1-uesB/in16j6Sh48VrqEK04taz4k=", - "requires": { - "commander": "^2.9.0", - "graphlib": "^2.1.1", - "js-yaml": "^3.8.3", - "native-promise-only": "^0.8.1", - "path-loader": "^1.0.2", - "slash": "^1.0.0", - "uri-js": "^3.0.2" - } - }, - "json-schema-faker": { - "version": "0.2.16", - "resolved": "https://registry.npmjs.org/json-schema-faker/-/json-schema-faker-0.2.16.tgz", - "integrity": "sha1-UdPKSJVdj+c09ZHXR7ckU75aePI=", - "requires": { - "chance": "~1.0.1", - "deref": "~0.6.3", - "faker": "~3.1.0", - "randexp": "~0.4.2" - } - }, - "jsonpath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", - "integrity": "sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA==", - "requires": { - "esprima": "1.2.2", - "static-eval": "2.0.2", - "underscore": "1.7.0" - }, - "dependencies": { - "esprima": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", - "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" - } - } - }, - "jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", - "requires": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "linkify-it": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz", - "integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "requires": { - "mime-db": "1.40.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "native-promise-only": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", - "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - }, - "dependencies": { - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - } - } - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-loader": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/path-loader/-/path-loader-1.0.10.tgz", - "integrity": "sha512-CMP0v6S6z8PHeJ6NFVyVJm6WyJjIwFvyz2b0n2/4bKdS/0uZa/9sKUlYZzubrn3zuDRU0zIuEDX9DZYQ2ZI8TA==", - "requires": { - "native-promise-only": "^0.8.1", - "superagent": "^3.8.3" - } - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "portfinder": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", - "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", - "requires": { - "async": "^1.5.2", - "debug": "^2.2.0", - "mkdirp": "0.5.x" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "primer-alerts": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/primer-alerts/-/primer-alerts-1.5.1.tgz", - "integrity": "sha512-2dyRO6ZgZF9ZR67gg+viCtsYV9CG+z6UARW8DAf4CEDkeiR4K46R6kKSC/WveEv8LPJ0MF+L4IXjqvn5kqK7zA==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-avatars": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-avatars/-/primer-avatars-1.4.1.tgz", - "integrity": "sha512-kd+GPMZqdXZ+N07CYeCWmRHCHUCeeCFNWldbgCg07NRfU+Ne9n01CLR/DcNuG27oP5A30ubvHnoEofvkgG3ynw==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-base": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/primer-base/-/primer-base-1.5.1.tgz", - "integrity": "sha512-7tv0/V5sSRucp65NQXEyC8E2GP9EumLSKFDrjbl0liZTwSve8HUm7TmzgDXkO5pWd0VSfc7+5G1qrrdsGNmkPQ==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-blankslate": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-blankslate/-/primer-blankslate-1.4.1.tgz", - "integrity": "sha512-osgVtGY6UikfK1vuoBWijxT1C+SsD8RQxvYS8RFMDh6bReEf45//3n0NJVksRT8GdGUS8atRnrsWzRCtDcEwAg==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-box": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/primer-box/-/primer-box-2.5.1.tgz", - "integrity": "sha512-jfJjDLQlaM9e5pyzcJHALEb3Gml5uEoDDAoWKiKwvxEhl6da+5DB+HGbEt3/KUqt9B3e9Omy6IBvvRfgnqae7A==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-breadcrumb": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-breadcrumb/-/primer-breadcrumb-1.4.1.tgz", - "integrity": "sha512-cmDjIXSXClLQcrWDeJkZJWXkacfCluZU23mfsVM8K0oZyhiHZjbleOdsbwGXMKpFSEJ61wi4zvF9ZMkx1s8EdA==", - "requires": { - "primer-marketing-support": "1.3.1", - "primer-support": "4.4.1" - } - }, - "primer-buttons": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/primer-buttons/-/primer-buttons-2.4.1.tgz", - "integrity": "sha512-wOb0FMkRI/sWntorY9KXzY/OVxT5P/V+xlotbEC3+SPfzTLG+vJCs5rsamMu7S4TzhOx675/DTSpMo83iY4h3w==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-cards": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/primer-cards/-/primer-cards-0.5.1.tgz", - "integrity": "sha512-iXqvCgL311UBoRbC/ioFYSUunFnS8rUGkyALtN3/qAw3LoeyE1vjcooV0f1ja/xOblH0vGa32HjEKo2sBTwQ7g==", - "requires": { - "primer-marketing-support": "1.3.1", - "primer-support": "4.4.1" - } - }, - "primer-core": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/primer-core/-/primer-core-6.4.1.tgz", - "integrity": "sha512-IxOLJ3BGLLFhDQ329zGgBMLaflqTn/WKAbRhl3XGIVh2vyRLBr8XPhzTfWfeFKt9WQ3ljzZkwip1GsMX9qqb1Q==", - "requires": { - "primer-base": "1.5.1", - "primer-box": "2.5.1", - "primer-buttons": "2.4.1", - "primer-forms": "1.4.1", - "primer-layout": "1.4.1", - "primer-navigation": "1.4.1", - "primer-support": "4.4.1", - "primer-table-object": "1.4.1", - "primer-tooltips": "1.4.1", - "primer-truncate": "1.4.1", - "primer-utilities": "4.8.1" - } - }, - "primer-css": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/primer-css/-/primer-css-9.6.0.tgz", - "integrity": "sha512-qzTck5gvQevHvI3sUgP0D2QzLdmAqwd9h1rucMObOIbp8xQcM8zZGFNo71FBu7TxNu4A00McNvnadSNOgmnJnA==", - "requires": { - "primer-alerts": "1.5.1", - "primer-avatars": "1.4.1", - "primer-base": "1.5.1", - "primer-blankslate": "1.4.1", - "primer-box": "2.5.1", - "primer-breadcrumb": "1.4.1", - "primer-buttons": "2.4.1", - "primer-cards": "0.5.1", - "primer-core": "6.4.1", - "primer-forms": "1.4.1", - "primer-labels": "1.5.1", - "primer-layout": "1.4.1", - "primer-markdown": "3.7.1", - "primer-marketing": "5.4.1", - "primer-marketing-support": "1.3.1", - "primer-marketing-type": "1.4.1", - "primer-marketing-utilities": "1.4.1", - "primer-navigation": "1.4.1", - "primer-page-headers": "1.4.1", - "primer-page-sections": "1.4.1", - "primer-product": "5.4.1", - "primer-support": "4.4.1", - "primer-table-object": "1.4.1", - "primer-tables": "1.4.1", - "primer-tooltips": "1.4.1", - "primer-truncate": "1.4.1", - "primer-utilities": "4.8.1" - } - }, - "primer-forms": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-forms/-/primer-forms-1.4.1.tgz", - "integrity": "sha512-wr7Ieoyy9iHPtR1zEaWEwPRA3PHo1eaOj3Q4VhYOBRv3rk+H3/Z49hey7PLyocPnvbF1GdG2s5/VkZUdgBEuqg==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-labels": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/primer-labels/-/primer-labels-1.5.1.tgz", - "integrity": "sha512-dsX98awj7UYKvhed+j47ChldBX9sV5OSO3MhhVAHon7Kj5kxPCLFkTw/YlOxOHFX2VlbP/5jMM5W46xnSERy1g==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-layout": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-layout/-/primer-layout-1.4.1.tgz", - "integrity": "sha512-x4u8twf8XGFL3mKplh0XM7jUjTL9Is/97BmlehZMQE+740G/gywPo2CpOV2GMCxWzmhQVJhib8At1+UvN+qvZQ==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-markdown": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/primer-markdown/-/primer-markdown-3.7.1.tgz", - "integrity": "sha512-62I7tZaCCnOgjc2yE1cuu4WTwbym/eNIpEMB0CSWvFf8ZiTVKC5dNpFIwT1ipE35IjgOVopdHdqdPzMXoxKNAg==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-marketing": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/primer-marketing/-/primer-marketing-5.4.1.tgz", - "integrity": "sha512-ccadKuKA4kQDTaopHsj+lOujdxa8d14Ff8fq5HLvHlrpgKvdVwuKtIwNL2ryuas1FVeTddxa3lBnlAcuVTwWIQ==", - "requires": { - "primer-breadcrumb": "1.4.1", - "primer-cards": "0.5.1", - "primer-marketing-support": "1.3.1", - "primer-marketing-type": "1.4.1", - "primer-marketing-utilities": "1.4.1", - "primer-page-headers": "1.4.1", - "primer-page-sections": "1.4.1", - "primer-support": "4.4.1", - "primer-tables": "1.4.1" - } - }, - "primer-marketing-support": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/primer-marketing-support/-/primer-marketing-support-1.3.1.tgz", - "integrity": "sha512-GDwQ4TdZNS4p6UbSMxv7j7DlgegEDU43k2QKFJZ9EAtBN/rOKkf9gBa31yEiJQvgG7wZ84CvioObYtw885TL7g==" - }, - "primer-marketing-type": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-marketing-type/-/primer-marketing-type-1.4.1.tgz", - "integrity": "sha512-cJGHvDkCy1bYiM2EDOwc+k7Y61DfvOIWambU5WmsGq7fUI92MRWqpyWZpYVOFEWqItRjLnxPv4myJCm0itKIRQ==", - "requires": { - "primer-marketing-support": "1.3.1", - "primer-support": "4.4.1" - } - }, - "primer-marketing-utilities": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-marketing-utilities/-/primer-marketing-utilities-1.4.1.tgz", - "integrity": "sha512-dbic/+lYITBnZKujg6s3GF0Mo3jhuiq1ps0a3negkBsxKsNyU68hoYEl2bN6UI5L2BX9GyzCLd58N1jyjV4uCw==", - "requires": { - "primer-marketing-support": "1.3.1", - "primer-support": "4.4.1" - } - }, - "primer-navigation": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-navigation/-/primer-navigation-1.4.1.tgz", - "integrity": "sha512-fMVrR8l/JtTXLzwf+8nHeBvoIQKysfbMLbU3VArSMaQp1/IwRS9eT4NijdpGoIeh2tmxD4nA+BM/dWHfjMucAw==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-page-headers": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-page-headers/-/primer-page-headers-1.4.1.tgz", - "integrity": "sha512-kmSi4Sys2dqt74sO1b5LcJq/EAnLe9p8t6oAs4PfkwgYXAdJPwHyTfe2+fueHYgqi07AlK3bnr1gw9rFen475Q==", - "requires": { - "primer-marketing-support": "1.3.1", - "primer-support": "4.4.1" - } - }, - "primer-page-sections": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-page-sections/-/primer-page-sections-1.4.1.tgz", - "integrity": "sha512-WR5abovsjAKlbZjn4q7+eLCEA3gnwh/tuZDJnZ3l2V5O+IpHYVXI5Boi6QxbQM3mbHOL19NJhQEyfcHXBe7AQw==", - "requires": { - "primer-marketing-support": "1.3.1", - "primer-support": "4.4.1" - } - }, - "primer-product": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/primer-product/-/primer-product-5.4.1.tgz", - "integrity": "sha512-W1sVne7TPc2FF+c8GHqWnWtQQOzkr7R6mT1wwafwsY8GiCCkUxOtn0JPORrHzx67FV1GSWVMJ49F7pQPcl1Zcw==", - "requires": { - "primer-alerts": "1.5.1", - "primer-avatars": "1.4.1", - "primer-blankslate": "1.4.1", - "primer-labels": "1.5.1", - "primer-markdown": "3.7.1", - "primer-support": "4.4.1" - } - }, - "primer-support": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/primer-support/-/primer-support-4.4.1.tgz", - "integrity": "sha512-stQEoF4NfWy8JOVASUHxGY+Ot1eBguPH8rWoeLQy16zKzcS16kRccfvGbBXyv0G/aA+DdL8ZmjlXB2ubJ+wBJg==" - }, - "primer-table-object": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-table-object/-/primer-table-object-1.4.1.tgz", - "integrity": "sha512-OkE3knDjLlzSot0/Q9O/b5GuKWTaxFyB/2CcZttA3WizAkxlkV4ql/Xy8mFr6WxBQORkBrrbxWUZC+Ulj88ZIQ==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-tables": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-tables/-/primer-tables-1.4.1.tgz", - "integrity": "sha512-Dk9ttoxIDigcJQ0vhh3VDkOL+/spGdEJacRFvNsysS4IbDOUDilXLZFcUZB2wCbhXFHS/CObk+/3zoW39J/6tg==", - "requires": { - "primer-marketing-support": "1.3.1", - "primer-support": "4.4.1" - } - }, - "primer-tooltips": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-tooltips/-/primer-tooltips-1.4.1.tgz", - "integrity": "sha512-Id0g033elSx7Sy7+HDzha4Tuv24QxPzVtT15IHSOXXa900NjZqR1HHQIyMd1EkVfPt2sZ3Z0/k0cTvdqXs6eJQ==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-truncate": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/primer-truncate/-/primer-truncate-1.4.1.tgz", - "integrity": "sha512-spBAPx7944txGXLCNGv+WZnPG4MiMhqn3srKlpGL2nmfcLxI+geviD+GhY/b42GyCgxRhcucrt/jxKYfsaBdww==", - "requires": { - "primer-support": "4.4.1" - } - }, - "primer-utilities": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/primer-utilities/-/primer-utilities-4.8.1.tgz", - "integrity": "sha512-3wu8GUsJVVa0IIUdIKP+ZVSFPmX8v2NQWjBSJK00GbSPwthztOnFEoE40Ru7wAuUDNXWu9zMnx2i0lcyDu+yBg==", - "requires": { - "primer-support": "4.4.1" - } - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - }, - "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" - } - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "pug": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.3.tgz", - "integrity": "sha1-ccuoJTfJWl6rftBGluQiH1Oqh44=", - "requires": { - "pug-code-gen": "^2.0.1", - "pug-filters": "^3.1.0", - "pug-lexer": "^4.0.0", - "pug-linker": "^3.0.5", - "pug-load": "^2.0.11", - "pug-parser": "^5.0.0", - "pug-runtime": "^2.0.4", - "pug-strip-comments": "^1.0.3" - } - }, - "pug-attrs": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.3.tgz", - "integrity": "sha1-owlflw5kFR972tlX7vVftdeQXRU=", - "requires": { - "constantinople": "^3.0.1", - "js-stringify": "^1.0.1", - "pug-runtime": "^2.0.4" - } - }, - "pug-code-gen": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.1.tgz", - "integrity": "sha1-CVHsgyJddNjPxHan+Zolm199BQw=", - "requires": { - "constantinople": "^3.0.1", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.1", - "pug-attrs": "^2.0.3", - "pug-error": "^1.3.2", - "pug-runtime": "^2.0.4", - "void-elements": "^2.0.1", - "with": "^5.0.0" - } - }, - "pug-error": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.2.tgz", - "integrity": "sha1-U659nSm7A89WRJOgJhCfVMR/XyY=" - }, - "pug-filters": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.0.tgz", - "integrity": "sha1-JxZVVbwEwjbkqisDZiRt+gIbYm4=", - "requires": { - "clean-css": "^4.1.11", - "constantinople": "^3.0.1", - "jstransformer": "1.0.0", - "pug-error": "^1.3.2", - "pug-walk": "^1.1.7", - "resolve": "^1.1.6", - "uglify-js": "^2.6.1" - } - }, - "pug-lexer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.0.0.tgz", - "integrity": "sha1-IQwYRX7y4XYCQnQMXmR715TOwng=", - "requires": { - "character-parser": "^2.1.1", - "is-expression": "^3.0.0", - "pug-error": "^1.3.2" - } - }, - "pug-linker": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.5.tgz", - "integrity": "sha1-npp65ABWgtAn3uuWsAD4juuDoC8=", - "requires": { - "pug-error": "^1.3.2", - "pug-walk": "^1.1.7" - } - }, - "pug-load": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.11.tgz", - "integrity": "sha1-5kjlftET/iwfRdV4WOorrWvAFSc=", - "requires": { - "object-assign": "^4.1.0", - "pug-walk": "^1.1.7" - } - }, - "pug-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.0.tgz", - "integrity": "sha1-45Stmz/KkxI5QK/4hcBuRKt+aOQ=", - "requires": { - "pug-error": "^1.3.2", - "token-stream": "0.0.1" - } - }, - "pug-runtime": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.4.tgz", - "integrity": "sha1-4XjhvaaKsujArPybztLFT9iM61g=" - }, - "pug-strip-comments": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.3.tgz", - "integrity": "sha1-8VWVkiBu3G+FMQ2s9K+0igJa9Z8=", - "requires": { - "pug-error": "^1.3.2" - } - }, - "pug-walk": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.7.tgz", - "integrity": "sha1-wA1cUSi6xYBr7BXSt+fNq+QlMfM=" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "randexp": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.9.tgz", - "integrity": "sha512-maAX1cnBkzIZ89O4tSQUOF098xjGMC8N+9vuY/WfHwg87THw6odD2Br35donlj5e6KnB1SB0QBHhTQhhDHuTPQ==", - "requires": { - "drange": "^1.0.0", - "ret": "^0.2.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "requires": { - "resolve": "^1.1.6" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "require-dir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/require-dir/-/require-dir-1.2.0.tgz", - "integrity": "sha512-LY85DTSu+heYgDqq/mK+7zFHWkttVNRXC9NKcKGyuGLdlsfbjEPrIEYdCVrx6hqnJb+xSu3Lzaoo8VnmOhhjNA==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "resolve": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz", - "integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "ret": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", - "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==" - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "requires": { - "align-text": "^0.1.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "showdown": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-1.9.0.tgz", - "integrity": "sha512-x7xDCRIaOlicbC57nMhGfKamu+ghwsdVkHMttyn+DelwzuHOx4OHCVL/UW/2QOLH7BxfCcCCVVUix3boKXJKXQ==", - "requires": { - "yargs": "^10.0.3" - }, - "dependencies": { - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "yargs": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", - "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.1.1", - "find-up": "^2.1.0", - "get-caller-file": "^1.0.1", - "os-locale": "^2.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", - "yargs-parser": "^8.1.0" - } - } - } - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "static-eval": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", - "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", - "requires": { - "escodegen": "^1.8.1" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "superagent": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", - "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", - "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.2.0", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.3.5" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "swagger-editor": { - "version": "2.10.5", - "resolved": "https://registry.npmjs.org/swagger-editor/-/swagger-editor-2.10.5.tgz", - "integrity": "sha1-pDFsyw1Ap30w2t+R8PTbfkdflIo=" - }, - "swagger-methods": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/swagger-methods/-/swagger-methods-1.0.8.tgz", - "integrity": "sha512-G6baCwuHA+C5jf4FNOrosE4XlmGsdjbOjdBK4yuiDDj/ro9uR4Srj3OR84oQMT8F3qKp00tYNv0YN730oTHPZA==" - }, - "swagger-repo": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/swagger-repo/-/swagger-repo-1.5.1.tgz", - "integrity": "sha512-ZZD0clWcQNfbomM3DKHuFMLLePxSMDBumgGnrY1iGvSfkTRFX7lIU4H8H1cQsZtY9oJpJdhuzv35xpiGRvAULw==", - "requires": { - "body-parser": "^1.15.2", - "commander": "^2.9.0", - "cors": "^2.7.1", - "express": "^4.13.4", - "glob": "^7.0.0", - "js-yaml": "^3.5.3", - "json-pointer": "^0.6.0", - "jsonpath": "^1.0.0", - "lodash": "^4.5.0", - "mkdirp": "^0.5.1", - "require-dir": "^1.0.0", - "swagger-editor": "^2.10.3", - "swagger-ui": "^2.2.0", - "sway": "^1.0.0" - } - }, - "swagger-schema-official": { - "version": "2.0.0-bab6bed", - "resolved": "https://registry.npmjs.org/swagger-schema-official/-/swagger-schema-official-2.0.0-bab6bed.tgz", - "integrity": "sha1-cAcEaNbSl3ylI3suUZyn0Gouo/0=" - }, - "swagger-ui": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/swagger-ui/-/swagger-ui-2.2.10.tgz", - "integrity": "sha1-sl56IWZOXZC/OR2zDbCN5B6FLXs=" - }, - "swagger-ui-dist": { - "version": "3.22.3", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.22.3.tgz", - "integrity": "sha512-tmjAsqT43pqg5UoiQ2805c+juX0ASSoI/Ash/0c19jjAOFtTfE93ZrzmFd9hjqVgre935CYeXT0uaku42Lu8xg==" - }, - "sway": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sway/-/sway-1.0.0.tgz", - "integrity": "sha1-No/8Dpa9hCJu0bmzPWa+V9oE8Jo=", - "requires": { - "debug": "^2.2.0", - "js-base64": "^2.1.9", - "js-yaml": "^3.5.2", - "json-refs": "^2.1.5", - "json-schema-faker": "^0.2.8", - "lodash": "^4.2.0", - "native-promise-only": "^0.8.1", - "path-to-regexp": "^1.2.1", - "swagger-methods": "^1.0.0", - "swagger-schema-official": "2.0.0-bab6bed", - "z-schema": "^3.16.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "requires": { - "isarray": "0.0.1" - } - } - } - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "token-stream": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", - "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true - }, - "underscore": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "uri-js": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz", - "integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=", - "requires": { - "punycode": "^2.1.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "validator": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz", - "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" - }, - "with": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", - "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", - "requires": { - "acorn": "^3.1.0", - "acorn-globals": "^3.0.0" - } - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - }, - "yargs-parser": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", - "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", - "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - } - } - }, - "z-schema": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-3.25.1.tgz", - "integrity": "sha512-7tDlwhrBG+oYFdXNOjILSurpfQyuVgkRe3hB2q8TEssamDHB7BbLWYkYO98nTn0FibfdFroFKDjndbgufAgS/Q==", - "requires": { - "commander": "^2.7.1", - "core-js": "^2.5.7", - "lodash.get": "^4.0.0", - "lodash.isequal": "^4.0.0", - "validator": "^10.0.0" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 564fe3bb..00000000 --- a/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Workflow-Execution-Service-openapi-spec", - "version": "1.0.0", - "dependencies": { - "bower": "^1.7.7", - "connect": "^3.4.1", - "cors": "^2.7.1", - "github-markdown": "^3.2.0", - "github-markdown-css": "^2.10.0", - "help": "^3.0.2", - "portfinder": "^1.0.3", - "shelljs": "^0.7.0", - "showdown": "^1.8.6", - "swagger-repo": "^1.5.1", - "swagger-ui-dist": "^3.20.8" - }, - "private": true, - "scripts": { - "build": "node ./scripts/buildui.js", - "swagger": "swagger-repo" - } -} diff --git a/scripts/buildui.js b/scripts/buildui.js deleted file mode 100755 index e93c94cc..00000000 --- a/scripts/buildui.js +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node -'use strict'; -var path = require('path'); - -require('shelljs/global'); -set('-e'); -set('-v'); - -mkdir('-p', 'spec') -mkdir('-p', 'docs/web_deploy') - -cp('openapi/openapi.yaml', 'spec/swagger.yaml'); - -exec('npm run swagger bundle -- -o docs/web_deploy/swagger.json'); -exec('npm run swagger bundle -- --yaml -o docs/web_deploy/swagger.yaml'); - -var SWAGGER_UI_DIST = path.dirname(require.resolve('swagger-ui-dist')); -rm('-rf', 'docs/web_deploy/swagger-ui/') -cp('-R', SWAGGER_UI_DIST, 'docs/web_deploy/swagger-ui/') -ls('docs/web_deploy/swagger-ui') -sed('-i', 'https://petstore.swagger.io/v2/swagger.json', './../swagger.json', 'docs/web_deploy/swagger-ui/index.html') diff --git a/scripts/update-ghpages.sh b/scripts/update-ghpages.sh index c86fb4cf..792a22ab 100644 --- a/scripts/update-ghpages.sh +++ b/scripts/update-ghpages.sh @@ -8,8 +8,7 @@ BRANCH=$(echo "$TRAVIS_BRANCH") BRANCH_PATH="preview/$BRANCH" git config --replace-all remote.origin.fetch +refs/heads/*:refs/remotes/origin/* git fetch --deepen=50000 -#TODO: changes in the package-lock.json are breaking the build, see https://api.travis-ci.org/v3/job/544918298/log.txt -git checkout package-lock.json +mkdir -p docs/web_deploy && cp openapi/openapi.yaml docs/web_deploy/swagger.json git checkout gh-pages rm -rf "${BRANCH_PATH}" mkdir -p "${BRANCH_PATH}" From 9c42a9de0761bdc35820a4ae5fa5966bc0d2e900 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 10 Feb 2020 13:12:40 -0500 Subject: [PATCH 072/102] Bump swagger2markup from 1.3.1 to 1.3.3 (#128) Bumps [swagger2markup](https://github.com/Swagger2Markup/swagger2markup) from 1.3.1 to 1.3.3. - [Release notes](https://github.com/Swagger2Markup/swagger2markup/releases) - [Changelog](https://github.com/Swagger2Markup/swagger2markup/blob/master/RELEASENOTES.adoc) - [Commits](https://github.com/Swagger2Markup/swagger2markup/compare/v1.3.1...v1.3.3) Signed-off-by: dependabot-preview[bot] --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b055a786..5d2dbf56 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { } dependencies { classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3' - classpath 'io.github.swagger2markup:swagger2markup-gradle-plugin:1.3.1' + classpath 'io.github.swagger2markup:swagger2markup-gradle-plugin:1.3.3' classpath "io.github.swagger2markup:swagger2markup:1.3.1" classpath "io.github.swagger2markup:swagger2markup-import-files-ext:1.3.1" classpath "com.bluepapa32:gradle-watch-plugin:0.1.5" From 111cac21630ca517e91b9b04ef72a140e467209c Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Fri, 13 Mar 2020 11:32:33 -0400 Subject: [PATCH 073/102] download all files as zip (#120) Add download all files as zip to the /files endpoint using a query parameter. The endpoint returns 2 different types which swagger can't really represent well. This issue cascades down to openapi 3.0 also. --- openapi/ga4gh-tool-discovery.yaml | 12 +++++++++++- openapi/openapi.yaml | 14 +++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/openapi/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml index d67c371a..6b231e1f 100644 --- a/openapi/ga4gh-tool-discovery.yaml +++ b/openapi/ga4gh-tool-discovery.yaml @@ -365,8 +365,11 @@ paths: Get a list of objects that contain the relative path and file type. The descriptors are intended for use with the /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} - endpoint. + endpoint. Returns a zip file of all files when format=zip is specified. operationId: toolsIdVersionsVersionIdTypeFilesGet + produces: + - application/json + - application/zip tags: - GA4GH parameters: @@ -391,6 +394,13 @@ paths: description: >- An identifier of the tool version for this particular tool registry, for example `v1`. + - name: format + in: query + required: false + type: string + description: Returns a zip file of all files when format=zip is specified. + enum: + - zip responses: '200': description: The array of File JSON responses. diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 0fb44f61..18e07158 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -428,7 +428,7 @@ paths: description: Get a list of objects that contain the relative path and file type. The descriptors are intended for use with the /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} - endpoint. + endpoint. Returns a zip file of all files when format=zip is specified. operationId: toolsIdVersionsVersionIdTypeFilesGet tags: - GA4GH @@ -454,6 +454,14 @@ paths: for example `v1`. schema: type: string + - name: format + in: query + required: false + description: Returns a zip file of all files when format=zip is specified. + schema: + type: string + enum: + - zip responses: "200": description: The array of File JSON responses. @@ -463,7 +471,7 @@ paths: type: array items: $ref: "#/components/schemas/ToolFile" - text/plain: + application/zip: schema: type: array items: @@ -474,7 +482,7 @@ paths: application/json: schema: $ref: "#/components/schemas/Error" - text/plain: + application/zip: schema: $ref: "#/components/schemas/Error" security: From 50506e39e9cbda65fc335e16fc1f7f92ab3455ae Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Thu, 2 Apr 2020 14:37:10 -0400 Subject: [PATCH 074/102] Galaxy support (#132) * Proposing new language for Galaxy-based workflows * OpenAPI changed * PR feedback Co-authored-by: Travis CI User --- README.md | 4 +- openapi/ga4gh-tool-discovery.yaml | 17 +++-- openapi/openapi.yaml | 119 +++++++++++++++--------------- 3 files changed, 72 insertions(+), 68 deletions(-) diff --git a/README.md b/README.md index 30e616d3..25ca6151 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Schemas for the GA4GH Tool Registry API ======================================= -This repository is the home for the schema for the GA4GH Tool Registry API. The goal of the API is to provide a standardized way to describe the availability of tools and workflows. In this way, we can have multiple repositories that share Docker-based tools and WDL/CWL/Nextflow-based workflows and have a consistent way to interact, search, and retrieve information from these various registries. The end goal is to make it much easier to share scientific tools and workflows, enhancing our ability to make research reproducible, sharable, and transparent. +This repository is the home for the schema for the GA4GH Tool Registry API. The goal of the API is to provide a standardized way to describe the availability of tools and workflows. In this way, we can have multiple repositories that share Docker-based tools and WDL/CWL/Nextflow/Galaxy-based workflows and have a consistent way to interact, search, and retrieve information from these various registries. The end goal is to make it much easier to share scientific tools and workflows, enhancing our ability to make research reproducible, sharable, and transparent. **See the human-readable [Reference Documentation](https://ga4gh.github.io/tool-registry-service-schemas). You can also explore the specification in the [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/openapi/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* @@ -26,7 +26,7 @@ The Containers & Workflows working group is an informal, multi-vendor working gr What is the Tool Registry API Schema? ------------------------------------- -This is the home of the schema for the GA4GH Tool Registry API. The GA4GH Tool Registry API is a standard for listing and describing available tools (both stand-alone, Docker-based tools as well as workflows in CWL, WDL or Nextflow) in a given registry. This defines a minimal, common API describing tools that we propose for support by multiple tool/workflow registries like [Dockstore](https://www.dockstore.org/), [BioContainers](https://biocontainers.pro), and [Agora](https://github.com/broadinstitute/agora) for the purposes of exchange, indexing, and searching. +This is the home of the schema for the GA4GH Tool Registry API. The GA4GH Tool Registry API is a standard for listing and describing available tools (both stand-alone, Docker-based tools as well as workflows in CWL, WDL, Nextflow, or Galaxy) in a given registry. This defines a minimal, common API describing tools that we propose for support by multiple tool/workflow registries like [Dockstore](https://www.dockstore.org/), [BioContainers](https://biocontainers.pro), and [Agora](https://github.com/broadinstitute/agora) for the purposes of exchange, indexing, and searching. This repo uses the [HubFlow](https://datasift.github.io/gitflow/) scheme which is closely based on [GitFlow](https://nvie.com/posts/a-successful-git-branching-model/). In practice, this means that the master branch contains the last production release of the schema whereas the develop branch contains the latest development changes which will end up in the next production release. As of July 2019, this means that the 1.0.0 version is described on master whereas the develop branch contains the 2.0.0-beta.3 version which will evolve into the 2.0.0 production release. diff --git a/openapi/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml index 6b231e1f..b860325c 100644 --- a/openapi/ga4gh-tool-discovery.yaml +++ b/openapi/ga4gh-tool-discovery.yaml @@ -5,7 +5,7 @@ info: Proposed API for GA4GH (Global Alliance for Genomics & Health) tool repositories. A tool consists of a set of container images that are paired with a set of documents. Examples of documents include CWL (Common Workflow - Language) or WDL (Workflow Description Language) or NFL (Nextflow) that + Language), WDL (Workflow Description Language), NFL (Nextflow), or GXFORMAT2 (Galaxy) that describe how to use those images and a set of specifications for those images (examples are Dockerfiles or Singularity recipes) that describe how to reproduce those images in the future. We use the following terminology, a @@ -212,7 +212,7 @@ paths: operationId: toolsIdVersionsVersionIdTypeDescriptorGet description: >- Returns the descriptor for the specified tool (examples include CWL, - WDL, or Nextflow documents). + WDL, Nextflow, or Galaxy documents). tags: - GA4GH parameters: @@ -222,8 +222,8 @@ paths: description: >- The output type of the descriptor. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped - with metadata. Allowable values include "CWL", "WDL", "NFL", - "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". + with metadata. Allowable values include "CWL", "WDL", "NFL", "GALAXY", + "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL", "PLAIN_GALAXY". type: string - name: id in: path @@ -273,7 +273,7 @@ paths: underlying implementation to determine which output type to return. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values are - "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". + "CWL", "WDL", "NFL", "GALAXY", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL", "PLAIN_GALAXY". type: string - name: id in: path @@ -326,7 +326,7 @@ paths: in: path description: >- The type of the underlying descriptor. Allowable values include - "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". For + "CWL", "WDL", "NFL", "GALAXY", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL", "PLAIN_GALAXY". For example, "CWL" would return an list of ToolTests objects while "PLAIN_CWL" would return a bare JSON list with the content of the tests. @@ -378,7 +378,7 @@ paths: in: path description: >- The output type of the descriptor. Examples of allowable values are - "CWL", "WDL", and "NFL". + "CWL", "WDL", "NFL", "GALAXY". type: string - name: id in: path @@ -710,13 +710,14 @@ definitions: type: string description: >- The type of descriptor that represents this version of the tool (e.g. CWL, - WDL, or NFL). Note that these files can also include associated + WDL, NFL, or GALAXY). Note that these files can also include associated Docker/container files and test parameters that further describe a version of a tool. enum: - CWL - WDL - NFL + - GALAXY FileWrapper: type: object description: > diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 18e07158..7c063481 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -4,15 +4,15 @@ info: description: Proposed API for GA4GH (Global Alliance for Genomics & Health) tool repositories. A tool consists of a set of container images that are paired with a set of documents. Examples of documents include CWL (Common Workflow - Language) or WDL (Workflow Description Language) or NFL (Nextflow) that - describe how to use those images and a set of specifications for those - images (examples are Dockerfiles or Singularity recipes) that describe how - to reproduce those images in the future. We use the following terminology, a - "container image" describes a container as stored at rest on a filesystem, a - "tool" describes one of the triples as described above. In practice, - examples of "tools" include CWL CommandLineTools, CWL Workflows, WDL - workflows, and Nextflow workflows that reference containers in formats such - as Docker or Singularity. + Language), WDL (Workflow Description Language), NFL (Nextflow), or GXFORMAT2 + (Galaxy) that describe how to use those images and a set of specifications + for those images (examples are Dockerfiles or Singularity recipes) that + describe how to reproduce those images in the future. We use the following + terminology, a "container image" describes a container as stored at rest on + a filesystem, a "tool" describes one of the triples as described above. In + practice, examples of "tools" include CWL CommandLineTools, CWL Workflows, + WDL workflows, and Nextflow workflows that reference containers in formats + such as Docker or Singularity. version: 2.0.0 tags: - name: GA4GH @@ -25,8 +25,8 @@ paths: get: summary: List one specific tool, acts as an anchor for self references operationId: toolsIdGet - description: This endpoint returns one specific tool (which has ToolVersions nested - inside it). + description: This endpoint returns one specific tool (which has ToolVersions + nested inside it). tags: - GA4GH parameters: @@ -207,13 +207,13 @@ paths: description: An array of Tools that match the filter. headers: next_page: - description: A URL that can be used to reach the next page based on the - current offset and page record limit. + description: A URL that can be used to reach the next page based on the current + offset and page record limit. schema: type: string last_page: - description: A URL that can be used to reach the last page based on the - current page record limit. + description: A URL that can be used to reach the last page based on the current + page record limit. schema: type: string self_link: @@ -245,8 +245,8 @@ paths: get: summary: Get the tool descriptor for the specified tool operationId: toolsIdVersionsVersionIdTypeDescriptorGet - description: Returns the descriptor for the specified tool (examples include CWL, - WDL, or Nextflow documents). + description: Returns the descriptor for the specified tool (examples include + CWL, WDL, Nextflow, or Galaxy documents). tags: - GA4GH parameters: @@ -256,7 +256,7 @@ paths: description: The output type of the descriptor. Plain types return the bare descriptor while the "non-plain" types return a descriptor wrapped with metadata. Allowable values include "CWL", "WDL", "NFL", - "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". + "GALAXY", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL", "PLAIN_GALAXY". schema: type: string - name: id @@ -311,11 +311,12 @@ paths: - name: type in: path required: true - description: The output type of the descriptor. If not specified, it is up to the - underlying implementation to determine which output type to return. - Plain types return the bare descriptor while the "non-plain" types - return a descriptor wrapped with metadata. Allowable values are - "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". + description: The output type of the descriptor. If not specified, it is up to + the underlying implementation to determine which output type to + return. Plain types return the bare descriptor while the "non-plain" + types return a descriptor wrapped with metadata. Allowable values + are "CWL", "WDL", "NFL", "GALAXY", "PLAIN_CWL", "PLAIN_WDL", + "PLAIN_NFL", "PLAIN_GALAXY". schema: type: string - name: id @@ -328,8 +329,8 @@ paths: - name: version_id in: path required: true - description: An identifier of the tool version for this particular tool registry, - for example `v1`. + description: An identifier of the tool version for this particular tool + registry, for example `v1`. schema: type: string - name: relative_path @@ -377,10 +378,10 @@ paths: required: true in: path description: The type of the underlying descriptor. Allowable values include - "CWL", "WDL", "NFL", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL". For - example, "CWL" would return an list of ToolTests objects while - "PLAIN_CWL" would return a bare JSON list with the content of the - tests. + "CWL", "WDL", "NFL", "GALAXY", "PLAIN_CWL", "PLAIN_WDL", + "PLAIN_NFL", "PLAIN_GALAXY". For example, "CWL" would return an list + of ToolTests objects while "PLAIN_CWL" would return a bare JSON list + with the content of the tests. schema: type: string - name: id @@ -393,8 +394,8 @@ paths: - name: version_id in: path required: true - description: An identifier of the tool version for this particular tool registry, - for example `v1`. + description: An identifier of the tool version for this particular tool + registry, for example `v1`. schema: type: string responses: @@ -425,8 +426,8 @@ paths: "/tools/{id}/versions/{version_id}/{type}/files": get: summary: Get a list of objects that contain the relative path and file type - description: Get a list of objects that contain the relative path and file type. The - descriptors are intended for use with the + description: Get a list of objects that contain the relative path and file type. + The descriptors are intended for use with the /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} endpoint. Returns a zip file of all files when format=zip is specified. operationId: toolsIdVersionsVersionIdTypeFilesGet @@ -437,7 +438,7 @@ paths: required: true in: path description: The output type of the descriptor. Examples of allowable values are - "CWL", "WDL", and "NFL". + "CWL", "WDL", "NFL", "GALAXY". schema: type: string - name: id @@ -450,8 +451,8 @@ paths: - name: version_id in: path required: true - description: An identifier of the tool version for this particular tool registry, - for example `v1`. + description: An identifier of the tool version for this particular tool + registry, for example `v1`. schema: type: string - name: format @@ -491,10 +492,10 @@ paths: get: summary: Get the container specification(s) for the specified image. operationId: toolsIdVersionsVersionIdContainerfileGet - description: Returns the container specifications(s) for the specified image. For - example, a CWL CommandlineTool can be associated with one specification - for a container, a CWL Workflow can be associated with multiple - specifications for containers. + description: Returns the container specifications(s) for the specified image. + For example, a CWL CommandlineTool can be associated with one + specification for a container, a CWL Workflow can be associated with + multiple specifications for containers. tags: - GA4GH parameters: @@ -508,8 +509,8 @@ paths: - name: version_id in: path required: true - description: An identifier of the tool version for this particular tool registry, - for example `v1`. + description: An identifier of the tool version for this particular tool + registry, for example `v1`. schema: type: string responses: @@ -579,8 +580,8 @@ components: offset: name: offset in: query - description: Start index of paging. Pagination results can be based on numbers or - other values chosen by the registry implementor (for example, SHA + description: Start index of paging. Pagination results can be based on numbers + or other values chosen by the registry implementor (for example, SHA values). If this exceeds the current result set return an empty set. If not specified in the request, this will start at the beginning of the results. @@ -616,8 +617,8 @@ components: properties: path: type: string - description: Relative path of the file. A descriptor's path can be used with the - GA4GH .../{type}/descriptor/{relative_path} endpoint. + description: Relative path of the file. A descriptor's path can be used with + the GA4GH .../{type}/descriptor/{relative_path} endpoint. file_type: type: string enum: @@ -628,8 +629,9 @@ components: - OTHER ToolClass: type: object - description: Describes a class (type) of tool allowing us to categorize workflows, - tasks, and maybe even other entities (such as services) separately. + description: Describes a class (type) of tool allowing us to categorize + workflows, tasks, and maybe even other entities (such as services) + separately. properties: id: type: string @@ -643,8 +645,8 @@ components: accomplish. Tool: type: object - description: A tool (or described tool) is defined as a tuple of a descriptor file - (which potentially consists of multiple files), a set of container + description: A tool (or described tool) is defined as a tuple of a descriptor + file (which potentially consists of multiple files), a set of container images, and a set of instructions for creating those images. required: - url @@ -698,8 +700,8 @@ components: description: Whether this tool has a checker tool associated with it. checker_url: type: string - description: Optional url to the checker tool that will exit successfully if this - tool produced the expected result given test data. + description: Optional url to the checker tool that will exit successfully if + this tool produced the expected result given test data. versions: description: A list of versions for this tool. type: array @@ -707,8 +709,8 @@ components: $ref: "#/components/schemas/ToolVersion" ToolVersion: type: object - description: A tool version describes a particular iteration of a tool as described - by a reference to a specific image and/or documents. + description: A tool version describes a particular iteration of a tool as + described by a reference to a specific image and/or documents. required: - url - id @@ -825,14 +827,15 @@ components: - Conda DescriptorType: type: string - description: The type of descriptor that represents this version of the tool (e.g. - CWL, WDL, or NFL). Note that these files can also include associated - Docker/container files and test parameters that further describe a - version of a tool. + description: The type of descriptor that represents this version of the tool + (e.g. CWL, WDL, NFL, or GALAXY). Note that these files can also include + associated Docker/container files and test parameters that further + describe a version of a tool. enum: - CWL - WDL - NFL + - GALAXY FileWrapper: type: object description: > From 0aa5443e14c007e991709674625da9db437a5141 Mon Sep 17 00:00:00 2001 From: Susheel Varma Date: Fri, 3 Apr 2020 20:51:27 +0100 Subject: [PATCH 075/102] Implementing GA4GH service-info in TRS (#119) * Adding GA4GH service-info into TRS * Version bump to 2.0.1 Co-authored-by: Denis Yuen Co-authored-by: Travis CI User --- openapi/ga4gh-tool-discovery.yaml | 5 ++++- openapi/openapi.yaml | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/openapi/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml index b860325c..033d6bae 100644 --- a/openapi/ga4gh-tool-discovery.yaml +++ b/openapi/ga4gh-tool-discovery.yaml @@ -14,7 +14,7 @@ info: examples of "tools" include CWL CommandLineTools, CWL Workflows, WDL workflows, and Nextflow workflows that reference containers in formats such as Docker or Singularity. - version: 2.0.0 + version: 2.0.1 produces: - application/json - text/plain @@ -30,6 +30,9 @@ tags: externalDocs: url: https://ga4gh.github.io/tool-registry-service-schemas/Introduction/ paths: + '/service-info': + # Links to the latest version of service-info. + $ref: 'https://raw.githubusercontent.com/ga4gh-discovery/ga4gh-service-info/v1.0.0/service-info.yaml#/paths/~1service-info' '/tools/{id}': get: summary: 'List one specific tool, acts as an anchor for self references' diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 7c063481..d58130b1 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -13,7 +13,7 @@ info: practice, examples of "tools" include CWL CommandLineTools, CWL Workflows, WDL workflows, and Nextflow workflows that reference containers in formats such as Docker or Singularity. - version: 2.0.0 + version: 2.0.1 tags: - name: GA4GH description: A group of web resources proposed as a common standard for tool @@ -21,6 +21,8 @@ tags: externalDocs: url: https://ga4gh.github.io/tool-registry-service-schemas/Introduction/ paths: + /service-info: + $ref: https://raw.githubusercontent.com/ga4gh-discovery/ga4gh-service-info/v1.0.0/service-info.yaml#/paths/~1service-info "/tools/{id}": get: summary: List one specific tool, acts as an anchor for self references From f6f6f30e94cb59b9a5033d2d55a74031452889fa Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 3 Apr 2020 16:34:32 -0400 Subject: [PATCH 076/102] Bump swagger2markup-import-files-ext from 1.3.1 to 1.3.3 (#136) Bumps [swagger2markup-import-files-ext](https://github.com/Swagger2Markup/swagger2markup) from 1.3.1 to 1.3.3. - [Release notes](https://github.com/Swagger2Markup/swagger2markup/releases) - [Changelog](https://github.com/Swagger2Markup/swagger2markup/blob/master/RELEASENOTES.adoc) - [Commits](https://github.com/Swagger2Markup/swagger2markup/compare/v1.3.1...v1.3.3) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 5d2dbf56..34897246 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,7 @@ buildscript { classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3' classpath 'io.github.swagger2markup:swagger2markup-gradle-plugin:1.3.3' classpath "io.github.swagger2markup:swagger2markup:1.3.1" - classpath "io.github.swagger2markup:swagger2markup-import-files-ext:1.3.1" + classpath "io.github.swagger2markup:swagger2markup-import-files-ext:1.3.3" classpath "com.bluepapa32:gradle-watch-plugin:0.1.5" classpath "org.kordamp.gradle:livereload-gradle-plugin:0.2.1" classpath "com.moowork.gradle:gradle-node-plugin:1.2.0" From 82cf6076a956ea4914dceb48849dac0e25e09bd5 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 3 Apr 2020 16:34:44 -0400 Subject: [PATCH 077/102] Bump gradle-node-plugin from 1.2.0 to 1.3.1 (#137) Bumps gradle-node-plugin from 1.2.0 to 1.3.1. Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 34897246..50153216 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ buildscript { classpath "io.github.swagger2markup:swagger2markup-import-files-ext:1.3.3" classpath "com.bluepapa32:gradle-watch-plugin:0.1.5" classpath "org.kordamp.gradle:livereload-gradle-plugin:0.2.1" - classpath "com.moowork.gradle:gradle-node-plugin:1.2.0" + classpath "com.moowork.gradle:gradle-node-plugin:1.3.1" } } From a454721f9e6392883768c58af32e22d6bb5863f7 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Apr 2020 11:26:06 -0400 Subject: [PATCH 078/102] Bump swagger2markup from 1.3.1 to 1.3.3 (#138) Bumps [swagger2markup](https://github.com/Swagger2Markup/swagger2markup) from 1.3.1 to 1.3.3. - [Release notes](https://github.com/Swagger2Markup/swagger2markup/releases) - [Changelog](https://github.com/Swagger2Markup/swagger2markup/blob/master/RELEASENOTES.adoc) - [Commits](https://github.com/Swagger2Markup/swagger2markup/compare/v1.3.1...v1.3.3) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 50153216..8203a243 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ buildscript { dependencies { classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3' classpath 'io.github.swagger2markup:swagger2markup-gradle-plugin:1.3.3' - classpath "io.github.swagger2markup:swagger2markup:1.3.1" + classpath "io.github.swagger2markup:swagger2markup:1.3.3" classpath "io.github.swagger2markup:swagger2markup-import-files-ext:1.3.3" classpath "com.bluepapa32:gradle-watch-plugin:0.1.5" classpath "org.kordamp.gradle:livereload-gradle-plugin:0.2.1" From 049c586a63945cf1cc2c368dcf25791dab15df07 Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Fri, 24 Jul 2020 12:35:14 -0400 Subject: [PATCH 079/102] Feature/3596/new doc system (#141) * Install dependencies * Add configuration file * Hope this works * Remove build.gradle * Use nodejs vm * Fix script * Organize Travis job --- .spec-docs.json | 4 + .travis.yml | 19 +- build.gradle | 98 - package-lock.json | 3734 +++++++++++++++++++++++++++++++++++++ package.json | 25 + scripts/update-ghpages.sh | 9 +- 6 files changed, 3772 insertions(+), 117 deletions(-) create mode 100644 .spec-docs.json delete mode 100644 build.gradle create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.spec-docs.json b/.spec-docs.json new file mode 100644 index 00000000..e26fb8bc --- /dev/null +++ b/.spec-docs.json @@ -0,0 +1,4 @@ +{ + "apiSpecPath": "openapi/openapi.yaml" +} + diff --git a/.travis.yml b/.travis.yml index 145cb8a8..b566bf35 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,14 +1,7 @@ dist: xenial -language: java -jdk: openjdk8 - -# looks like papa32 plugin 1.5.0 is no longer compatible with gradle 5, the other option is to try running without it -before_install: - - wget https://services.gradle.org/distributions/gradle-4.10.2-bin.zip - - unzip -qq gradle-4.10.2-bin.zip - - export GRADLE_HOME=$PWD/gradle-4.10.2 - - export PATH=$GRADLE_HOME/bin:$PATH - - gradle -v +language: node_js +node_js: + - "12" jobs: include: @@ -23,9 +16,7 @@ jobs: - git checkout -B ${TRAVIS_BRANCH} - bash scripts/openAPI3.sh - stage: build_pages - script: - - "gradle wrapper" - - "chmod +x gradlew" - - "./gradlew asciidoctor" + install: npm ci + script: npx gh-openapi-docs after_success: - bash scripts/update-ghpages.sh diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 8203a243..00000000 --- a/build.gradle +++ /dev/null @@ -1,98 +0,0 @@ -buildscript { - repositories { - jcenter() - mavenCentral() - maven { url 'http://oss.jfrog.org/artifactory/oss-snapshot-local/' } - maven { - url "https://plugins.gradle.org/m2/" - } - //mavenLocal() - } - dependencies { - classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3' - classpath 'io.github.swagger2markup:swagger2markup-gradle-plugin:1.3.3' - classpath "io.github.swagger2markup:swagger2markup:1.3.3" - classpath "io.github.swagger2markup:swagger2markup-import-files-ext:1.3.3" - classpath "com.bluepapa32:gradle-watch-plugin:0.1.5" - classpath "org.kordamp.gradle:livereload-gradle-plugin:0.2.1" - classpath "com.moowork.gradle:gradle-node-plugin:1.3.1" - } -} - -apply plugin: 'org.asciidoctor.convert' -apply plugin: 'com.bluepapa32.watch' -apply plugin: 'org.kordamp.gradle.livereload' -apply plugin: 'io.github.swagger2markup' -apply plugin: 'com.moowork.node' -node { - version = '8.9.0' - download = true -} - -group 'io.github.swagger2markup' -version '1.3.1' - -repositories { - jcenter() - mavenCentral() -} - -ext { - asciiDocDir = file("src/asciidoc") - asciiDocOutputDir = file("docs/asciidoc/swagger2markup") -} - -convertSwagger2markup { - swaggerInput file("openapi/ga4gh-tool-discovery.yaml").getAbsolutePath() - outputDir asciiDocOutputDir - config = ['swagger2markup.markupLanguage' : 'ASCIIDOC', - 'swagger2markup.extensions.dynamicDefinitions.contentPath' : file('docs/asciidoc/swagger2markup/definitions').absolutePath, - 'swagger2markup.extensions.dynamicOverview.contentPath' : file('docs/asciidoc/swagger2markup/overview').absolutePath, - 'swagger2markup.extensions.dynamicPaths.contentPath' : file('docs/asciidoc/swagger2markup/paths').absolutePath, - 'swagger2markup.extensions.dynamicSecurity.contentPath' : file('docs/asciidoc/swagger2markup/security').absolutePath] -} - -asciidoctorj { - version = '1.5.5' -} - -asciidoctor { - dependsOn convertSwagger2markup - sourceDir asciiDocDir - outputDir file("docs") - sources { - include 'index.adoc' - } - backends = ['html5', 'pdf'] - attributes = [ - doctype: 'book', - toc: 'left', - toclevels: '3', - numbered: '', - sectlinks: '', - sectanchors: '', - hardbreaks: '', - generated: asciiDocOutputDir - ] -} - -dependencies { - // add converters and extensions using `asciidoctor` configuration - asciidoctor 'org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.15' -} - -watch { - asciidoc { - files fileTree('docs/asciidoc') - tasks 'asciidoctor' - } -} - -liveReload { - docRoot asciidoctor.outputDir.canonicalPath -} - - -task wrapper(type: Wrapper) { - gradleVersion = '4.10.2' -} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..4e1ef348 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3734 @@ +{ + "name": "tool-registry-service-schemas", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/generator": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", + "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", + "requires": { + "@babel/types": "^7.10.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", + "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", + "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==" + }, + "@babel/runtime": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", + "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", + "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@babel/types": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@ga4gh/gh-openapi-docs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@ga4gh/gh-openapi-docs/-/gh-openapi-docs-0.2.1.tgz", + "integrity": "sha512-9c1D3Wf1jA0kE5CSoVaeWceEpD//Gnr+INiCn7WVcG0tNOdTiCv8m7dFwVeG+bkXeu2FkpRD3eeFzUURbJwPBA==", + "requires": { + "@babel/runtime": "^7.6.3", + "@redocly/openapi-cli": "0.8.4", + "chalk": "2.4.2", + "git-repo-info": "^2.1.1", + "is-ci": "^2.0.0", + "json-refs": "^3.0.15", + "loader-utils": "^1.4.0", + "lodash": "^4.17.15", + "oas-linter": "^3.0.2", + "oas-resolver": "^2.2.7", + "oas-validator": "^3.3.3", + "redoc-cli": "^0.9.7", + "remote-origin-url": "^2.0.0", + "shelljs": "^0.7.0", + "swagger-ui-dist": "3.24.0", + "update-notifier": "3.0.1", + "yargs-parser": "15.0.0" + }, + "dependencies": { + "@redocly/openapi-cli": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@redocly/openapi-cli/-/openapi-cli-0.8.4.tgz", + "integrity": "sha512-Q2AumczOlEX6ccm7+t/YPbC4qfdLDLKZV6cn7lSelPp29vNgbPGEgrSaz5ISr0rEd8QodgA0HMgyQNgAqTo3Hw==", + "requires": { + "chalk": "^2.4.2", + "chokidar": "^3.3.1", + "commander": "^3.0.1", + "handlebars": "^4.7.2", + "js-yaml": "^3.13.1", + "lodash.isequal": "^4.5.0", + "merge-deep": "^3.0.2", + "portfinder": "^1.0.25", + "simple-websocket": "^8.1.1", + "xmlhttprequest": "^1.8.0", + "yaml-ast-parser": "0.0.43" + } + } + } + }, + "@redocly/ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-iFQquIW93af7TP8GfwggPP7/yvnBjFGqTWcxYprS9Vpo3WPW/jwKizabnDcNu8aQ48C76G+6h+ZkZojBSaBhgA==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "dependencies": { + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + } + } + }, + "@redocly/openapi-cli": { + "version": "1.0.0-beta.4", + "resolved": "https://registry.npmjs.org/@redocly/openapi-cli/-/openapi-cli-1.0.0-beta.4.tgz", + "integrity": "sha512-Z1xlc+j0FKSZm2NW16NZHjQDPd6NWSQuPJY1+zP2kNYBCbTOLXS/9GK75SzI7zTLAlGFF0CDwsXkVRVjaEeWlA==", + "requires": { + "@redocly/ajv": "^6.12.3", + "@types/node": "^14.0.13", + "chokidar": "^3.4.0", + "colorette": "^1.2.0", + "handlebars": "^4.7.6", + "js-levenshtein": "^1.1.6", + "js-yaml": "^3.14.0", + "lodash.isequal": "^4.5.0", + "minimatch": "^3.0.4", + "node-fetch": "^2.6.0", + "portfinder": "^1.0.26", + "simple-websocket": "^9.0.0", + "typescript": "^3.9.5", + "yaml-ast-parser": "0.0.43", + "yargs": "^15.3.1" + }, + "dependencies": { + "@types/node": { + "version": "14.0.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.24.tgz", + "integrity": "sha512-btt/oNOiDWcSuI721MdL8VQGnjsKjlTMdrKyTcLCKeQp/n4AAMFJ961wMbp+09y8WuGPClDEv07RIItdXKIXAA==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "simple-websocket": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/simple-websocket/-/simple-websocket-9.0.0.tgz", + "integrity": "sha512-Q+u1BJ06/FR30xS1Sf6zDuL+vAdAA7VFqZ0TdKpmQKB2uNTAPKWQFFhUDV4YD7TDi7gSRJXoxv21WprNPR0ykQ==", + "requires": { + "debug": "^4.1.1", + "queue-microtask": "^1.1.0", + "randombytes": "^2.0.3", + "readable-stream": "^3.1.1", + "ws": "^7.0.0" + } + } + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" + }, + "@types/node": { + "version": "13.13.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.14.tgz", + "integrity": "sha512-Az3QsOt1U/K1pbCQ0TXGELTuTkPLOiFIQf3ILzbOyo0FqgV9SxRnxbxM5QlAveERZMHpZY+7u3Jz2tKyl+yg6g==" + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "babel-plugin-styled-components": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.7.tgz", + "integrity": "sha512-MBMHGcIA22996n9hZRf/UJLVVgkEOITuR2SvjHLb5dSTUyR4ZRGn+ngITapes36FI3WLxZHfRhkA1ffHxihOrg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-module-imports": "^7.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "better-ajv-errors": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-0.6.7.tgz", + "integrity": "sha512-PYgt/sCzR4aGpyNy5+ViSQ77ognMnWq7745zM+/flYO4/Yisdtp9wDQW2IKCyVYPUxQt3E/b5GBSwfhd1LPdlg==", + "requires": { + "@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": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" + }, + "bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", + "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" + }, + "boxen": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", + "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^2.4.2", + "cli-boxes": "^2.2.0", + "string-width": "^3.0.0", + "term-size": "^1.2.0", + "type-fest": "^0.3.0", + "widest-line": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "browserify-sign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", + "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz", + "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "cli-boxes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==" + }, + "clipboard": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", + "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", + "optional": true, + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", + "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", + "requires": { + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "code-error-fragment": { + "version": "0.0.230", + "resolved": "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz", + "integrity": "sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "configstore": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" + }, + "css-to-react-native": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", + "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^3.3.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decko": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decko/-/decko-1.2.0.tgz", + "integrity": "sha1-/UPHNelnuAEzBohKVvvmZZlraBc=" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "optional": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "dompurify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.0.12.tgz", + "integrity": "sha512-Fl8KseK1imyhErHypFPA8qpq9gPzlsJ/EukA6yk9o0gX23p1TzC+rh9LqNg1qvErRTc0UNMYlKxEGSfSh43NDg==" + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + }, + "events": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "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" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "^1.0.1" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "format-util": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/format-util/-/format-util-1.0.5.tgz", + "integrity": "sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg==" + }, + "formidable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", + "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "optional": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "git-config-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-config-path/-/git-config-path-2.0.0.tgz", + "integrity": "sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==" + }, + "git-repo-info": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/git-repo-info/-/git-repo-info-2.1.1.tgz", + "integrity": "sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==" + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "^1.3.4" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "optional": true, + "requires": { + "delegate": "^3.1.2" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" + }, + "graphlib": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", + "requires": { + "lodash": "^4.17.15" + } + }, + "handlebars": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "http2-client": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.3.tgz", + "integrity": "sha512-nUxLymWQ9pzkzTmir24p2RtsgruLmhje7lH3hLX1IpwvyTg77fW+1brenPPP3USAR+rQ36p5sTA/x7sjCJVkAA==" + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", + "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-what": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.10.0.tgz", + "integrity": "sha512-U4RYCXNOmATQHlOPlOCHCfXyKEFIPqvyaKDqYRuLbD6EYKcTTfc3YXkAYjzOVxO3zt34L+Wh2feIyWrYiZ7kng==" + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "json-pointer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.0.tgz", + "integrity": "sha1-jlAFUKaqxUZKRzN32leqbMIoKNc=", + "requires": { + "foreach": "^2.0.4" + } + }, + "json-refs": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/json-refs/-/json-refs-3.0.15.tgz", + "integrity": "sha512-0vOQd9eLNBL18EGl5yYaO44GhixmImes2wiYn9Z3sag3QnehWrYWlB9AFtMxCL2Bj3fyxgDYkxGFEU/chlYssw==", + "requires": { + "commander": "~4.1.1", + "graphlib": "^2.1.8", + "js-yaml": "^3.13.1", + "lodash": "^4.17.15", + "native-promise-only": "^0.8.1", + "path-loader": "^1.0.10", + "slash": "^3.0.0", + "uri-js": "^4.2.2" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + } + } + }, + "json-schema-ref-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-6.1.0.tgz", + "integrity": "sha512-pXe9H1m6IgIpXmE5JSb8epilNTGsmTb2iPohAXpOdhqGFbQjNeHHsZxU+C8w6T81GZxSPFLeUoqDJmzxx5IGuw==", + "requires": { + "call-me-maybe": "^1.0.1", + "js-yaml": "^3.12.1", + "ono": "^4.0.11" + } + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-to-ast": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json-to-ast/-/json-to-ast-2.1.0.tgz", + "integrity": "sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==", + "requires": { + "code-error-fragment": "0.0.230", + "grapheme-splitter": "^1.0.4" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonpointer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.1.0.tgz", + "integrity": "sha512-CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==" + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "requires": { + "package-json": "^6.3.0" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "requires": { + "invert-kv": "^2.0.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "lunr": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.8.tgz", + "integrity": "sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==" + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "requires": { + "p-defer": "^1.0.0" + } + }, + "mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha1-GA8fnr74sOY45BZq1S24eb6y/8U=" + }, + "marked": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", + "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "memoize-one": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", + "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==" + }, + "merge-anything": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/merge-anything/-/merge-anything-2.4.4.tgz", + "integrity": "sha512-l5XlriUDJKQT12bH+rVhAHjwIuXWdAIecGwsYjv2LJo+dA1AeRTmeQS+3QBpO6lEthBMDi2IUMpLC1yyRvGlwQ==", + "requires": { + "is-what": "^3.3.1" + } + }, + "merge-deep": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", + "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", + "requires": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + } + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "mobx": { + "version": "4.15.4", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-4.15.4.tgz", + "integrity": "sha512-nyuHPqmKnVOnbvkjR8OrijBtovxAHYC+JU8/qBqvBw4Dez/n+zzxqNHbZNFy7/07+wwc/Qz7JS9WSfy1LcYISA==" + }, + "mobx-react": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-6.1.5.tgz", + "integrity": "sha512-EfWoXmGE2CfozH4Xirb65+il1ynHFCmxBSUabMSf+511YfjVs6QRcCrHkiVw+Il8iWp1gIyfa9qKkUgbDA9/2w==", + "requires": { + "mobx-react-lite": "^1.4.2" + } + }, + "mobx-react-lite": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-1.5.2.tgz", + "integrity": "sha512-PyZmARqqWtpuQaAoHF5pKX7h6TKNLwq6vtovm4zZvG6sEbMRHHSqioGXSeQbpRmG8Kw8uln3q/W1yMO5IfL5Sg==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "native-promise-only": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", + "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + }, + "node-fetch-h2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", + "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", + "requires": { + "http2-client": "^1.2.5" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "node-readfiles": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", + "integrity": "sha1-271K8SE04uY1wkXvk//Pb2BnOl0=", + "requires": { + "es6-promise": "^3.2.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oas-kit-common": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", + "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", + "requires": { + "fast-safe-stringify": "^2.0.7" + } + }, + "oas-linter": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.1.3.tgz", + "integrity": "sha512-jFWBHjSoqODGo7cKA/VWqqWSLbHNtnyCEpa2nMMS64SzCUbZDk63Oe7LqQZ2qJA0K2VRreYLt6cVkYy6MqNRDg==", + "requires": { + "should": "^13.2.1", + "yaml": "^1.8.3" + } + }, + "oas-resolver": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.4.1.tgz", + "integrity": "sha512-rRmUv9mDTKPtsB2OGaoNMK4BC1Q/pL+tWRPKRjXJEBoLmfegJhecOZPBtIR0gKEVQb9iAA0MqulkgY43EiCFDg==", + "requires": { + "node-fetch-h2": "^2.3.0", + "oas-kit-common": "^1.0.8", + "reftools": "^1.1.3", + "yaml": "^1.8.3", + "yargs": "^15.3.1" + } + }, + "oas-schema-walker": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.4.tgz", + "integrity": "sha512-foVDDS0RJYMfhQEDh/WdBuCzydTcsCnGo9EeD8SpWq1uW10JXiz+8SfYVDA7LO87kjmlnTRZle/2gr5qxabaEA==" + }, + "oas-validator": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-3.4.0.tgz", + "integrity": "sha512-l/SxykuACi2U51osSsBXTxdsFc8Fw41xI7AsZkzgVgWJAzoEFaaNptt35WgY9C3757RUclsm6ye5GvSyYoozLQ==", + "requires": { + "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": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "ono": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/ono/-/ono-4.0.11.tgz", + "integrity": "sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==", + "requires": { + "format-util": "^1.0.3" + } + }, + "openapi-sampler": { + "version": "1.0.0-beta.15", + "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.0.0-beta.15.tgz", + "integrity": "sha512-wUD/vD3iBHKik/sME3uwUu4X3HFA53rDrPcVvLzgEELjHLbnTpSYfm4Jo9qZT1dPfBRowAnrF/VRQfOjL5QRAw==", + "requires": { + "json-pointer": "^0.6.0" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-git-config": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/parse-git-config/-/parse-git-config-3.0.0.tgz", + "integrity": "sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA==", + "requires": { + "git-config-path": "^2.0.0", + "ini": "^1.3.5" + } + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-loader": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/path-loader/-/path-loader-1.0.10.tgz", + "integrity": "sha512-CMP0v6S6z8PHeJ6NFVyVJm6WyJjIwFvyz2b0n2/4bKdS/0uZa/9sKUlYZzubrn3zuDRU0zIuEDX9DZYQ2ZI8TA==", + "requires": { + "native-promise-only": "^0.8.1", + "superagent": "^3.8.3" + } + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "perfect-scrollbar": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz", + "integrity": "sha512-NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA==" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "polished": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/polished/-/polished-3.6.5.tgz", + "integrity": "sha512-VwhC9MlhW7O5dg/z7k32dabcAFW1VI2+7fSe8cE/kXcfL7mVdoa5UxciYGW2sJU78ldDLT6+ROEKIZKFNTnUXQ==", + "requires": { + "@babel/runtime": "^7.9.2" + } + }, + "portfinder": { + "version": "1.0.27", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.27.tgz", + "integrity": "sha512-bJ3U3MThKnyJ9Dx1Idtm5pQmxXqw08+XOHhi/Lie8OF1OlhVaBFhsntAIhkZYjfDcCzszSr0w1yCbccThhzgxQ==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, + "prismjs": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.20.0.tgz", + "integrity": "sha512-AEDjSrVNkynnw6A+B1DsFkd6AVdTnp+/WoUixFRULlCLZVRZlVQMVWio/16jv7G1FscUxQxOQhWwApgbnxr6kQ==", + "requires": { + "clipboard": "^2.0.0" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", + "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "queue-microtask": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.1.3.tgz", + "integrity": "sha512-zC1ZDLKFhZSa8vAdFbkOGouHcOUMgUAI/2/3on/KktpY+BaVqABkzDSsCSvJfmLbICOnrEuF9VIMezZf+T0mBA==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "react": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", + "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dom": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", + "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "react-dropdown": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/react-dropdown/-/react-dropdown-1.7.0.tgz", + "integrity": "sha512-zFZ73pgLA32hArpE4j/7DtOEhOMg240XG5QvbAb0/VinGekkHDVIakMyAFUKC5jDz8jqXEltgriqFW9R5iCtPQ==", + "requires": { + "classnames": "^2.2.3" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-tabs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-3.1.1.tgz", + "integrity": "sha512-HpySC29NN1BkzBAnOC+ajfzPbTaVZcSWzMSjk56uAhPC/rBGtli8lTysR4CfPAyEE/hfweIzagOIoJ7nu80yng==", + "requires": { + "clsx": "^1.1.0", + "prop-types": "^15.5.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "redoc": { + "version": "2.0.0-rc.29", + "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.29.tgz", + "integrity": "sha512-G2PX4QG/XdNKqRvxPpszJdPPRcODJjkuGidjNr4m/eP04aoNjWpytcH1XxZUC7fVW6zBUtJTaktv1HnVF+2GmA==", + "requires": { + "@types/node": "^13.11.1", + "classnames": "^2.2.6", + "decko": "^1.2.0", + "dompurify": "^2.0.8", + "eventemitter3": "^4.0.0", + "json-pointer": "^0.6.0", + "json-schema-ref-parser": "^6.1.0", + "lunr": "2.3.8", + "mark.js": "^8.11.1", + "marked": "^0.7.0", + "memoize-one": "~5.1.1", + "mobx-react": "6.1.5", + "openapi-sampler": "1.0.0-beta.15", + "perfect-scrollbar": "^1.4.0", + "polished": "^3.4.4", + "prismjs": "^1.19.0", + "prop-types": "^15.7.2", + "react-dropdown": "^1.7.0", + "react-tabs": "^3.1.0", + "slugify": "^1.4.0", + "stickyfill": "^1.1.1", + "swagger2openapi": "^5.3.4", + "tslib": "^1.11.1", + "url-template": "^2.0.8" + } + }, + "redoc-cli": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.9.8.tgz", + "integrity": "sha512-JW7krzhX+P3qSjTvBMpTRjX/JHrnvHeIWcpZB4RaaC0qTL/DwcgA+IJNpiQ0+jV+bkHaPjHcT0T4pjWh+5VTaw==", + "requires": { + "chokidar": "^3.0.2", + "handlebars": "^4.1.2", + "isarray": "^2.0.5", + "mkdirp": "^0.5.1", + "mobx": "^4.2.0", + "node-libs-browser": "^2.2.1", + "react": "^16.8.6", + "react-dom": "^16.8.6", + "redoc": "2.0.0-rc.29", + "styled-components": "^4.3.2", + "tslib": "^1.10.0", + "yargs": "^13.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.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": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "reftools": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.3.tgz", + "integrity": "sha512-JTlhKmSzqE/gt5Z5RX25yZDq67MlRRtTz1gLy/NY+wPDx1e1vEJsv1PoNrpKZBwitcEMXs2k7pzmbmraP1ZMAQ==" + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + }, + "registry-auth-token": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz", + "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==", + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "requires": { + "rc": "^1.2.8" + } + }, + "remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remote-origin-url/-/remote-origin-url-2.0.0.tgz", + "integrity": "sha512-4TKz5bTDEHFzsqgjQZY/NxNqceWhtWD69Fgwetm+172GT2NoljyQssB649ECUBHGhBINuGwKw8mfcjQFugdIlg==", + "requires": { + "parse-git-config": "^3.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", + "optional": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "requires": { + "semver": "^5.0.3" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "requires": { + "is-buffer": "^1.0.2" + } + }, + "lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "requires": { + "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" + } + }, + "should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "requires": { + "should-type": "^1.4.0" + } + }, + "should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=", + "requires": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=" + }, + "should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "requires": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==" + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "simple-websocket": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/simple-websocket/-/simple-websocket-8.1.1.tgz", + "integrity": "sha512-06I3cwOD5Q3LdVd6qfyDGp1U9eau9x9qniSL3b/aDgM5bsJX4nZfCuii2UCFcTfrDq0jCXF4NQ/38qeC8CJZTg==", + "requires": { + "debug": "^4.1.1", + "queue-microtask": "^1.1.0", + "randombytes": "^2.0.3", + "readable-stream": "^3.1.1", + "ws": "^7.0.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "slugify": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.4.tgz", + "integrity": "sha512-N2+9NJ8JzfRMh6PQLrBeDEnVDQZSytE/W4BTC4fNNPmO90Uu58uNwSlIJSs+lmPgWsaAF79WLhVPe5tuy7spjw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "stickyfill": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz", + "integrity": "sha1-OUE/7p0CXHSn5ZzuyyN4TMDxfwI=" + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "styled-components": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.4.1.tgz", + "integrity": "sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@emotion/is-prop-valid": "^0.8.1", + "@emotion/unitless": "^0.7.0", + "babel-plugin-styled-components": ">= 1", + "css-to-react-native": "^2.2.2", + "memoize-one": "^5.0.0", + "merge-anything": "^2.2.4", + "prop-types": "^15.5.4", + "react-is": "^16.6.0", + "stylis": "^3.5.0", + "stylis-rule-sheet": "^0.0.10", + "supports-color": "^5.5.0" + } + }, + "stylis": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", + "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" + }, + "stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" + }, + "superagent": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", + "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", + "requires": { + "component-emitter": "^1.2.0", + "cookiejar": "^2.1.0", + "debug": "^3.1.0", + "extend": "^3.0.0", + "form-data": "^2.3.1", + "formidable": "^1.2.0", + "methods": "^1.1.1", + "mime": "^1.4.1", + "qs": "^6.5.1", + "readable-stream": "^2.3.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "swagger-ui-dist": { + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.24.0.tgz", + "integrity": "sha512-5uAjeEqV+zbtalBDXAIrkqUZwsUHYwvBSeGYlFcLj1ERS3jfprL4OPLSSriDoeXCtNmWzpz5aooV2qJW+DqdUQ==" + }, + "swagger2openapi": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-5.4.0.tgz", + "integrity": "sha512-f5QqfXawiVijhjMtYqWZ55ESHPZFqrPC8L9idhIiuSX8O2qsa1i4MVGtCM3TQF+Smzr/6WfT/7zBuzG3aTgPAA==", + "requires": { + "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" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "requires": { + "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-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "^0.7.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.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" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + } + } + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "optional": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" + }, + "typescript": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==" + }, + "uglify-js": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.0.tgz", + "integrity": "sha512-Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA==", + "optional": true + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "update-notifier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", + "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", + "requires": { + "boxen": "^3.0.0", + "chalk": "^2.0.1", + "configstore": "^4.0.0", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.1.0", + "is-npm": "^3.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "requires": { + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", + "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==" + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==" + }, + "yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "requires": { + "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.2" + }, + "dependencies": { + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..332cd952 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "tool-registry-service-schemas", + "version": "1.0.0", + "description": "![ga4gh logo](https://github.com/dockstore/dockstore-ui2/raw/develop/src/assets/images/sponsors/coloured/ga4gh.png)", + "main": "index.js", + "dependencies": { + "@ga4gh/gh-openapi-docs": "^0.2.1", + "@redocly/openapi-cli": "^1.0.0-beta.4", + "redoc-cli": "^0.9.8" + }, + "devDependencies": {}, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ga4gh/tool-registry-service-schemas.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/ga4gh/tool-registry-service-schemas/issues" + }, + "homepage": "https://github.com/ga4gh/tool-registry-service-schemas#readme" +} diff --git a/scripts/update-ghpages.sh b/scripts/update-ghpages.sh index 792a22ab..98c6dfeb 100644 --- a/scripts/update-ghpages.sh +++ b/scripts/update-ghpages.sh @@ -4,15 +4,14 @@ set -o pipefail set -o nounset set -o xtrace set -u -BRANCH=$(echo "$TRAVIS_BRANCH") +BRANCH=$(echo "$TRAVIS_BRANCH" | awk '{print tolower($0)}') BRANCH_PATH="preview/$BRANCH" +mv preview preview2 git config --replace-all remote.origin.fetch +refs/heads/*:refs/remotes/origin/* git fetch --deepen=50000 -mkdir -p docs/web_deploy && cp openapi/openapi.yaml docs/web_deploy/swagger.json git checkout gh-pages -rm -rf "${BRANCH_PATH}" -mkdir -p "${BRANCH_PATH}" -mv docs "${BRANCH_PATH}" +rm -rf preview +mv preview2 preview git status if [[ -n "$(git status --porcelain "${BRANCH_PATH}")" && ${TRAVIS_PULL_REQUEST} == "false" ]]; then openssl aes-256-cbc -K $encrypted_f356a5c69655_key -iv $encrypted_f356a5c69655_iv -in github_deploy_key.enc -out github_deploy_key -d From 955bc9e0479a7d9ed05bd145aba4137db5a4ca6d Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Mon, 27 Jul 2020 10:20:03 -0400 Subject: [PATCH 080/102] Working on filtering by descriptor type (#143) --- openapi/ga4gh-tool-discovery.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openapi/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml index 033d6bae..7b978023 100644 --- a/openapi/ga4gh-tool-discovery.yaml +++ b/openapi/ga4gh-tool-discovery.yaml @@ -148,6 +148,10 @@ paths: type: string in: query description: 'Filter tools by the name of the subclass (#/definitions/ToolClass)' + - name: descriptorType + type: string + in: query + description: 'Filter tools by the name of the descriptor type (#/definitions/DescriptorType)' - name: registry in: query type: string From 1059c7ca1193dd2bccc8fc8be94581d16e7189bd Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Tue, 28 Jul 2020 11:15:19 -0400 Subject: [PATCH 081/102] Add temporary link (#146) * Update README.md * OpenAPI changed Co-authored-by: Travis CI User --- README.md | 2 +- openapi/openapi.yaml | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 25ca6151..4359c1e7 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Schemas for the GA4GH Tool Registry API This repository is the home for the schema for the GA4GH Tool Registry API. The goal of the API is to provide a standardized way to describe the availability of tools and workflows. In this way, we can have multiple repositories that share Docker-based tools and WDL/CWL/Nextflow/Galaxy-based workflows and have a consistent way to interact, search, and retrieve information from these various registries. The end goal is to make it much easier to share scientific tools and workflows, enhancing our ability to make research reproducible, sharable, and transparent. -**See the human-readable [Reference Documentation](https://ga4gh.github.io/tool-registry-service-schemas). You can also explore the specification in the [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/openapi/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* +**See the human-readable [Reference Documentation](https://ga4gh.github.io/tool-registry-service-schemas). You can also explore the specification in the [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/openapi/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* Preview documentation from the [gh-openapi-docs](https://github.com/ga4gh/gh-openapi-docs) for the development branch [here](https://ga4gh.github.io/tool-registry-service-schemas/preview/develop/docs/index.html) The [Global Alliance for Genomics and Health](http://genomicsandhealth.org/) (GA4GH) is an international coalition, formed to enable the sharing of genomic and clinical data. diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index d58130b1..d3c4c28e 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -166,6 +166,12 @@ paths: description: Filter tools by the name of the subclass (#/definitions/ToolClass) schema: type: string + - name: descriptorType + in: query + description: Filter tools by the name of the descriptor type + (#/definitions/DescriptorType) + schema: + type: string - name: registry in: query description: The image registry that contains the image. From 261fa8c3660662e65ce5da0de5d734fd46c61417 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 13 Oct 2020 11:39:51 -0400 Subject: [PATCH 082/102] [Security] Bump prismjs from 1.20.0 to 1.22.0 (#159) Bumps [prismjs](https://github.com/PrismJS/prism) from 1.20.0 to 1.22.0. **This update includes a security fix.** - [Release notes](https://github.com/PrismJS/prism/releases) - [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md) - [Commits](https://github.com/PrismJS/prism/compare/v1.20.0...v1.22.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4e1ef348..b981d35a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2367,9 +2367,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prismjs": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.20.0.tgz", - "integrity": "sha512-AEDjSrVNkynnw6A+B1DsFkd6AVdTnp+/WoUixFRULlCLZVRZlVQMVWio/16jv7G1FscUxQxOQhWwApgbnxr6kQ==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.22.0.tgz", + "integrity": "sha512-lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w==", "requires": { "clipboard": "^2.0.0" } From e164249991370ac3748ab8b5d8e4a872b22cd0b5 Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Wed, 23 Dec 2020 13:26:06 -0500 Subject: [PATCH 083/102] Feature/142/remove swagger use open api (#167) * Mention openapi instead of swagger * Remove openapi generation * Update/simplify openapi --- .travis.yml | 7 - README.md | 4 +- openapi/README.md | 6 +- openapi/ga4gh-tool-discovery.yaml | 803 ------------------------------ openapi/openapi.yaml | 248 +++------ scripts/openAPI3.sh | 19 - 6 files changed, 69 insertions(+), 1018 deletions(-) delete mode 100644 openapi/ga4gh-tool-discovery.yaml delete mode 100644 scripts/openAPI3.sh diff --git a/.travis.yml b/.travis.yml index b566bf35..61af9253 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,13 +8,6 @@ jobs: - stage: check-links install: npm i -g markdown-link-check script: markdown-link-check ./README.md - - stage: commit-OpenAPI - install: npm i -g swagger2openapi - script: - - swagger2openapi openapi/ga4gh-tool-discovery.yaml -o openapi/openapi.yaml - after_success: - - git checkout -B ${TRAVIS_BRANCH} - - bash scripts/openAPI3.sh - stage: build_pages install: npm ci script: npx gh-openapi-docs diff --git a/README.md b/README.md index 4359c1e7..a4723e06 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Schemas for the GA4GH Tool Registry API This repository is the home for the schema for the GA4GH Tool Registry API. The goal of the API is to provide a standardized way to describe the availability of tools and workflows. In this way, we can have multiple repositories that share Docker-based tools and WDL/CWL/Nextflow/Galaxy-based workflows and have a consistent way to interact, search, and retrieve information from these various registries. The end goal is to make it much easier to share scientific tools and workflows, enhancing our ability to make research reproducible, sharable, and transparent. -**See the human-readable [Reference Documentation](https://ga4gh.github.io/tool-registry-service-schemas). You can also explore the specification in the [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/openapi/ga4gh-tool-discovery.yaml).** *Manually load the JSON if working from a non-develop branch version.* Preview documentation from the [gh-openapi-docs](https://github.com/ga4gh/gh-openapi-docs) for the development branch [here](https://ga4gh.github.io/tool-registry-service-schemas/preview/develop/docs/index.html) +**See the human-readable [Reference Documentation](https://ga4gh.github.io/tool-registry-service-schemas). You can also explore the specification in the [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/openapi/openapi.yaml).** *Manually load the JSON if working from a non-develop branch version.* Preview documentation from the [gh-openapi-docs](https://github.com/ga4gh/gh-openapi-docs) for the development branch [here](https://ga4gh.github.io/tool-registry-service-schemas/preview/develop/docs/index.html) The [Global Alliance for Genomics and Health](http://genomicsandhealth.org/) (GA4GH) is an international coalition, formed to enable the sharing of genomic and clinical data. @@ -50,7 +50,7 @@ Outstanding questions: How to view ------------ -See the swagger editor to view our [schema in progress](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/openapi/ga4gh-tool-discovery.yaml). +See the swagger editor to view our [schema in progress](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/openapi/openapi.yaml). How to contribute changes diff --git a/openapi/README.md b/openapi/README.md index 9368c996..984b877f 100644 --- a/openapi/README.md +++ b/openapi/README.md @@ -1,7 +1,7 @@ ## Instruction for modifying the TRS To make changes to the TRS, join the GA4GH organization or ask to join this repository as a collaborator. Then in your branch, modify: - - The swagger yaml file (`ga4gh-tool-discovery.yaml`) with a Swagger 2 definition of the changes. - - This swagger yaml file will be used in the validation server. - - An OpenAPI yaml file (`openapi.yaml`) with an OpenAPI 3 definition of the changes will be auto-generated by swagger2openapi and checked in by an automated TravisCI build + - The openapi.yaml file with an OpenAPI 3 definition of the changes. + - This openapi yaml file will be used in the TRS validation server. +The v1 directory should not be modified. It provides backward compatibility support for TRS servers/clients. diff --git a/openapi/ga4gh-tool-discovery.yaml b/openapi/ga4gh-tool-discovery.yaml deleted file mode 100644 index 7b978023..00000000 --- a/openapi/ga4gh-tool-discovery.yaml +++ /dev/null @@ -1,803 +0,0 @@ -swagger: '2.0' -info: - title: GA4GH Tool Discovery API - description: >- - Proposed API for GA4GH (Global Alliance for Genomics & Health) tool - repositories. A tool consists of a set of container images that are paired - with a set of documents. Examples of documents include CWL (Common Workflow - Language), WDL (Workflow Description Language), NFL (Nextflow), or GXFORMAT2 (Galaxy) that - describe how to use those images and a set of specifications for those - images (examples are Dockerfiles or Singularity recipes) that describe how - to reproduce those images in the future. We use the following terminology, a - "container image" describes a container as stored at rest on a filesystem, a - "tool" describes one of the triples as described above. In practice, - examples of "tools" include CWL CommandLineTools, CWL Workflows, WDL - workflows, and Nextflow workflows that reference containers in formats such - as Docker or Singularity. - version: 2.0.1 -produces: - - application/json - - text/plain -basePath: /ga4gh/trs/v2 -securityDefinitions: - BEARER: - type: apiKey - name: Authorization - in: header -tags: - - name: GA4GH - description: A group of web resources proposed as a common standard for tool repositories - externalDocs: - url: https://ga4gh.github.io/tool-registry-service-schemas/Introduction/ -paths: - '/service-info': - # Links to the latest version of service-info. - $ref: 'https://raw.githubusercontent.com/ga4gh-discovery/ga4gh-service-info/v1.0.0/service-info.yaml#/paths/~1service-info' - '/tools/{id}': - get: - summary: 'List one specific tool, acts as an anchor for self references' - operationId: toolsIdGet - description: >- - This endpoint returns one specific tool (which has ToolVersions nested - inside it). - tags: - - GA4GH - parameters: - - name: id - in: path - required: true - type: string - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456`. - responses: - '200': - description: A tool. - schema: - $ref: '#/definitions/Tool' - '404': - description: The tool can not be found. - schema: - $ref: '#/definitions/Error' - security: - - BEARER: [] - '/tools/{id}/versions': - get: - summary: List versions of a tool - operationId: toolsIdVersionsGet - description: Returns all versions of the specified tool. - tags: - - GA4GH - parameters: - - name: id - in: path - required: true - type: string - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456`. - responses: - '200': - description: An array of tool versions. - schema: - type: array - items: - $ref: '#/definitions/ToolVersion' - security: - - BEARER: [] - '/tools/{id}/versions/{version_id}': - get: - summary: 'List one specific tool version, acts as an anchor for self references' - operationId: toolsIdVersionsVersionIdGet - description: This endpoint returns one specific tool version. - tags: - - GA4GH - parameters: - - name: id - in: path - required: true - type: string - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456`. - - name: version_id - in: path - required: true - type: string - description: >- - An identifier of the tool version, scoped to this registry, for - example `v1`. We recommend that versions use semantic versioning https://semver.org/spec/v2.0.0.html - (For example, `1.0.0` instead of `develop`) - - responses: - '200': - description: A tool version. - schema: - $ref: '#/definitions/ToolVersion' - '404': - description: The tool can not be found. - schema: - $ref: '#/definitions/Error' - security: - - BEARER: [] - /tools: - get: - summary: List all tools - operationId: toolsGet - description: > - This endpoint returns all tools available or a filtered subset using - metadata query parameters. - tags: - - GA4GH - parameters: - - name: id - type: string - in: query - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456`. - - name: alias - type: string - in: query - description: >- - Support for this parameter is optional for tool registries that - support aliases. - - If provided will only return entries with the given alias. - - name: toolClass - type: string - in: query - description: 'Filter tools by the name of the subclass (#/definitions/ToolClass)' - - name: descriptorType - type: string - in: query - description: 'Filter tools by the name of the descriptor type (#/definitions/DescriptorType)' - - name: registry - in: query - type: string - description: The image registry that contains the image. - - name: organization - in: query - type: string - description: The organization in the registry that published the image. - - name: name - in: query - type: string - description: The name of the image. - - name: toolname - in: query - type: string - description: The name of the tool. - - name: description - in: query - type: string - description: The description of the tool. - - name: author - in: query - type: string - description: >- - The author of the tool (TODO a thought occurs, are we assuming that - the author of the CWL and the image are the same?). - - name: checker - in: query - type: boolean - description: Return only checker workflows. - - $ref: '#/parameters/offset' - - $ref: '#/parameters/limit' - responses: - '200': - description: An array of Tools that match the filter. - schema: - type: array - items: - $ref: '#/definitions/Tool' - headers: - next_page: - description: >- - A URL that can be used to reach the next page based on the - current offset and page record limit. - type: string - last_page: - description: >- - A URL that can be used to reach the last page based on the - current page record limit. - type: string - self_link: - description: A URL that can be used to return to the current page later. - type: string - current_offset: - description: The current start index of the paging used for this result. - type: string - current_limit: - description: The current page record limit used for this result. - type: integer - security: - - BEARER: [] - '/tools/{id}/versions/{version_id}/{type}/descriptor': - get: - summary: Get the tool descriptor for the specified tool - operationId: toolsIdVersionsVersionIdTypeDescriptorGet - description: >- - Returns the descriptor for the specified tool (examples include CWL, - WDL, Nextflow, or Galaxy documents). - tags: - - GA4GH - parameters: - - name: type - required: true - in: path - description: >- - The output type of the descriptor. Plain types return the bare - descriptor while the "non-plain" types return a descriptor wrapped - with metadata. Allowable values include "CWL", "WDL", "NFL", "GALAXY", - "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL", "PLAIN_GALAXY". - type: string - - name: id - in: path - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456`. - required: true - type: string - - name: version_id - in: path - required: true - type: string - description: >- - An identifier of the tool version, scoped to this registry, for - example `v1`. - responses: - '200': - description: The tool descriptor. - schema: - $ref: '#/definitions/FileWrapper' - '404': - description: The tool descriptor can not be found. - schema: - $ref: '#/definitions/Error' - security: - - BEARER: [] - '/tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}': - get: - summary: Get additional tool descriptor files relative to the main file - operationId: toolsIdVersionsVersionIdTypeDescriptorRelativePathGet - description: >- - Descriptors can often include imports that refer to additional - descriptors. This returns additional descriptors for the specified tool - in the same or other directories that can be reached as a relative path. - This endpoint can be useful for workflow engine implementations like - cwltool to programmatically download all the descriptors for a tool and - run it. This can optionally include other files described with - FileWrappers such as test parameters and containerfiles. - tags: - - GA4GH - parameters: - - name: type - in: path - required: true - description: >- - The output type of the descriptor. If not specified, it is up to the - underlying implementation to determine which output type to return. - Plain types return the bare descriptor while the "non-plain" types - return a descriptor wrapped with metadata. Allowable values are - "CWL", "WDL", "NFL", "GALAXY", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL", "PLAIN_GALAXY". - type: string - - name: id - in: path - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456`. - required: true - type: string - - name: version_id - in: path - required: true - type: string - description: >- - An identifier of the tool version for this particular tool registry, - for example `v1`. - - name: relative_path - in: path - required: true - type: string - description: >- - A relative path to the additional file (same directory or - subdirectories), for example 'foo.cwl' would return a 'foo.cwl' from - the same directory as the main descriptor. 'nestedDirectory/foo.cwl' - would return the file from a nested subdirectory. Unencoded paths - such 'sampleDirectory/foo.cwl' should also be allowed. - pattern: .+ - responses: - '200': - description: The tool descriptor. - schema: - $ref: '#/definitions/FileWrapper' - '404': - description: The tool can not be output in the specified type. - schema: - $ref: '#/definitions/Error' - security: - - BEARER: [] - '/tools/{id}/versions/{version_id}/{type}/tests': - get: - summary: Get a list of test JSONs - operationId: toolsIdVersionsVersionIdTypeTestsGet - description: >- - Get a list of test JSONs (these allow you to execute the tool - successfully) suitable for use with this descriptor type. - tags: - - GA4GH - parameters: - - name: type - required: true - in: path - description: >- - The type of the underlying descriptor. Allowable values include - "CWL", "WDL", "NFL", "GALAXY", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL", "PLAIN_GALAXY". For - example, "CWL" would return an list of ToolTests objects while - "PLAIN_CWL" would return a bare JSON list with the content of the - tests. - type: string - - name: id - in: path - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456`. - required: true - type: string - - name: version_id - in: path - required: true - type: string - description: >- - An identifier of the tool version for this particular tool registry, - for example `v1`. - responses: - '200': - description: The tool test JSON response. - schema: - type: array - items: - $ref: '#/definitions/FileWrapper' - '404': - description: The tool can not be output in the specified type. - schema: - $ref: '#/definitions/Error' - security: - - BEARER: [] - '/tools/{id}/versions/{version_id}/{type}/files': - get: - summary: Get a list of objects that contain the relative path and file type - description: >- - Get a list of objects that contain the relative path and file type. The - descriptors are intended for use with the - /tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path} - endpoint. Returns a zip file of all files when format=zip is specified. - operationId: toolsIdVersionsVersionIdTypeFilesGet - produces: - - application/json - - application/zip - tags: - - GA4GH - parameters: - - name: type - required: true - in: path - description: >- - The output type of the descriptor. Examples of allowable values are - "CWL", "WDL", "NFL", "GALAXY". - type: string - - name: id - in: path - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456`. - required: true - type: string - - name: version_id - in: path - required: true - type: string - description: >- - An identifier of the tool version for this particular tool registry, - for example `v1`. - - name: format - in: query - required: false - type: string - description: Returns a zip file of all files when format=zip is specified. - enum: - - zip - responses: - '200': - description: The array of File JSON responses. - schema: - type: array - items: - $ref: '#/definitions/ToolFile' - '404': - description: The tool can not be output in the specified type. - schema: - $ref: '#/definitions/Error' - security: - - BEARER: [] - '/tools/{id}/versions/{version_id}/containerfile': - get: - summary: Get the container specification(s) for the specified image. - operationId: toolsIdVersionsVersionIdContainerfileGet - description: >- - Returns the container specifications(s) for the specified image. For - example, a CWL CommandlineTool can be associated with one specification - for a container, a CWL Workflow can be associated with multiple - specifications for containers. - tags: - - GA4GH - parameters: - - name: id - in: path - description: >- - A unique identifier of the tool, scoped to this registry, for - example `123456`. - required: true - type: string - - name: version_id - in: path - required: true - type: string - description: >- - An identifier of the tool version for this particular tool registry, - for example `v1`. - responses: - '200': - description: The tool payload. - schema: - type: array - items: - $ref: '#/definitions/FileWrapper' - '404': - description: There are no container specifications for this tool. - schema: - $ref: '#/definitions/Error' - security: - - BEARER: [] - /toolClasses: - get: - summary: List all tool types - operationId: toolClassesGet - description: | - This endpoint returns all tool-classes available. - tags: - - GA4GH - responses: - '200': - description: A list of potential tool classes. - schema: - type: array - items: - $ref: '#/definitions/ToolClass' - security: - - BEARER: [] -definitions: - Checksum: - type: object - required: ['checksum', 'type'] - properties: - checksum: - type: string - description: |- - The hex-string encoded checksum for the data. - type: - type: string - description: |- - The digest method used to create the checksum. - The value (e.g. `sha-256`) SHOULD be listed as `Hash Name String` in the https://github.com/ga4gh-discovery/ga4gh-checksum/blob/master/hash-alg.csv[GA4GH Checksum Hash Algorithm Registry]. - Other values MAY be used, as long as implementors are aware of the issues discussed in https://tools.ietf.org/html/rfc6920#section-9.4[RFC6920]. - GA4GH may provide more explicit guidance for use of non-IANA-registered algorithms in the future. - ToolFile: - type: object - properties: - path: - type: string - description: >- - Relative path of the file. A descriptor's path can be used with the - GA4GH .../{type}/descriptor/{relative_path} endpoint. - file_type: - type: string - enum: - - TEST_FILE - - PRIMARY_DESCRIPTOR - - SECONDARY_DESCRIPTOR - - CONTAINERFILE - - OTHER - ToolClass: - type: object - description: >- - Describes a class (type) of tool allowing us to categorize workflows, - tasks, and maybe even other entities (such as services) separately. - properties: - id: - type: string - description: The unique identifier for the class. - name: - type: string - description: A short friendly name for the class. - description: - type: string - description: A longer explanation of what this class is and what it can accomplish. - Tool: - type: object - description: >- - A tool (or described tool) is defined as a tuple of a descriptor file - (which potentially consists of multiple files), a set of container images, - and a set of instructions for creating those images. - required: - - url - - id - - organization - - toolclass - - versions - properties: - url: - type: string - example: 'http://agora.broadinstitute.org/tools/123456' - description: The URL for this tool in this registry. - id: - type: string - example: 123456 - description: 'A unique identifier of the tool, scoped to this registry.' - aliases: - type: array - items: - type: string - example: - - 630d31c3-381e-488d-b639-ce5d047a0142 - - 'dockstore.org:630d31c3-381e-488d-b639-ce5d047a0142' - - 'bio.tools:630d31c3-381e-488d-b639-ce5d047a0142' - description: >- - Support for this parameter is optional for tool registries that - support aliases. - - A list of strings that can be used to identify this tool which could be - straight up URLs. - - This can be used to expose alternative ids (such as GUIDs) for a tool - - for registries. Can be used to match tools across registries. - organization: - type: string - description: The organization that published the image. - name: - type: string - description: The name of the tool. - toolclass: - $ref: '#/definitions/ToolClass' - description: - type: string - description: The description of the tool. - meta_version: - type: string - description: >- - The version of this tool in the registry. Iterates when fields like - the description, author, etc. are updated. - has_checker: - type: boolean - description: Whether this tool has a checker tool associated with it. - checker_url: - type: string - description: >- - Optional url to the checker tool that will exit successfully if this - tool produced the expected result given test data. - versions: - description: A list of versions for this tool. - type: array - items: - $ref: '#/definitions/ToolVersion' - ToolVersion: - type: object - description: >- - A tool version describes a particular iteration of a tool as described by - a reference to a specific image and/or documents. - required: - - url - - id - properties: - author: - type: array - items: - type: string - description: >- - Contact information for the author of this version of the tool in the registry. - (More complex authorship information is handled by the descriptor). - name: - type: string - description: The name of the version. - url: - type: string - description: The URL for this tool version in this registry. - example: 'http://agora.broadinstitute.org/tools/123456/versions/1' - id: - type: string - description: >- - An identifier of the version of this tool for this particular tool - registry. - example: v1 - is_production: - type: boolean - description: >- - This version of a tool is guaranteed to not change over time (for example, a - tool built from a tag in git as opposed to a branch). A production quality tool - is required to have a checksum - images: - description: >- - All known docker images (and versions/hashes) used by this tool. If - the tool has to evaluate any of the docker images strings at runtime, - those ones cannot be reported here. - type: array - items: - $ref: '#/definitions/ImageData' - descriptor_type: - type: array - description: The type (or types) of descriptors available. - items: - $ref: '#/definitions/DescriptorType' - containerfile: - type: boolean - description: Reports if this tool has a containerfile available. (For Docker-based tools, this would indicate the presence of a Dockerfile) - meta_version: - type: string - description: >- - The version of this tool version in the registry. Iterates when fields - like the description, author, etc. are updated. - verified: - type: boolean - description: >- - Reports whether this tool has been verified by a specific organization - or individual. - verified_source: - type: array - items: - type: string - description: >- - Source of metadata that can support a verified tool, such as an email - or URL. - signed: - type: boolean - description: Reports whether this version of the tool has been signed. - included_apps: - description: An array of IDs for the applications that are stored inside this tool. - example: - - 'https://bio.tools/tool/mytum.de/SNAP2/1' - - 'https://bio.tools/bioexcel_seqqc' - type: array - items: - type: string - ImageData: - type: object - description: Describes one container image. - properties: - registry_host: - type: string - description: >- - A docker registry or a URL to a Singularity registry. Used along with - image_name to locate a specific image. - example: - - registry.hub.docker.com - image_name: - type: string - description: Used in conjunction with a registry_url if provided to locate images. - example: - - quay.io/seqware/seqware_full/1.1 - - 'ubuntu:latest' - size: - type: integer - description: Size of the container in bytes. - updated: - type: string - description: Last time the container was updated. - checksum: - type: array - items: - $ref: '#/definitions/Checksum' - description: >- - A production (immutable) tool version is required to have a hashcode. Not required otherwise, but might be useful to detect changes. - This exposes the hashcode for specific image versions to verify that the container version pulled is actually the version that was indexed by the registry. - example: - - checksum: '77af4d6b9913e693e8d0b4b294fa62ade6054e6b2f1ffb617ac955dd63fb0182' - type: sha256 - image_type: - $ref: '#/definitions/ImageType' - ImageType: - type: string - description: Indicates what kind of container is this image is. - enum: - - Docker - - Singularity - - Conda - DescriptorType: - type: string - description: >- - The type of descriptor that represents this version of the tool (e.g. CWL, - WDL, NFL, or GALAXY). Note that these files can also include associated - Docker/container files and test parameters that further describe a - version of a tool. - enum: - - CWL - - WDL - - NFL - - GALAXY - FileWrapper: - type: object - description: > - A file provides content for one of - - - A tool descriptor is a metadata document that describes one or more - tools. - - - A tool document that describes how to test with one or more sample test - - JSON. - - - A containerfile is a document that describes how to build a particular - - container image. Examples include Dockerfiles for creating Docker images - - and Singularity recipes for Singularity images - properties: - content: - type: string - description: The content of the file itself. One of url or content is required. - checksum: - type: array - items: - $ref: '#/definitions/Checksum' - description: >- - A production (immutable) tool version is required to have a hashcode. Not required otherwise, but might be useful to detect changes. - example: - - checksum: ea2a5db69bd20a42976838790bc29294df3af02b - type: sha1 - url: - type: string - description: >- - Optional url to the underlying content, should include version - information, and can include a git hash. Note that this URL should - resolve to the raw unwrapped content that would otherwise be available - in content. One of url or content is required. - example: - descriptorfile: - url: >- - https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl - containerfile: - url: >- - https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/c83478829802b4d36374870843821abe1b625a71/delly_docker/Dockerfile - Error: - type: object - required: - - code - properties: - code: - type: integer - format: int32 - default: 500 - message: - type: string - default: Internal Server Error -parameters: - limit: - name: limit - in: query - description: Amount of records to return in a given page. - default: 1000 - type: integer - format: int32 - offset: - name: offset - in: query - description: >- - Start index of paging. Pagination results can be based on numbers or other - values chosen by the registry implementor (for example, SHA values). If - this exceeds the current result set return an empty set. If not specified - in the request, this will start at the beginning of the results. - type: string -externalDocs: - description: Description of GA4GH Tool Registry (Exchange) Schema - url: 'https://github.com/ga4gh/tool-registry-schemas' diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index d3c4c28e..796baf05 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -32,13 +32,7 @@ paths: tags: - GA4GH parameters: - - name: id - in: path - required: true - description: A unique identifier of the tool, scoped to this registry, for - example `123456`. - schema: - type: string + - $ref: "#/components/parameters/id" responses: "200": description: A tool. @@ -48,16 +42,13 @@ paths: $ref: "#/components/schemas/Tool" text/plain: schema: - $ref: "#/components/schemas/Tool" + type: string "404": description: The tool can not be found. content: application/json: schema: $ref: "#/components/schemas/Error" - text/plain: - schema: - $ref: "#/components/schemas/Error" security: - BEARER: [] "/tools/{id}/versions": @@ -68,13 +59,7 @@ paths: tags: - GA4GH parameters: - - name: id - in: path - required: true - description: A unique identifier of the tool, scoped to this registry, for - example `123456`. - schema: - type: string + - $ref: "#/components/parameters/id" responses: "200": description: An array of tool versions. @@ -84,11 +69,6 @@ paths: type: array items: $ref: "#/components/schemas/ToolVersion" - text/plain: - schema: - type: array - items: - $ref: "#/components/schemas/ToolVersion" security: - BEARER: [] "/tools/{id}/versions/{version_id}": @@ -99,22 +79,8 @@ paths: tags: - GA4GH parameters: - - name: id - in: path - required: true - description: A unique identifier of the tool, scoped to this registry, for - example `123456`. - schema: - type: string - - name: version_id - in: path - required: true - description: An identifier of the tool version, scoped to this registry, for - example `v1`. We recommend that versions use semantic versioning - https://semver.org/spec/v2.0.0.html (For example, `1.0.0` instead - of `develop`) - schema: - type: string + - $ref: "#/components/parameters/id" + - $ref: "#/components/parameters/version_id" responses: "200": description: A tool version. @@ -122,18 +88,12 @@ paths: application/json: schema: $ref: "#/components/schemas/ToolVersion" - text/plain: - schema: - $ref: "#/components/schemas/ToolVersion" "404": description: The tool can not be found. content: application/json: schema: $ref: "#/components/schemas/Error" - text/plain: - schema: - $ref: "#/components/schemas/Error" security: - BEARER: [] /tools: @@ -169,9 +129,8 @@ paths: - name: descriptorType in: query description: Filter tools by the name of the descriptor type - (#/definitions/DescriptorType) schema: - type: string + $ref: '#/components/schemas/DescriptorType' - name: registry in: query description: The image registry that contains the image. @@ -242,11 +201,6 @@ paths: type: array items: $ref: "#/components/schemas/Tool" - text/plain: - schema: - type: array - items: - $ref: "#/components/schemas/Tool" security: - BEARER: [] "/tools/{id}/versions/{version_id}/{type}/descriptor": @@ -258,29 +212,9 @@ paths: tags: - GA4GH parameters: - - name: type - required: true - in: path - description: The output type of the descriptor. Plain types return the bare - descriptor while the "non-plain" types return a descriptor wrapped - with metadata. Allowable values include "CWL", "WDL", "NFL", - "GALAXY", "PLAIN_CWL", "PLAIN_WDL", "PLAIN_NFL", "PLAIN_GALAXY". - schema: - type: string - - name: id - in: path - description: A unique identifier of the tool, scoped to this registry, for - example `123456`. - required: true - schema: - type: string - - name: version_id - in: path - required: true - description: An identifier of the tool version, scoped to this registry, for - example `v1`. - schema: - type: string + - $ref: "#/components/parameters/id" + - $ref: "#/components/parameters/type" + - $ref: "#/components/parameters/version_id" responses: "200": description: The tool descriptor. @@ -290,16 +224,13 @@ paths: $ref: "#/components/schemas/FileWrapper" text/plain: schema: - $ref: "#/components/schemas/FileWrapper" + type: string "404": description: The tool descriptor can not be found. content: application/json: schema: $ref: "#/components/schemas/Error" - text/plain: - schema: - $ref: "#/components/schemas/Error" security: - BEARER: [] "/tools/{id}/versions/{version_id}/{type}/descriptor/{relative_path}": @@ -316,31 +247,9 @@ paths: tags: - GA4GH parameters: - - name: type - in: path - required: true - description: The output type of the descriptor. If not specified, it is up to - the underlying implementation to determine which output type to - return. Plain types return the bare descriptor while the "non-plain" - types return a descriptor wrapped with metadata. Allowable values - are "CWL", "WDL", "NFL", "GALAXY", "PLAIN_CWL", "PLAIN_WDL", - "PLAIN_NFL", "PLAIN_GALAXY". - schema: - type: string - - name: id - in: path - description: A unique identifier of the tool, scoped to this registry, for - example `123456`. - required: true - schema: - type: string - - name: version_id - in: path - required: true - description: An identifier of the tool version for this particular tool - registry, for example `v1`. - schema: - type: string + - $ref: "#/components/parameters/id" + - $ref: "#/components/parameters/type" + - $ref: "#/components/parameters/version_id" - name: relative_path in: path required: true @@ -361,16 +270,13 @@ paths: $ref: "#/components/schemas/FileWrapper" text/plain: schema: - $ref: "#/components/schemas/FileWrapper" + type: string "404": description: The tool can not be output in the specified type. content: application/json: schema: $ref: "#/components/schemas/Error" - text/plain: - schema: - $ref: "#/components/schemas/Error" security: - BEARER: [] "/tools/{id}/versions/{version_id}/{type}/tests": @@ -382,30 +288,9 @@ paths: tags: - GA4GH parameters: - - name: type - required: true - in: path - description: The type of the underlying descriptor. Allowable values include - "CWL", "WDL", "NFL", "GALAXY", "PLAIN_CWL", "PLAIN_WDL", - "PLAIN_NFL", "PLAIN_GALAXY". For example, "CWL" would return an list - of ToolTests objects while "PLAIN_CWL" would return a bare JSON list - with the content of the tests. - schema: - type: string - - name: id - in: path - description: A unique identifier of the tool, scoped to this registry, for - example `123456`. - required: true - schema: - type: string - - name: version_id - in: path - required: true - description: An identifier of the tool version for this particular tool - registry, for example `v1`. - schema: - type: string + - $ref: "#/components/parameters/id" + - $ref: "#/components/parameters/type" + - $ref: "#/components/parameters/version_id" responses: "200": description: The tool test JSON response. @@ -426,9 +311,6 @@ paths: application/json: schema: $ref: "#/components/schemas/Error" - text/plain: - schema: - $ref: "#/components/schemas/Error" security: - BEARER: [] "/tools/{id}/versions/{version_id}/{type}/files": @@ -442,27 +324,14 @@ paths: tags: - GA4GH parameters: + - $ref: "#/components/parameters/id" - name: type required: true in: path - description: The output type of the descriptor. Examples of allowable values are - "CWL", "WDL", "NFL", "GALAXY". - schema: - type: string - - name: id - in: path - description: A unique identifier of the tool, scoped to this registry, for - example `123456`. - required: true - schema: - type: string - - name: version_id - in: path - required: true - description: An identifier of the tool version for this particular tool - registry, for example `v1`. + description: The output type of the descriptor. schema: - type: string + $ref: '#/components/schemas/DescriptorType' + - $ref: "#/components/parameters/version_id" - name: format in: query required: false @@ -491,9 +360,6 @@ paths: application/json: schema: $ref: "#/components/schemas/Error" - application/zip: - schema: - $ref: "#/components/schemas/Error" security: - BEARER: [] "/tools/{id}/versions/{version_id}/containerfile": @@ -507,20 +373,8 @@ paths: tags: - GA4GH parameters: - - name: id - in: path - description: A unique identifier of the tool, scoped to this registry, for - example `123456`. - required: true - schema: - type: string - - name: version_id - in: path - required: true - description: An identifier of the tool version for this particular tool - registry, for example `v1`. - schema: - type: string + - $ref: "#/components/parameters/id" + - $ref: "#/components/parameters/version_id" responses: "200": description: The tool payload. @@ -530,20 +384,12 @@ paths: type: array items: $ref: "#/components/schemas/FileWrapper" - text/plain: - schema: - type: array - items: - $ref: "#/components/schemas/FileWrapper" "404": description: There are no container specifications for this tool. content: application/json: schema: $ref: "#/components/schemas/Error" - text/plain: - schema: - $ref: "#/components/schemas/Error" security: - BEARER: [] /toolClasses: @@ -563,11 +409,6 @@ paths: type: array items: $ref: "#/components/schemas/ToolClass" - text/plain: - schema: - type: array - items: - $ref: "#/components/schemas/ToolClass" security: - BEARER: [] externalDocs: @@ -577,6 +418,33 @@ servers: - url: /ga4gh/trs/v2 components: parameters: + version_id: + name: version_id + in: path + required: true + description: An identifier of the tool version, scoped to this registry, for + example `v1`. We recommend that versions use semantic versioning + https://semver.org/spec/v2.0.0.html (For example, `1.0.0` instead + of `develop`) + schema: + type: string + type: + name: type + required: true + in: path + description: The output type of the descriptor. Plain types return the bare + descriptor while the "non-plain" types return a descriptor wrapped + with metadata. + schema: + $ref: '#/components/schemas/DescriptorTypeWithPlain' + id: + name: id + in: path + required: true + description: A unique identifier of the tool, scoped to this registry, for + example `123456`. + schema: + type: string limit: name: limit in: query @@ -835,8 +703,7 @@ components: - Conda DescriptorType: type: string - description: The type of descriptor that represents this version of the tool - (e.g. CWL, WDL, NFL, or GALAXY). Note that these files can also include + description: The type of descriptor that represents this version of the tool. Note that these files can also include associated Docker/container files and test parameters that further describe a version of a tool. enum: @@ -844,6 +711,18 @@ components: - WDL - NFL - GALAXY + DescriptorTypeWithPlain: + type: string + description: The output type of the descriptor. Plain types return the raw text while the "non-plain" types return the application/json + enum: + - CWL + - WDL + - NFL + - GALAXY + - PLAIN_CWL + - PLAIN_WDL + - PLAIN_NFL + - PLAIN_GALAXY FileWrapper: type: object description: > @@ -897,3 +776,4 @@ components: message: type: string default: Internal Server Error + diff --git a/scripts/openAPI3.sh b/scripts/openAPI3.sh deleted file mode 100644 index a06734ef..00000000 --- a/scripts/openAPI3.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash -set -o errexit -set -o pipefail -set -o nounset -set -o xtrace - -if ! git diff --exit-code openapi/openapi.yaml - then - git diff openapi/openapi.yaml - openssl aes-256-cbc -K $encrypted_f356a5c69655_key -iv $encrypted_f356a5c69655_iv -in github_deploy_key.enc -out github_deploy_key -d - eval "$(ssh-agent)" - chmod 600 github_deploy_key - ssh-add github_deploy_key - git add openapi/openapi.yaml - git commit -m "OpenAPI changed" - echo "Pushing changes" - git push git@github.com:"${TRAVIS_REPO_SLUG}" ${TRAVIS_BRANCH} -fi - From 75a9ca3c736fa5c52212c42b193b006622cd323d Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Mon, 8 Feb 2021 13:18:08 -0500 Subject: [PATCH 084/102] Add checksum to ToolFile (#172) --- openapi/openapi.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 796baf05..765b0366 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -503,6 +503,8 @@ components: - SECONDARY_DESCRIPTOR - CONTAINERFILE - OTHER + checksum: + $ref: "#/components/schemas/Checksum" ToolClass: type: object description: Describes a class (type) of tool allowing us to categorize From f97f2f226f258002657d6583a447871eeb6786df Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 3 Mar 2021 10:46:52 -0500 Subject: [PATCH 085/102] [Security] Bump prismjs from 1.22.0 to 1.23.0 (#173) Bumps [prismjs](https://github.com/PrismJS/prism) from 1.22.0 to 1.23.0. **This update includes a security fix.** - [Release notes](https://github.com/PrismJS/prism/releases) - [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md) - [Commits](https://github.com/PrismJS/prism/compare/v1.22.0...v1.23.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b981d35a..df2638e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2367,9 +2367,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prismjs": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.22.0.tgz", - "integrity": "sha512-lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.23.0.tgz", + "integrity": "sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA==", "requires": { "clipboard": "^2.0.0" } From 20807a195fd410ebc77c39fe29a015dd9b5f00f3 Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Wed, 12 May 2021 17:29:21 -0400 Subject: [PATCH 086/102] Update README.md (#183) * Update README.md * Pin a version to avoid future breakage Co-authored-by: Denis Yuen --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a4723e06..262aeab0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![ga4gh logo](https://github.com/dockstore/dockstore-ui2/raw/develop/src/assets/images/sponsors/coloured/ga4gh.png) +![ga4gh logo](https://raw.githubusercontent.com/dockstore/dockstore-ui2/2.7.4/images/high-res/ga4gh.png) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3374001.svg)](https://doi.org/10.5281/zenodo.3374001) From 5fe2da6f619c7bb593ccdbf5e7361b701a6e6d5f Mon Sep 17 00:00:00 2001 From: Gary Luu Date: Mon, 23 Aug 2021 20:32:08 -0400 Subject: [PATCH 087/102] npm audit fix (#198) --- package-lock.json | 3230 ++++++++++++++++++++++++++++++++++----------- package.json | 2 +- 2 files changed, 2471 insertions(+), 761 deletions(-) diff --git a/package-lock.json b/package-lock.json index df2638e4..c26513f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,11 +13,11 @@ } }, "@babel/generator": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", - "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", "requires": { - "@babel/types": "^7.10.5", + "@babel/types": "^7.15.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -30,45 +30,53 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.14.5" } }, "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", + "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "requires": { + "@babel/types": "^7.14.5" } }, "@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.14.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", - "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.14.5" } }, "@babel/helper-validator-identifier": { @@ -87,9 +95,9 @@ } }, "@babel/parser": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", - "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==" + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz", + "integrity": "sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==" }, "@babel/runtime": { "version": "7.10.5", @@ -100,49 +108,103 @@ } }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + } } }, "@babel/traverse": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", - "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.10.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/parser": "^7.10.5", - "@babel/types": "^7.10.5", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } } } }, "@babel/types": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", - "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + } } }, "@emotion/is-prop-valid": { @@ -158,6 +220,11 @@ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, "@emotion/unitless": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", @@ -203,7 +270,222 @@ "simple-websocket": "^8.1.1", "xmlhttprequest": "^1.8.0", "yaml-ast-parser": "0.0.43" + }, + "dependencies": { + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "merge-deep": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", + "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", + "requires": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + } + } + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "redoc-cli": { + "version": "0.9.13", + "resolved": "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.9.13.tgz", + "integrity": "sha512-6zNhK7KiiYPGaMIFISsIkgAJaXTY0n8hY3xGAeQuS52GRm/DR5bA1Jna52GUzWM/LXgyp6HSBvYucd+wmOQYCQ==", + "requires": { + "chokidar": "^3.4.1", + "handlebars": "^4.7.6", + "isarray": "^2.0.5", + "mkdirp": "^1.0.4", + "mobx": "^6.0.1", + "node-libs-browser": "^2.2.1", + "react": "^16.13.1", + "react-dom": "^16.13.1", + "redoc": "2.0.0-rc.45", + "styled-components": "^5.1.1", + "tslib": "^2.0.0", + "yargs": "^15.4.1" + }, + "dependencies": { + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "mobx": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.3.2.tgz", + "integrity": "sha512-xGPM9dIE1qkK9Nrhevp0gzpsmELKU4MFUJRORW/jqxVFIHHWIoQrjDjL8vkwoJYY3C2CeVJqgvl38hgKTalTWg==" + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "redoc": { + "version": "2.0.0-rc.45", + "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.45.tgz", + "integrity": "sha512-yOgyXFybwBItvY+y9cFEA6X0W6KDdnkdeWK8LMkTxWN4HUecRwPFYPRdzx+SvDUb8ICh4PDtfyDU3Fo1e9N8Iw==", + "requires": { + "@redocly/react-dropdown-aria": "^2.0.11", + "@types/node": "^13.11.1", + "classnames": "^2.2.6", + "decko": "^1.2.0", + "dompurify": "^2.0.12", + "eventemitter3": "^4.0.4", + "json-pointer": "^0.6.0", + "json-schema-ref-parser": "^6.1.0", + "lunr": "2.3.8", + "mark.js": "^8.11.1", + "marked": "^0.7.0", + "memoize-one": "~5.1.1", + "mobx-react": "^6.2.2", + "openapi-sampler": "^1.0.0-beta.16", + "perfect-scrollbar": "^1.4.0", + "polished": "^3.6.5", + "prismjs": "^1.20.0", + "prop-types": "^15.7.2", + "react-tabs": "^3.1.1", + "slugify": "^1.4.4", + "stickyfill": "^1.1.1", + "swagger2openapi": "^6.2.1", + "tslib": "^2.0.0", + "url-template": "^2.0.8" + } + }, + "styled-components": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.0.tgz", + "integrity": "sha512-bPJKwZCHjJPf/hwTJl6TbkSZg/3evha+XPEizrZUGb535jLImwDUdjTNxXqjjaASt2M4qO4AVfoHJNe3XB/tpQ==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -279,6 +561,11 @@ } } }, + "@redocly/react-dropdown-aria": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@redocly/react-dropdown-aria/-/react-dropdown-aria-2.0.12.tgz", + "integrity": "sha512-feQEZlyBvQsbT/fvpJ4jJ5OLGaUPpnskHYDsY8DGpPymN+HUeDQrqkBEbbKRwMKidFTI2cxk2kJNNTnvdS9jyw==" + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -297,10 +584,15 @@ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" + }, "@types/node": { - "version": "13.13.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.14.tgz", - "integrity": "sha512-Az3QsOt1U/K1pbCQ0TXGELTuTkPLOiFIQf3ILzbOyo0FqgV9SxRnxbxM5QlAveERZMHpZY+7u3Jz2tKyl+yg6g==" + "version": "13.13.52", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz", + "integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==" }, "ajv": { "version": "5.5.2", @@ -392,19 +684,20 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -446,9 +739,9 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "babel-plugin-styled-components": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.7.tgz", - "integrity": "sha512-MBMHGcIA22996n9hZRf/UJLVVgkEOITuR2SvjHLb5dSTUyR4ZRGn+ngITapes36FI3WLxZHfRhkA1ffHxihOrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.13.2.tgz", + "integrity": "sha512-Vb1R3d4g+MUfPQPVDMCGjm3cDocJEUTR7Xq7QS95JWWeksN1wdFRYpD2kulDgI3Huuaf1CZd+NK4KQmqUFh5dA==", "requires": { "@babel/helper-annotate-as-pure": "^7.0.0", "@babel/helper-module-imports": "^7.0.0", @@ -467,9 +760,9 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "better-ajv-errors": { "version": "0.6.7", @@ -496,9 +789,9 @@ "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" }, "bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" }, "boxen": { "version": "3.2.0", @@ -607,31 +900,24 @@ } }, "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "requires": { - "bn.js": "^4.1.0", + "bn.js": "^5.0.0", "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } } }, "browserify-sign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", - "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", "requires": { "bn.js": "^5.1.1", "browserify-rsa": "^4.0.1", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.2", + "elliptic": "^6.5.3", "inherits": "^2.0.4", "parse-asn1": "^5.1.5", "readable-stream": "^3.6.0", @@ -750,26 +1036,15 @@ } }, "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" }, "cli-boxes": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==" }, - "clipboard": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", - "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", - "optional": true, - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -815,11 +1090,6 @@ "resolved": "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz", "integrity": "sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==" }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -900,18 +1170,18 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "requires": { "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "elliptic": "^6.5.3" }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -940,18 +1210,6 @@ "sha.js": "^2.4.8" } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", @@ -981,13 +1239,13 @@ "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" }, "css-to-react-native": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", - "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", "requires": { "camelize": "^1.0.0", "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^3.3.0" + "postcss-value-parser": "^4.0.2" } }, "debug": { @@ -1031,12 +1289,6 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", - "optional": true - }, "des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", @@ -1057,9 +1309,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -1069,14 +1321,14 @@ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" }, "dompurify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.0.12.tgz", - "integrity": "sha512-Fl8KseK1imyhErHypFPA8qpq9gPzlsJ/EukA6yk9o0gX23p1TzC+rh9LqNg1qvErRTc0UNMYlKxEGSfSh43NDg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.1.tgz", + "integrity": "sha512-xGWt+NHAQS+4tpgbOAI08yxW0Pr256Gu/FNE2frZVTbgrBUn8M7tz7/ktS/LZ2MHeGqz6topj0/xY+y8R5FBFw==" }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", + "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "requires": { "is-obj": "^1.0.0" } @@ -1087,23 +1339,23 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", + "bn.js": "^4.11.9", + "brorand": "^1.1.0", "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -1130,6 +1382,11 @@ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=" }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1141,14 +1398,14 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, "events": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, "evp_bytestokey": { "version": "1.0.3", @@ -1159,20 +1416,6 @@ "safe-buffer": "^5.1.1" } }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "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" - } - }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -1296,9 +1539,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { "is-glob": "^4.0.1" } @@ -1316,15 +1559,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "optional": true, - "requires": { - "delegate": "^3.1.2" - } - }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -1362,9 +1596,9 @@ } }, "handlebars": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", - "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "requires": { "minimist": "^1.2.5", "neo-async": "^2.6.0", @@ -1412,6 +1646,14 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -1428,9 +1670,9 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "import-lazy": { "version": "2.1.0", @@ -1457,20 +1699,15 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -1560,11 +1797,6 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, - "is-what": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.10.0.tgz", - "integrity": "sha512-U4RYCXNOmATQHlOPlOCHCfXyKEFIPqvyaKDqYRuLbD6EYKcTTfc3YXkAYjzOVxO3zt34L+Wh2feIyWrYiZ7kng==" - }, "is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", @@ -1615,9 +1847,9 @@ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "json-pointer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.0.tgz", - "integrity": "sha1-jlAFUKaqxUZKRzN32leqbMIoKNc=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.1.tgz", + "integrity": "sha512-3OvjqKdCBvH41DLpV4iSt6v2XhZXV1bPB4OROuknvUXI7ZQNofieCPkmE26stEJ9zdQuvIxDHCuYhfgxFAAs+Q==", "requires": { "foreach": "^2.0.4" } @@ -1710,14 +1942,6 @@ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "requires": { - "invert-kv": "^2.0.0" - } - }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -1742,9 +1966,9 @@ } }, "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.isequal": { "version": "4.5.0", @@ -1786,14 +2010,6 @@ "pify": "^3.0.0" } }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "requires": { - "p-defer": "^1.0.0" - } - }, "mark.js": { "version": "8.11.1", "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", @@ -1814,39 +2030,11 @@ "safe-buffer": "^5.1.2" } }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, "memoize-one": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==" }, - "merge-anything": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/merge-anything/-/merge-anything-2.4.4.tgz", - "integrity": "sha512-l5XlriUDJKQT12bH+rVhAHjwIuXWdAIecGwsYjv2LJo+dA1AeRTmeQS+3QBpO6lEthBMDi2IUMpLC1yyRvGlwQ==", - "requires": { - "is-what": "^3.3.1" - } - }, - "merge-deep": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", - "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", - "requires": { - "arr-union": "^3.1.0", - "clone-deep": "^0.2.4", - "kind-of": "^3.0.2" - } - }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -1862,9 +2050,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -1886,11 +2074,6 @@ "mime-db": "1.44.0" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -1943,23 +2126,18 @@ "minimist": "^1.2.5" } }, - "mobx": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-4.15.4.tgz", - "integrity": "sha512-nyuHPqmKnVOnbvkjR8OrijBtovxAHYC+JU8/qBqvBw4Dez/n+zzxqNHbZNFy7/07+wwc/Qz7JS9WSfy1LcYISA==" - }, "mobx-react": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-6.1.5.tgz", - "integrity": "sha512-EfWoXmGE2CfozH4Xirb65+il1ynHFCmxBSUabMSf+511YfjVs6QRcCrHkiVw+Il8iWp1gIyfa9qKkUgbDA9/2w==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-6.3.1.tgz", + "integrity": "sha512-IOxdJGnRSNSJrL2uGpWO5w9JH5q5HoxEqwOF4gye1gmZYdjoYkkMzSGMDnRCUpN/BNzZcFoMdHXrjvkwO7KgaQ==", "requires": { - "mobx-react-lite": "^1.4.2" + "mobx-react-lite": "^2.2.0" } }, "mobx-react-lite": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-1.5.2.tgz", - "integrity": "sha512-PyZmARqqWtpuQaAoHF5pKX7h6TKNLwq6vtovm4zZvG6sEbMRHHSqioGXSeQbpRmG8Kw8uln3q/W1yMO5IfL5Sg==" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-2.2.2.tgz", + "integrity": "sha512-2SlXALHIkyUPDsV4VTKVR9DW7K3Ksh1aaIv3NrNJygTbhXe2A9GrcKHZ2ovIiOp/BXilOcTYemfHHZubP431dg==" }, "ms": { "version": "2.1.2", @@ -1976,15 +2154,10 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-fetch-h2": { "version": "2.3.0", @@ -1994,72 +2167,6 @@ "http2-client": "^1.2.5" } }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, "node-readfiles": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", @@ -2074,9 +2181,9 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, "npm-run-path": { "version": "2.0.2", @@ -2086,11 +2193,6 @@ "path-key": "^2.0.0" } }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, "oas-kit-common": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", @@ -2164,11 +2266,12 @@ } }, "openapi-sampler": { - "version": "1.0.0-beta.15", - "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.0.0-beta.15.tgz", - "integrity": "sha512-wUD/vD3iBHKik/sME3uwUu4X3HFA53rDrPcVvLzgEELjHLbnTpSYfm4Jo9qZT1dPfBRowAnrF/VRQfOjL5QRAw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.1.0.tgz", + "integrity": "sha512-/LhZYKNBWphLEpbAG5BdpBZbIbmLgC4vTiTj8N/MV0LF9ptmKOiJ2nETVlacNjXHt7iqDgZDELJCIoZ3q5ZG6A==", "requires": { - "json-pointer": "^0.6.0" + "@types/json-schema": "^7.0.7", + "json-pointer": "^0.6.1" } }, "os-browserify": { @@ -2176,36 +2279,16 @@ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -2251,13 +2334,12 @@ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", "requires": { - "asn1.js": "^4.0.0", + "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", "pbkdf2": "^3.0.3", "safe-buffer": "^5.1.1" @@ -2307,14 +2389,14 @@ } }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -2324,9 +2406,9 @@ } }, "perfect-scrollbar": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz", - "integrity": "sha512-NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA==" + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.2.tgz", + "integrity": "sha512-McHAinFkyzKbBZrFtb4MT2mxkehp15KvOX/UrjB8C5EZZXHTHgyETo5IGFYtHRTI2Pb2bsV0OE0YnkjT9Cw3aw==" }, "picomatch": { "version": "2.2.2", @@ -2339,13 +2421,23 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "polished": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/polished/-/polished-3.6.5.tgz", - "integrity": "sha512-VwhC9MlhW7O5dg/z7k32dabcAFW1VI2+7fSe8cE/kXcfL7mVdoa5UxciYGW2sJU78ldDLT6+ROEKIZKFNTnUXQ==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/polished/-/polished-3.7.2.tgz", + "integrity": "sha512-pQKtpZGmsZrW8UUpQMAnR7s3ppHeMQVNyMDKtUyKwuvDmklzcEyM5Kllb3JyE/sE/x7arDmyd35i+4vp99H6sQ==", "requires": { - "@babel/runtime": "^7.9.2" - } - }, + "@babel/runtime": "^7.12.5" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.3.tgz", + "integrity": "sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, "portfinder": { "version": "1.0.27", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.27.tgz", @@ -2357,9 +2449,9 @@ } }, "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" }, "prepend-http": { "version": "2.0.0", @@ -2367,12 +2459,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prismjs": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.23.0.tgz", - "integrity": "sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA==", - "requires": { - "clipboard": "^2.0.0" - } + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.24.1.tgz", + "integrity": "sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow==" }, "process": { "version": "0.11.10", @@ -2413,9 +2502,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -2481,44 +2570,15 @@ "strip-json-comments": "~2.0.1" } }, - "react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, - "react-dropdown": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/react-dropdown/-/react-dropdown-1.7.0.tgz", - "integrity": "sha512-zFZ73pgLA32hArpE4j/7DtOEhOMg240XG5QvbAb0/VinGekkHDVIakMyAFUKC5jDz8jqXEltgriqFW9R5iCtPQ==", - "requires": { - "classnames": "^2.2.3" - } - }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "react-tabs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-3.1.1.tgz", - "integrity": "sha512-HpySC29NN1BkzBAnOC+ajfzPbTaVZcSWzMSjk56uAhPC/rBGtli8lTysR4CfPAyEE/hfweIzagOIoJ7nu80yng==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-3.2.2.tgz", + "integrity": "sha512-/o52eGKxFHRa+ssuTEgSM8qORnV4+k7ibW+aNQzKe+5gifeVz8nLxCrsI9xdRhfb0wCLdgIambIpb1qCxaMN+A==", "requires": { "clsx": "^1.1.0", "prop-types": "^15.5.0" @@ -2550,169 +2610,1897 @@ "resolve": "^1.1.6" } }, - "redoc": { - "version": "2.0.0-rc.29", - "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.29.tgz", - "integrity": "sha512-G2PX4QG/XdNKqRvxPpszJdPPRcODJjkuGidjNr4m/eP04aoNjWpytcH1XxZUC7fVW6zBUtJTaktv1HnVF+2GmA==", - "requires": { - "@types/node": "^13.11.1", - "classnames": "^2.2.6", - "decko": "^1.2.0", - "dompurify": "^2.0.8", - "eventemitter3": "^4.0.0", - "json-pointer": "^0.6.0", - "json-schema-ref-parser": "^6.1.0", - "lunr": "2.3.8", - "mark.js": "^8.11.1", - "marked": "^0.7.0", - "memoize-one": "~5.1.1", - "mobx-react": "6.1.5", - "openapi-sampler": "1.0.0-beta.15", - "perfect-scrollbar": "^1.4.0", - "polished": "^3.4.4", - "prismjs": "^1.19.0", - "prop-types": "^15.7.2", - "react-dropdown": "^1.7.0", - "react-tabs": "^3.1.0", - "slugify": "^1.4.0", - "stickyfill": "^1.1.1", - "swagger2openapi": "^5.3.4", - "tslib": "^1.11.1", - "url-template": "^2.0.8" - } - }, "redoc-cli": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.9.8.tgz", - "integrity": "sha512-JW7krzhX+P3qSjTvBMpTRjX/JHrnvHeIWcpZB4RaaC0qTL/DwcgA+IJNpiQ0+jV+bkHaPjHcT0T4pjWh+5VTaw==", + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.12.3.tgz", + "integrity": "sha512-qTBaEfwVqCvqLbuloZ9sMBQA49WfMOQrLVBGiVyT7pNMAjosQCpMyFESqQL8WqVxDzV2olPCZ1L2rG9cuDGOsA==", "requires": { - "chokidar": "^3.0.2", - "handlebars": "^4.1.2", + "chokidar": "^3.5.1", + "handlebars": "^4.7.7", "isarray": "^2.0.5", - "mkdirp": "^0.5.1", - "mobx": "^4.2.0", + "mkdirp": "^1.0.4", + "mobx": "^6.3.2", "node-libs-browser": "^2.2.1", - "react": "^16.8.6", - "react-dom": "^16.8.6", - "redoc": "2.0.0-rc.29", - "styled-components": "^4.3.2", - "tslib": "^1.10.0", - "yargs": "^13.3.0" + "react": "^17.0.1", + "react-dom": "^17.0.1", + "redoc": "2.0.0-rc.56", + "styled-components": "^5.3.0", + "yargs": "^17.0.1" }, "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", + "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", + "requires": { + "@babel/types": "^7.14.2", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-function-name": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", + "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.14.2" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-imports": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, + "@babel/highlight": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", + "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz", + "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==" + }, + "@babel/runtime": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", + "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", + "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.2", + "@babel/helper-function-name": "^7.14.2", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.14.2", + "@babel/types": "^7.14.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", + "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@exodus/schemasafe": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.3.tgz", + "integrity": "sha512-GoXw0U2Qaa33m3eUcxuHnHpNvHjNlLo0gtV091XBpaRINaB4X6FGCG5XKxSFNFiPpugUDqNruHzaqpTdDm4AOg==" + }, + "@redocly/ajv": { + "version": "6.12.4", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-6.12.4.tgz", + "integrity": "sha512-RB6vWO78v6c+SW/3bZh+XZMr4nGdJKAiPGsBALuUZnLuCiQ7aXCT1AuFHqnfS2gyXbEUEj+kw8p4ux8KdAfs3A==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "@redocly/openapi-core": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.50.tgz", + "integrity": "sha512-GuXn4IETxpbRd8dlAQDQPtvqOpbMvPMeC/e5mv5MOXkLIznNk4vjiQVe6QSCbZbCHzzpb2+89B6S7asebPm4Rg==", + "requires": { + "@redocly/ajv": "^6.12.3", + "@types/node": "^14.11.8", + "colorette": "^1.2.0", + "js-levenshtein": "^1.1.6", + "js-yaml": "^3.14.1", + "lodash.isequal": "^4.5.0", + "minimatch": "^3.0.4", + "node-fetch": "^2.6.1", + "yaml-ast-parser": "0.0.43" + }, + "dependencies": { + "@types/node": { + "version": "14.17.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.3.tgz", + "integrity": "sha512-e6ZowgGJmTuXa3GyaPbTGxX17tnThl2aSSizrFthQ7m9uLGZBXiGhgE55cjRZTF5kjZvYn9EOPOMljdjwbflxw==" + } + } + }, + "@redocly/react-dropdown-aria": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@redocly/react-dropdown-aria/-/react-dropdown-aria-2.0.12.tgz", + "integrity": "sha512-feQEZlyBvQsbT/fvpJ4jJ5OLGaUPpnskHYDsY8DGpPymN+HUeDQrqkBEbbKRwMKidFTI2cxk2kJNNTnvdS9jyw==" + }, + "@types/chokidar": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/chokidar/-/chokidar-2.1.3.tgz", + "integrity": "sha512-6qK3xoLLAhQVTucQGHTySwOVA1crHRXnJeLwqK6KIFkkKa2aoMFXh+WEi8PotxDtvN6MQJLyYN9ag9P6NLV81w==", + "requires": { + "chokidar": "*" + } + }, + "@types/handlebars": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@types/handlebars/-/handlebars-4.1.0.tgz", + "integrity": "sha512-gq9YweFKNNB1uFK71eRqsd4niVkXrxHugqWFQkeLRJvGjnxsLr16bYtcsG4tOFwmYi0Bax+wCkbf1reUfdl4kA==", + "requires": { + "handlebars": "*" + } + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" + }, + "@types/mkdirp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-1.0.1.tgz", + "integrity": "sha512-HkGSK7CGAXncr8Qn/0VqNtExEE+PHMWb+qlR1faHMao7ng6P3tAaoWWBMdva0gL5h4zprjIO89GJOLXsMcDm1Q==", + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "15.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.2.tgz", + "integrity": "sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==" + }, "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "babel-plugin-styled-components": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.12.0.tgz", + "integrity": "sha512-FEiD7l5ZABdJPpLssKXjBUJMYqzbcNzBowfXDCdJhOpbhWiewapUaY+LZGT8R4Jg2TwOjGjG4RKeyrO5p9sBkA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-module-imports": "^7.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "core-js": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.14.0.tgz", + "integrity": "sha512-3s+ed8er9ahK+zJpp9ZtuVcDoFzHNiZsPbNAAE4KXgrRHbjSqqNN6xGSXq6bq7TZIbKj4NLrLb6bJ5i+vSVjHA==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" + }, + "css-to-react-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decko": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decko/-/decko-1.2.0.tgz", + "integrity": "sha1-/UPHNelnuAEzBohKVvvmZZlraBc=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "dompurify": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.2.9.tgz", + "integrity": "sha512-+9MqacuigMIZ+1+EwoEltogyWGFTJZWU3258Rupxs+2CGs4H914G9er6pZbsme/bvb5L67o2rade9n21e4RW/w==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "http2-client": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.3.tgz", + "integrity": "sha512-nUxLymWQ9pzkzTmir24p2RtsgruLmhje7lH3hLX1IpwvyTg77fW+1brenPPP3USAR+rQ36p5sTA/x7sjCJVkAA==" + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-pointer": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.1.tgz", + "integrity": "sha512-3OvjqKdCBvH41DLpV4iSt6v2XhZXV1bPB4OROuknvUXI7ZQNofieCPkmE26stEJ9zdQuvIxDHCuYhfgxFAAs+Q==", + "requires": { + "foreach": "^2.0.4" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" + }, + "mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha1-GA8fnr74sOY45BZq1S24eb6y/8U=" + }, + "marked": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", + "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "mobx": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.3.2.tgz", + "integrity": "sha512-xGPM9dIE1qkK9Nrhevp0gzpsmELKU4MFUJRORW/jqxVFIHHWIoQrjDjL8vkwoJYY3C2CeVJqgvl38hgKTalTWg==" + }, + "mobx-react": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-7.2.0.tgz", + "integrity": "sha512-KHUjZ3HBmZlNnPd1M82jcdVsQRDlfym38zJhZEs33VxyVQTvL77hODCArq6+C1P1k/6erEeo2R7rpE7ZeOL7dg==", + "requires": { + "mobx-react-lite": "^3.2.0" + } + }, + "mobx-react-lite": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-3.2.0.tgz", + "integrity": "sha512-q5+UHIqYCOpBoFm/PElDuOhbcatvTllgRp3M1s+Hp5j0Z6XNgDbgqxawJ0ZAUEyKM8X1zs70PCuhAIzX1f4Q/g==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-fetch-h2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", + "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", + "requires": { + "http2-client": "^1.2.5" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node-readfiles": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", + "integrity": "sha1-271K8SE04uY1wkXvk//Pb2BnOl0=", + "requires": { + "es6-promise": "^3.2.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "oas-kit-common": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", + "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", + "requires": { + "fast-safe-stringify": "^2.0.7" + } + }, + "oas-linter": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", + "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", + "requires": { + "@exodus/schemasafe": "^1.0.0-rc.2", + "should": "^13.2.1", + "yaml": "^1.10.0" + } + }, + "oas-resolver": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.5.tgz", + "integrity": "sha512-1po1gzIlTXQqyVNtLFWJuzDm4xxhMCJ8QcP3OarKDO8aJ8AmCtQ67XZ1X+nBbHH4CjTcEsIab1qX5+GIU4f2Gg==", + "requires": { + "node-fetch-h2": "^2.3.0", + "oas-kit-common": "^1.0.8", + "reftools": "^1.1.8", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + } + }, + "oas-schema-walker": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", + "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==" + }, + "oas-validator": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.6.tgz", + "integrity": "sha512-bI+gyr3MiG/4Q5Ibvg0R77skVWS882gFMkxwB1p6qY7Rc4p7EoDezFVfondjYhJDPDnB1ZD7Aqj7AWROAsMBZg==", + "requires": { + "call-me-maybe": "^1.0.1", + "oas-kit-common": "^1.0.8", + "oas-linter": "^3.2.2", + "oas-resolver": "^2.5.5", + "oas-schema-walker": "^1.1.5", + "reftools": "^1.1.8", + "should": "^13.2.1", + "yaml": "^1.10.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "openapi-sampler": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.0.1.tgz", + "integrity": "sha512-qBjxkSLJV183zTTs4fgxtU/iWSLUUu2aH2+5ddWkNhV7p8CSe/mnAgoLkEbMfHtel6yr9NF+vjUWqfM+iiwORQ==", + "requires": { + "@types/json-schema": "^7.0.7", + "json-pointer": "^0.6.1" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "perfect-scrollbar": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.1.tgz", + "integrity": "sha512-MrSImINnIh3Tm1hdPT6bji6fmIeRorVEegQvyUnhqko2hDGTHhmjPefHXfxG/Jb8xVbfCwgmUIlIajERGXjVXQ==" + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + }, + "polished": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/polished/-/polished-4.1.3.tgz", + "integrity": "sha512-ocPAcVBUOryJEKe0z2KLd1l9EBa1r5mSwlKpExmrLzsnIzJo4axsoU9O2BjOTkDGDT4mZ0WFE5XKTlR3nLnZOA==", + "requires": { + "@babel/runtime": "^7.14.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "prismjs": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.24.1.tgz", + "integrity": "sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "react-tabs": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-3.2.2.tgz", + "integrity": "sha512-/o52eGKxFHRa+ssuTEgSM8qORnV4+k7ibW+aNQzKe+5gifeVz8nLxCrsI9xdRhfb0wCLdgIambIpb1qCxaMN+A==", + "requires": { + "clsx": "^1.1.0", + "prop-types": "^15.5.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "picomatch": "^2.2.1" } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "redoc": { + "version": "2.0.0-rc.56", + "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.56.tgz", + "integrity": "sha512-ir2TtQ2d/1FqZWIoLmUZ3qvAAnO6jg8dt0SV75TanmfCXpEABcElXWH3mtUf6qKlvgDVt40diDCVuSvyPPxkAw==", + "requires": { + "@babel/runtime": "^7.14.0", + "@redocly/openapi-core": "^1.0.0-beta.50", + "@redocly/react-dropdown-aria": "^2.0.11", + "@types/node": "^15.6.1", + "classnames": "^2.3.1", + "decko": "^1.2.0", + "dompurify": "^2.2.8", + "eventemitter3": "^4.0.7", + "json-pointer": "^0.6.1", + "lunr": "^2.3.9", + "mark.js": "^8.11.1", + "marked": "^0.7.0", + "memoize-one": "^5.2.1", + "mobx-react": "^7.2.0", + "openapi-sampler": "^1.0.1", + "path-browserify": "^1.0.1", + "perfect-scrollbar": "^1.5.1", + "polished": "^4.1.3", + "prismjs": "^1.24.1", + "prop-types": "^15.7.2", + "react-tabs": "^3.2.2", + "slugify": "~1.4.7", + "stickyfill": "^1.1.1", + "swagger2openapi": "^7.0.6", + "url-template": "^2.0.8" + }, + "dependencies": { + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + } + } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "reftools": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.8.tgz", + "integrity": "sha512-Yvz9NH8uFHzD/AXX82Li1GdAP6FzDBxEZw+njerNBBQv/XHihqsWAjNfXtaq4QD2l4TEZVnp4UbktdYSegAM3g==" + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "locate-path": "^3.0.0" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, - "is-fullwidth-code-point": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "requires": { + "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" + } + }, + "should-equal": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "requires": { + "should-type": "^1.4.0" + } }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=", + "requires": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=" + }, + "should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "should-type": "^1.3.0", + "should-util": "^1.0.0" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==" + }, + "slugify": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.7.tgz", + "integrity": "sha512-tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "stickyfill": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz", + "integrity": "sha1-OUE/7p0CXHSn5ZzuyyN4TMDxfwI=" + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "requires": { - "p-limit": "^2.0.0" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.0" + } + }, + "styled-components": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.0.tgz", + "integrity": "sha512-bPJKwZCHjJPf/hwTJl6TbkSZg/3evha+XPEizrZUGb535jLImwDUdjTNxXqjjaASt2M4qO4AVfoHJNe3XB/tpQ==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "swagger2openapi": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.6.tgz", + "integrity": "sha512-VIT414koe0eJqre0KrhNMUB7QEUfPjGAKesPZZosIKr2rxZ6vpUoersHUFNOsN/OZ5u2zsniCslBOwVcmQZwlg==", + "requires": { + "call-me-maybe": "^1.0.1", + "node-fetch": "^2.6.1", + "node-fetch-h2": "^2.3.0", + "node-readfiles": "^0.2.0", + "oas-kit-common": "^1.0.8", + "oas-resolver": "^2.5.5", + "oas-schema-walker": "^1.1.5", + "oas-validator": "^5.0.6", + "reftools": "^1.1.8", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + } + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "uglify-js": { + "version": "3.13.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.9.tgz", + "integrity": "sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==", + "optional": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } + } + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } } }, + "url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } } }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==" + }, "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", + "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "20.2.7", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", + "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==" } } }, @@ -2790,6 +4578,11 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "scheduler": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", @@ -2799,12 +4592,6 @@ "object-assign": "^4.1.1" } }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", - "optional": true - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -2863,6 +4650,11 @@ } } }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -2967,9 +4759,9 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, "slugify": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.4.tgz", - "integrity": "sha512-N2+9NJ8JzfRMh6PQLrBeDEnVDQZSytE/W4BTC4fNNPmO90Uu58uNwSlIJSs+lmPgWsaAF79WLhVPe5tuy7spjw==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.0.tgz", + "integrity": "sha512-FkMq+MQc5hzYgM86nLuHI98Acwi3p4wX+a5BO9Hhw4JdK4L7WueIiZ4tXEobImPqBz2sVcV0+Mu3GRB30IGang==" }, "source-map": { "version": "0.6.1", @@ -3101,36 +4893,6 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, - "styled-components": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.4.1.tgz", - "integrity": "sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@emotion/is-prop-valid": "^0.8.1", - "@emotion/unitless": "^0.7.0", - "babel-plugin-styled-components": ">= 1", - "css-to-react-native": "^2.2.2", - "memoize-one": "^5.0.0", - "merge-anything": "^2.2.4", - "prop-types": "^15.5.4", - "react-is": "^16.6.0", - "stylis": "^3.5.0", - "stylis-rule-sheet": "^0.0.10", - "supports-color": "^5.5.0" - } - }, - "stylis": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", - "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" - }, - "stylis-rule-sheet": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", - "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" - }, "superagent": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", @@ -3191,169 +4953,128 @@ "integrity": "sha512-5uAjeEqV+zbtalBDXAIrkqUZwsUHYwvBSeGYlFcLj1ERS3jfprL4OPLSSriDoeXCtNmWzpz5aooV2qJW+DqdUQ==" }, "swagger2openapi": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-5.4.0.tgz", - "integrity": "sha512-f5QqfXawiVijhjMtYqWZ55ESHPZFqrPC8L9idhIiuSX8O2qsa1i4MVGtCM3TQF+Smzr/6WfT/7zBuzG3aTgPAA==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-6.2.3.tgz", + "integrity": "sha512-cUUktzLpK69UwpMbcTzjMw2ns9RZChfxh56AHv6+hTx3StPOX2foZjPgds3HlJcINbxosYYBn/D3cG8nwcCWwQ==", "requires": { "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", + "oas-kit-common": "^1.0.8", + "oas-resolver": "^2.4.3", + "oas-schema-walker": "^1.1.5", + "oas-validator": "^4.0.8", + "reftools": "^1.1.5", "yaml": "^1.8.3", - "yargs": "^12.0.5" + "yargs": "^15.3.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "color-convert": "^2.0.1" } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "requires": { - "locate-path": "^3.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "color-name": "~1.1.4" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "oas-resolver": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", + "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", "requires": { - "p-limit": "^2.0.0" + "node-fetch-h2": "^2.3.0", + "oas-kit-common": "^1.0.8", + "reftools": "^1.1.9", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + }, + "dependencies": { + "yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + } } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "oas-schema-walker": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", + "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==" }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "oas-validator": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-4.0.8.tgz", + "integrity": "sha512-bIt8erTyclF7bkaySTtQ9sppqyVc+mAlPi7vPzCLVHJsL9nrivQjc/jHLX/o+eGbxHd6a6YBwuY/Vxa6wGsiuw==", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "ajv": "^5.5.2", + "better-ajv-errors": "^0.6.7", + "call-me-maybe": "^1.0.1", + "oas-kit-common": "^1.0.8", + "oas-linter": "^3.1.3", + "oas-resolver": "^2.4.3", + "oas-schema-walker": "^1.1.5", + "reftools": "^1.1.5", + "should": "^13.2.1", + "yaml": "^1.8.3" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } + "reftools": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", + "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==" }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "requires": { - "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" - } + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" } } }, @@ -3397,19 +5118,13 @@ } }, "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "requires": { "setimmediate": "^1.0.4" } }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", - "optional": true - }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -3433,11 +5148,6 @@ "is-number": "^7.0.0" } }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" - }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", @@ -3653,9 +5363,9 @@ } }, "ws": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", - "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==" + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==" }, "xdg-basedir": { "version": "3.0.0", @@ -3673,9 +5383,9 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, "yallist": { "version": "2.1.2", diff --git a/package.json b/package.json index 332cd952..d38a1963 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "dependencies": { "@ga4gh/gh-openapi-docs": "^0.2.1", "@redocly/openapi-cli": "^1.0.0-beta.4", - "redoc-cli": "^0.9.8" + "redoc-cli": "^0.12.3" }, "devDependencies": {}, "scripts": { From 6994259c4b12feed4444f437881444222b61d4d1 Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Wed, 25 Aug 2021 13:44:00 -0400 Subject: [PATCH 088/102] Migrate gh actions (#201) * Create main.yml * Remove travis * upgrade to 14 test --- .github/workflows/main.yml | 30 ++++++++++++++++++++++++++++++ .travis.yml | 15 --------------- github_deploy_key.enc | Bin 3248 -> 0 bytes scripts/update-ghpages.sh | 13 +++++-------- 4 files changed, 35 insertions(+), 23 deletions(-) create mode 100644 .github/workflows/main.yml delete mode 100644 .travis.yml delete mode 100644 github_deploy_key.enc diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..0748bdbe --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,30 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the workflow will run +on: [push] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + checkLinks: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: 14.x + - run: npm i -g markdown-link-check + - run: markdown-link-check ./README.md + buildPage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: 14.x + - run: npm ci + - run: npx gh-openapi-docs + - run: bash scripts/update-ghpages.sh diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 61af9253..00000000 --- a/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -dist: xenial -language: node_js -node_js: - - "12" - -jobs: - include: - - stage: check-links - install: npm i -g markdown-link-check - script: markdown-link-check ./README.md - - stage: build_pages - install: npm ci - script: npx gh-openapi-docs - after_success: - - bash scripts/update-ghpages.sh diff --git a/github_deploy_key.enc b/github_deploy_key.enc deleted file mode 100644 index 010bb9feed50f1dd66e36e59f9ad4fb8a0c2da82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3248 zcmV;h3{Ue3PJ&RjfjrV19A>9EDI68X9@^6T4gx=1WS6Rt6(Vg$L$mkTWvZndTCeD( z6di~UXhkWHF0q@AE|_w=momVWD+Z?1kK?utu=4Vg&#v5hCx4x6ccDjtsyT?~&)5_mw`$xEG@>;?H zCctZt)#P6aUl{LpxCF$6VV0NwA{0fNhf$?Sy_#h*RY(6_JOj2Tf3A4Gg!i2hi#SYw zFpqFIkWWnF!iOQp4DvWI>%aTLK-4c}dZOJ1+^SEZoqb;>?gh>}Nc)A$NGoVf-`uCn z+hO6#{%}jUTSr(36LpfQVtR5(&SHU4RJo!hHdyTwKlu1ny~1fqT^% zm&No9C*=IuA|k$+WAI*>cJyWP$oESxE2`Fgl+7h2^v#>QOL-r{*BH!c$X7{@7w^oh z7IBqLrDpjeHmkTYFdhp=cQx&j7?#Ol_A1)l?`|G1cyantl0gL_a#qX>vZJvW;DJn&vdUrPU;Fm&SS@LjS|j?dn4 zMLsvsl)eLWt^%u5&6jF>aA~eZvy{@wtyRg;>efU6+8uJfbzMvAx#_eke2fnY*WP1! z&j$9SU|kKxQe|pF;2m3F=>;vuCcv_Kn|u`bmKIZ$%1j8Sb%|QscC@iW%#C@9Sui@e zIoRzL|BcF;{onzobl_+(Zk33wMt8b8&QP@8w#Gngn8Gr(kzgLJ#22aa zf2r__yp3w{6gJzv=?4pv!e;{TlOLM*oWsAWHV#xOA>fh`C7hT)6K@2lkV&Fjch}2N z%Q`z``YxvMiieHiEA!U-%7JQSu9-Qd!y~PrdyN_s`}t)W9R&_|GFn3RA+$`5K^Y;a zzTOi^Pd8yy1q-Obf1&W)M(-$OM!m&ad0hn~cil$b)wM|antHzINL3>?p+$D&rCP>^ z(Dw)?{|&NnfQdxAJU%-_xb&XD;C1*4<<-0@xC|2jM1bS5as@t8eU#jqyZ3xrwuYOx z%RYlJbYRb<)v4*WqF+;)b4@d(Rd4BR=OCYYjQ~gGDsdhv7vc z+sl=5?34Eyf(`m@V_L1=siHDq%P2aVd&s6k2vM}Cp*OEa;xTDmsK*REvfwAG-ntjk zP=O3QbD32Rd=2dB$2oL*W43-*5V6Tf8(_%IM63PP)G_C4=qT7|}Vu9_-I$ zGa{g7!7n$f!|UFPe}DS;Punfc_jW5kaDuacxRBZ0xYrCRLi<(@Jzp&#sbd=Q188uH z6qoEp={PWkMgH-9n@|J^%NS73Y~+bY`V$jcV0 ztx8N$%jL827$0ywDlN!5!)43;B=#tm;XFz^@Mt?~3dQ+Wy0W6E9#OKmH_>X>yy>}< zs7p@BOjT2_#{fL(1zjf#Jf>|5J;Uq}@Oc-+sY*2!|GJOnfdHpv$~73qg7;r&x6UMT z_j^MJH#u4a1={i4ijO%9$lab`VMRb!;}246m6A&#oX$&M4T;z%;SpE!C2#W>XJDsk z{7HPg^nd{w6uml95uJ#nF)|M(*mb@efbHj*f{j_I<0p5+Z5JDeVVXd)53go_5a6YH zZ`>1ia=f9OP-WGRdub;utb;D%MY{U0B9+mbHa+O#a7Azjf{QZfB+GCKi{u{Vsg~^> z5=jDsST_7YM%WL+Rqy*lHnXPr8_FxPqY@V+ZNt;v49pj}UcRBD{bDApuMypD_tzE0 zZ%tiEBuz|Z#@4VQTV1s-VQU!eZ~@mj5~$6>xbQC})D-MBt20}%V`#a*8*G!Rkvcij zh7zsk7si4>#$_@*J@OPsmES$8Nb4&i{~Ao^eB?u>_u6GrH5_h0<$^Fvu@w_IMZQ0; z48^ljna4Dl>Fr_u9{p4?mO)W8%shY{Q5hV^b@+nY;j{7Lb9e{v0$FLsyb#!gNzsR& z2ORYVMnYMLr3@~Up-+=K@bCU8g;4fjXmZKz<^IU-P_Us=Z%he@D2Y!Rd9!+BoPChX z$wLrgVbqks_voao8%tw02DWC{qjhEirgXdlKTap-nJbMhR1;Dm4lzD~mPX}~ueelk zRg-P-3v5C+iAAm?SsfOyQpxD%{)K~bO1TXJ4W&*_!D5j(6}jcc{;0c78Ux&CGW{i# zXG32S%i(Sc=wO{W)Pa`b{TPXDfR;DXF{F^!} z#G`dUQ4NDLyjpoxU5G3DrigBDTz?OB5tu|m@N_k48m6GwHEb7nmA9J&78$ts_)9Ox zC|C(Qs~dkgUF`6GM8m3>OTMSjdNKEAnA1yzea?CA1sS0MVM1Eu<|D=o+Db=q2i1zJO!)``uR6Z0*drc!zgh39gUjZmXD zzkqY~{p7SDD==DiW(9p?oaPRN;RNyFPFR()1xFMya%MD>H@o~kqo;gnU240YYo3&K z3JU!?A8{oLk_sDOHCPj`9vn5C@aK5(>_f=`@`QS{LMK);(QojR*2D;BX5U_kVWI{= z=_pZy0ptHv`_Gs2d-w8OCU@s$dbikd(*LbNeuQfW!9t%Eo_SMfBWBNe{gvMHonZIF zh$i0*DB4j31vh!!Nhz!%eA8%FSO17|zgST`F2#Zei0VD1OPQZa_rCm;su=W86Ikz@ z@DahCL6>h;(4i9)rxMITG2xVWjycKH43-+ucUgT{>{}h|iO_$_nOq46sb?Q%iJ&zM zjT*R|zh-2JnX#kQ>I9CUGM4m`G;d1@s;$=1VtlV*Bzc3YAukPCtu%Ekg<+yALPaL@ zcb~bYP!1(c+-{l{N@B9u>G6&s{uM@Yg|k zLesDjo)A5Yx<6XQ+k#x~dm$s%>QB$IAFU}hvfrb7&#Ta>GH|dIC!dMx> zW$cB6D>;E^$gToqAs*$=i$>QZn{u?><+Tk)LWq}LpHVVRcxGu^Q}zIUrAuwUhMu@y z$Noj>7gc+~$YIMIs%Y Date: Wed, 25 Aug 2021 14:12:09 -0400 Subject: [PATCH 089/102] Uniqueg add snakemake (#200) * Snakemake support * npm audit fix (#198) * Update openapi.yaml Co-authored-by: Alex Kanitz Co-authored-by: Gary Luu --- README.md | 7 +- openapi/openapi.yaml | 22 +- package-lock.json | 3230 ++++++++++++++++++++++++++++++++---------- package.json | 2 +- 4 files changed, 2487 insertions(+), 774 deletions(-) diff --git a/README.md b/README.md index 262aeab0..805d6df9 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Schemas for the GA4GH Tool Registry API ======================================= -This repository is the home for the schema for the GA4GH Tool Registry API. The goal of the API is to provide a standardized way to describe the availability of tools and workflows. In this way, we can have multiple repositories that share Docker-based tools and WDL/CWL/Nextflow/Galaxy-based workflows and have a consistent way to interact, search, and retrieve information from these various registries. The end goal is to make it much easier to share scientific tools and workflows, enhancing our ability to make research reproducible, sharable, and transparent. +This repository is the home for the schema for the GA4GH Tool Registry API. The goal of the API is to provide a standardized way to describe the availability of tools and workflows. In this way, we can have multiple repositories that share Docker-based tools and WDL/CWL/Nextflow/Galaxy/Snakemake-based workflows and have a consistent way to interact, search, and retrieve information from these various registries. The end goal is to make it much easier to share scientific tools and workflows, enhancing our ability to make research reproducible, sharable, and transparent. **See the human-readable [Reference Documentation](https://ga4gh.github.io/tool-registry-service-schemas). You can also explore the specification in the [Swagger Editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh/tool-registry-schemas/develop/openapi/openapi.yaml).** *Manually load the JSON if working from a non-develop branch version.* Preview documentation from the [gh-openapi-docs](https://github.com/ga4gh/gh-openapi-docs) for the development branch [here](https://ga4gh.github.io/tool-registry-service-schemas/preview/develop/docs/index.html) @@ -26,7 +26,7 @@ The Containers & Workflows working group is an informal, multi-vendor working gr What is the Tool Registry API Schema? ------------------------------------- -This is the home of the schema for the GA4GH Tool Registry API. The GA4GH Tool Registry API is a standard for listing and describing available tools (both stand-alone, Docker-based tools as well as workflows in CWL, WDL, Nextflow, or Galaxy) in a given registry. This defines a minimal, common API describing tools that we propose for support by multiple tool/workflow registries like [Dockstore](https://www.dockstore.org/), [BioContainers](https://biocontainers.pro), and [Agora](https://github.com/broadinstitute/agora) for the purposes of exchange, indexing, and searching. +This is the home of the schema for the GA4GH Tool Registry API. The GA4GH Tool Registry API is a standard for listing and describing available tools (both stand-alone, Docker-based tools as well as workflows in CWL, WDL, Nextflow, Galaxy or Snakemake) in a given registry. This defines a minimal, common API describing tools that we propose for support by multiple tool/workflow registries like [Dockstore](https://www.dockstore.org/), [BioContainers](https://biocontainers.pro), and [Agora](https://github.com/broadinstitute/agora) for the purposes of exchange, indexing, and searching. This repo uses the [HubFlow](https://datasift.github.io/gitflow/) scheme which is closely based on [GitFlow](https://nvie.com/posts/a-successful-git-branching-model/). In practice, this means that the master branch contains the last production release of the schema whereas the develop branch contains the latest development changes which will end up in the next production release. As of July 2019, this means that the 1.0.0 version is described on master whereas the develop branch contains the 2.0.0-beta.3 version which will evolve into the 2.0.0 production release. @@ -36,7 +36,8 @@ Our current proposal is to start with a read-only API due to potentially differe Key features of the current API proposal: * read-only API -* May serve up CWL, WDL or Nextflow to describe a tool or represent a workflow depending on the tool/workflow submitter +* May serve up CWL, WDL, Nextflow, Galaxy or Snakemake to describe a tool or represent a workflow + depending on the tool/workflow submitter * ID: globally unique across systems and also identifies the system that it came from (ex: 123456323@agora.broadinstitute.org ) diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 765b0366..3b489666 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -4,15 +4,15 @@ info: description: Proposed API for GA4GH (Global Alliance for Genomics & Health) tool repositories. A tool consists of a set of container images that are paired with a set of documents. Examples of documents include CWL (Common Workflow - Language), WDL (Workflow Description Language), NFL (Nextflow), or GXFORMAT2 - (Galaxy) that describe how to use those images and a set of specifications - for those images (examples are Dockerfiles or Singularity recipes) that - describe how to reproduce those images in the future. We use the following - terminology, a "container image" describes a container as stored at rest on - a filesystem, a "tool" describes one of the triples as described above. In - practice, examples of "tools" include CWL CommandLineTools, CWL Workflows, - WDL workflows, and Nextflow workflows that reference containers in formats - such as Docker or Singularity. + Language), WDL (Workflow Description Language), NFL (Nextflow), GXFORMAT2 + (Galaxy) or SMK (Snakemake) that describe how to use those images and a set + of specifications for those images (examples are Dockerfiles or Singularity + recipes) that describe how to reproduce those images in the future. We use + the following terminology, a "container image" describes a container as + stored at rest on a filesystem, a "tool" describes one of the triples as + described above. In practice, examples of "tools" include CWL + CommandLineTools, CWL Workflows, WDL workflows, and Nextflow workflows that + reference containers in formats such as Docker or Singularity. version: 2.0.1 tags: - name: GA4GH @@ -208,7 +208,7 @@ paths: summary: Get the tool descriptor for the specified tool operationId: toolsIdVersionsVersionIdTypeDescriptorGet description: Returns the descriptor for the specified tool (examples include - CWL, WDL, Nextflow, or Galaxy documents). + CWL, WDL, Nextflow, Galaxy, or Snakemake documents). tags: - GA4GH parameters: @@ -713,6 +713,7 @@ components: - WDL - NFL - GALAXY + - SMK DescriptorTypeWithPlain: type: string description: The output type of the descriptor. Plain types return the raw text while the "non-plain" types return the application/json @@ -725,6 +726,7 @@ components: - PLAIN_WDL - PLAIN_NFL - PLAIN_GALAXY + - PLAIN_SMK FileWrapper: type: object description: > diff --git a/package-lock.json b/package-lock.json index df2638e4..c26513f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,11 +13,11 @@ } }, "@babel/generator": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", - "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", + "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", "requires": { - "@babel/types": "^7.10.5", + "@babel/types": "^7.15.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, @@ -30,45 +30,53 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.14.5" } }, "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.14.5" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", + "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "requires": { + "@babel/types": "^7.14.5" } }, "@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.14.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", - "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.14.5" } }, "@babel/helper-validator-identifier": { @@ -87,9 +95,9 @@ } }, "@babel/parser": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", - "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==" + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz", + "integrity": "sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==" }, "@babel/runtime": { "version": "7.10.5", @@ -100,49 +108,103 @@ } }, "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + } } }, "@babel/traverse": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", - "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.10.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.10.4", - "@babel/parser": "^7.10.5", - "@babel/types": "^7.10.5", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", + "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.15.0", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.15.0", + "@babel/types": "^7.15.0", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } } } }, "@babel/types": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", - "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", + "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", + "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", + "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==" + } } }, "@emotion/is-prop-valid": { @@ -158,6 +220,11 @@ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, "@emotion/unitless": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", @@ -203,7 +270,222 @@ "simple-websocket": "^8.1.1", "xmlhttprequest": "^1.8.0", "yaml-ast-parser": "0.0.43" + }, + "dependencies": { + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "merge-deep": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", + "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", + "requires": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + } + } + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "redoc-cli": { + "version": "0.9.13", + "resolved": "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.9.13.tgz", + "integrity": "sha512-6zNhK7KiiYPGaMIFISsIkgAJaXTY0n8hY3xGAeQuS52GRm/DR5bA1Jna52GUzWM/LXgyp6HSBvYucd+wmOQYCQ==", + "requires": { + "chokidar": "^3.4.1", + "handlebars": "^4.7.6", + "isarray": "^2.0.5", + "mkdirp": "^1.0.4", + "mobx": "^6.0.1", + "node-libs-browser": "^2.2.1", + "react": "^16.13.1", + "react-dom": "^16.13.1", + "redoc": "2.0.0-rc.45", + "styled-components": "^5.1.1", + "tslib": "^2.0.0", + "yargs": "^15.4.1" + }, + "dependencies": { + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "mobx": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.3.2.tgz", + "integrity": "sha512-xGPM9dIE1qkK9Nrhevp0gzpsmELKU4MFUJRORW/jqxVFIHHWIoQrjDjL8vkwoJYY3C2CeVJqgvl38hgKTalTWg==" + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "redoc": { + "version": "2.0.0-rc.45", + "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.45.tgz", + "integrity": "sha512-yOgyXFybwBItvY+y9cFEA6X0W6KDdnkdeWK8LMkTxWN4HUecRwPFYPRdzx+SvDUb8ICh4PDtfyDU3Fo1e9N8Iw==", + "requires": { + "@redocly/react-dropdown-aria": "^2.0.11", + "@types/node": "^13.11.1", + "classnames": "^2.2.6", + "decko": "^1.2.0", + "dompurify": "^2.0.12", + "eventemitter3": "^4.0.4", + "json-pointer": "^0.6.0", + "json-schema-ref-parser": "^6.1.0", + "lunr": "2.3.8", + "mark.js": "^8.11.1", + "marked": "^0.7.0", + "memoize-one": "~5.1.1", + "mobx-react": "^6.2.2", + "openapi-sampler": "^1.0.0-beta.16", + "perfect-scrollbar": "^1.4.0", + "polished": "^3.6.5", + "prismjs": "^1.20.0", + "prop-types": "^15.7.2", + "react-tabs": "^3.1.1", + "slugify": "^1.4.4", + "stickyfill": "^1.1.1", + "swagger2openapi": "^6.2.1", + "tslib": "^2.0.0", + "url-template": "^2.0.8" + } + }, + "styled-components": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.0.tgz", + "integrity": "sha512-bPJKwZCHjJPf/hwTJl6TbkSZg/3evha+XPEizrZUGb535jLImwDUdjTNxXqjjaASt2M4qO4AVfoHJNe3XB/tpQ==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + } } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -279,6 +561,11 @@ } } }, + "@redocly/react-dropdown-aria": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@redocly/react-dropdown-aria/-/react-dropdown-aria-2.0.12.tgz", + "integrity": "sha512-feQEZlyBvQsbT/fvpJ4jJ5OLGaUPpnskHYDsY8DGpPymN+HUeDQrqkBEbbKRwMKidFTI2cxk2kJNNTnvdS9jyw==" + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -297,10 +584,15 @@ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" + }, "@types/node": { - "version": "13.13.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.14.tgz", - "integrity": "sha512-Az3QsOt1U/K1pbCQ0TXGELTuTkPLOiFIQf3ILzbOyo0FqgV9SxRnxbxM5QlAveERZMHpZY+7u3Jz2tKyl+yg6g==" + "version": "13.13.52", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz", + "integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==" }, "ajv": { "version": "5.5.2", @@ -392,19 +684,20 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -446,9 +739,9 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "babel-plugin-styled-components": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.10.7.tgz", - "integrity": "sha512-MBMHGcIA22996n9hZRf/UJLVVgkEOITuR2SvjHLb5dSTUyR4ZRGn+ngITapes36FI3WLxZHfRhkA1ffHxihOrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.13.2.tgz", + "integrity": "sha512-Vb1R3d4g+MUfPQPVDMCGjm3cDocJEUTR7Xq7QS95JWWeksN1wdFRYpD2kulDgI3Huuaf1CZd+NK4KQmqUFh5dA==", "requires": { "@babel/helper-annotate-as-pure": "^7.0.0", "@babel/helper-module-imports": "^7.0.0", @@ -467,9 +760,9 @@ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "better-ajv-errors": { "version": "0.6.7", @@ -496,9 +789,9 @@ "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" }, "bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" }, "boxen": { "version": "3.2.0", @@ -607,31 +900,24 @@ } }, "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "requires": { - "bn.js": "^4.1.0", + "bn.js": "^5.0.0", "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - } } }, "browserify-sign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", - "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", "requires": { "bn.js": "^5.1.1", "browserify-rsa": "^4.0.1", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.2", + "elliptic": "^6.5.3", "inherits": "^2.0.4", "parse-asn1": "^5.1.5", "readable-stream": "^3.6.0", @@ -750,26 +1036,15 @@ } }, "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" }, "cli-boxes": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==" }, - "clipboard": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", - "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", - "optional": true, - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -815,11 +1090,6 @@ "resolved": "https://registry.npmjs.org/code-error-fragment/-/code-error-fragment-0.0.230.tgz", "integrity": "sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==" }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -900,18 +1170,18 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "requires": { "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "elliptic": "^6.5.3" }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -940,18 +1210,6 @@ "sha.js": "^2.4.8" } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", @@ -981,13 +1239,13 @@ "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" }, "css-to-react-native": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-2.3.2.tgz", - "integrity": "sha512-VOFaeZA053BqvvvqIA8c9n0+9vFppVBAHCp6JgFTtTMU3Mzi+XnelJ9XC9ul3BqFzZyQ5N+H0SnwsWT2Ebchxw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", "requires": { "camelize": "^1.0.0", "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^3.3.0" + "postcss-value-parser": "^4.0.2" } }, "debug": { @@ -1031,12 +1289,6 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", - "optional": true - }, "des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", @@ -1057,9 +1309,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -1069,14 +1321,14 @@ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" }, "dompurify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.0.12.tgz", - "integrity": "sha512-Fl8KseK1imyhErHypFPA8qpq9gPzlsJ/EukA6yk9o0gX23p1TzC+rh9LqNg1qvErRTc0UNMYlKxEGSfSh43NDg==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.1.tgz", + "integrity": "sha512-xGWt+NHAQS+4tpgbOAI08yxW0Pr256Gu/FNE2frZVTbgrBUn8M7tz7/ktS/LZ2MHeGqz6topj0/xY+y8R5FBFw==" }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", + "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "requires": { "is-obj": "^1.0.0" } @@ -1087,23 +1339,23 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", + "bn.js": "^4.11.9", + "brorand": "^1.1.0", "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -1130,6 +1382,11 @@ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=" }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1141,14 +1398,14 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, "events": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, "evp_bytestokey": { "version": "1.0.3", @@ -1159,20 +1416,6 @@ "safe-buffer": "^5.1.1" } }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "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" - } - }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -1296,9 +1539,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { "is-glob": "^4.0.1" } @@ -1316,15 +1559,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "optional": true, - "requires": { - "delegate": "^3.1.2" - } - }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -1362,9 +1596,9 @@ } }, "handlebars": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", - "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "requires": { "minimist": "^1.2.5", "neo-async": "^2.6.0", @@ -1412,6 +1646,14 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -1428,9 +1670,9 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "import-lazy": { "version": "2.1.0", @@ -1457,20 +1699,15 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -1560,11 +1797,6 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, - "is-what": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.10.0.tgz", - "integrity": "sha512-U4RYCXNOmATQHlOPlOCHCfXyKEFIPqvyaKDqYRuLbD6EYKcTTfc3YXkAYjzOVxO3zt34L+Wh2feIyWrYiZ7kng==" - }, "is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", @@ -1615,9 +1847,9 @@ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "json-pointer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.0.tgz", - "integrity": "sha1-jlAFUKaqxUZKRzN32leqbMIoKNc=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.1.tgz", + "integrity": "sha512-3OvjqKdCBvH41DLpV4iSt6v2XhZXV1bPB4OROuknvUXI7ZQNofieCPkmE26stEJ9zdQuvIxDHCuYhfgxFAAs+Q==", "requires": { "foreach": "^2.0.4" } @@ -1710,14 +1942,6 @@ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "requires": { - "invert-kv": "^2.0.0" - } - }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -1742,9 +1966,9 @@ } }, "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.isequal": { "version": "4.5.0", @@ -1786,14 +2010,6 @@ "pify": "^3.0.0" } }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "requires": { - "p-defer": "^1.0.0" - } - }, "mark.js": { "version": "8.11.1", "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", @@ -1814,39 +2030,11 @@ "safe-buffer": "^5.1.2" } }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, "memoize-one": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==" }, - "merge-anything": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/merge-anything/-/merge-anything-2.4.4.tgz", - "integrity": "sha512-l5XlriUDJKQT12bH+rVhAHjwIuXWdAIecGwsYjv2LJo+dA1AeRTmeQS+3QBpO6lEthBMDi2IUMpLC1yyRvGlwQ==", - "requires": { - "is-what": "^3.3.1" - } - }, - "merge-deep": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", - "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", - "requires": { - "arr-union": "^3.1.0", - "clone-deep": "^0.2.4", - "kind-of": "^3.0.2" - } - }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -1862,9 +2050,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -1886,11 +2074,6 @@ "mime-db": "1.44.0" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -1943,23 +2126,18 @@ "minimist": "^1.2.5" } }, - "mobx": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-4.15.4.tgz", - "integrity": "sha512-nyuHPqmKnVOnbvkjR8OrijBtovxAHYC+JU8/qBqvBw4Dez/n+zzxqNHbZNFy7/07+wwc/Qz7JS9WSfy1LcYISA==" - }, "mobx-react": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-6.1.5.tgz", - "integrity": "sha512-EfWoXmGE2CfozH4Xirb65+il1ynHFCmxBSUabMSf+511YfjVs6QRcCrHkiVw+Il8iWp1gIyfa9qKkUgbDA9/2w==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-6.3.1.tgz", + "integrity": "sha512-IOxdJGnRSNSJrL2uGpWO5w9JH5q5HoxEqwOF4gye1gmZYdjoYkkMzSGMDnRCUpN/BNzZcFoMdHXrjvkwO7KgaQ==", "requires": { - "mobx-react-lite": "^1.4.2" + "mobx-react-lite": "^2.2.0" } }, "mobx-react-lite": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-1.5.2.tgz", - "integrity": "sha512-PyZmARqqWtpuQaAoHF5pKX7h6TKNLwq6vtovm4zZvG6sEbMRHHSqioGXSeQbpRmG8Kw8uln3q/W1yMO5IfL5Sg==" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-2.2.2.tgz", + "integrity": "sha512-2SlXALHIkyUPDsV4VTKVR9DW7K3Ksh1aaIv3NrNJygTbhXe2A9GrcKHZ2ovIiOp/BXilOcTYemfHHZubP431dg==" }, "ms": { "version": "2.1.2", @@ -1976,15 +2154,10 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-fetch-h2": { "version": "2.3.0", @@ -1994,72 +2167,6 @@ "http2-client": "^1.2.5" } }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, "node-readfiles": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", @@ -2074,9 +2181,9 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, "npm-run-path": { "version": "2.0.2", @@ -2086,11 +2193,6 @@ "path-key": "^2.0.0" } }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, "oas-kit-common": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", @@ -2164,11 +2266,12 @@ } }, "openapi-sampler": { - "version": "1.0.0-beta.15", - "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.0.0-beta.15.tgz", - "integrity": "sha512-wUD/vD3iBHKik/sME3uwUu4X3HFA53rDrPcVvLzgEELjHLbnTpSYfm4Jo9qZT1dPfBRowAnrF/VRQfOjL5QRAw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.1.0.tgz", + "integrity": "sha512-/LhZYKNBWphLEpbAG5BdpBZbIbmLgC4vTiTj8N/MV0LF9ptmKOiJ2nETVlacNjXHt7iqDgZDELJCIoZ3q5ZG6A==", "requires": { - "json-pointer": "^0.6.0" + "@types/json-schema": "^7.0.7", + "json-pointer": "^0.6.1" } }, "os-browserify": { @@ -2176,36 +2279,16 @@ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" - }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -2251,13 +2334,12 @@ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", "requires": { - "asn1.js": "^4.0.0", + "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", "pbkdf2": "^3.0.3", "safe-buffer": "^5.1.1" @@ -2307,14 +2389,14 @@ } }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -2324,9 +2406,9 @@ } }, "perfect-scrollbar": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz", - "integrity": "sha512-NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA==" + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.2.tgz", + "integrity": "sha512-McHAinFkyzKbBZrFtb4MT2mxkehp15KvOX/UrjB8C5EZZXHTHgyETo5IGFYtHRTI2Pb2bsV0OE0YnkjT9Cw3aw==" }, "picomatch": { "version": "2.2.2", @@ -2339,13 +2421,23 @@ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, "polished": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/polished/-/polished-3.6.5.tgz", - "integrity": "sha512-VwhC9MlhW7O5dg/z7k32dabcAFW1VI2+7fSe8cE/kXcfL7mVdoa5UxciYGW2sJU78ldDLT6+ROEKIZKFNTnUXQ==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/polished/-/polished-3.7.2.tgz", + "integrity": "sha512-pQKtpZGmsZrW8UUpQMAnR7s3ppHeMQVNyMDKtUyKwuvDmklzcEyM5Kllb3JyE/sE/x7arDmyd35i+4vp99H6sQ==", "requires": { - "@babel/runtime": "^7.9.2" - } - }, + "@babel/runtime": "^7.12.5" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.15.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.3.tgz", + "integrity": "sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, "portfinder": { "version": "1.0.27", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.27.tgz", @@ -2357,9 +2449,9 @@ } }, "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" }, "prepend-http": { "version": "2.0.0", @@ -2367,12 +2459,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prismjs": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.23.0.tgz", - "integrity": "sha512-c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA==", - "requires": { - "clipboard": "^2.0.0" - } + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.24.1.tgz", + "integrity": "sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow==" }, "process": { "version": "0.11.10", @@ -2413,9 +2502,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -2481,44 +2570,15 @@ "strip-json-comments": "~2.0.1" } }, - "react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, - "react-dropdown": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/react-dropdown/-/react-dropdown-1.7.0.tgz", - "integrity": "sha512-zFZ73pgLA32hArpE4j/7DtOEhOMg240XG5QvbAb0/VinGekkHDVIakMyAFUKC5jDz8jqXEltgriqFW9R5iCtPQ==", - "requires": { - "classnames": "^2.2.3" - } - }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "react-tabs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-3.1.1.tgz", - "integrity": "sha512-HpySC29NN1BkzBAnOC+ajfzPbTaVZcSWzMSjk56uAhPC/rBGtli8lTysR4CfPAyEE/hfweIzagOIoJ7nu80yng==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-3.2.2.tgz", + "integrity": "sha512-/o52eGKxFHRa+ssuTEgSM8qORnV4+k7ibW+aNQzKe+5gifeVz8nLxCrsI9xdRhfb0wCLdgIambIpb1qCxaMN+A==", "requires": { "clsx": "^1.1.0", "prop-types": "^15.5.0" @@ -2550,169 +2610,1897 @@ "resolve": "^1.1.6" } }, - "redoc": { - "version": "2.0.0-rc.29", - "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.29.tgz", - "integrity": "sha512-G2PX4QG/XdNKqRvxPpszJdPPRcODJjkuGidjNr4m/eP04aoNjWpytcH1XxZUC7fVW6zBUtJTaktv1HnVF+2GmA==", - "requires": { - "@types/node": "^13.11.1", - "classnames": "^2.2.6", - "decko": "^1.2.0", - "dompurify": "^2.0.8", - "eventemitter3": "^4.0.0", - "json-pointer": "^0.6.0", - "json-schema-ref-parser": "^6.1.0", - "lunr": "2.3.8", - "mark.js": "^8.11.1", - "marked": "^0.7.0", - "memoize-one": "~5.1.1", - "mobx-react": "6.1.5", - "openapi-sampler": "1.0.0-beta.15", - "perfect-scrollbar": "^1.4.0", - "polished": "^3.4.4", - "prismjs": "^1.19.0", - "prop-types": "^15.7.2", - "react-dropdown": "^1.7.0", - "react-tabs": "^3.1.0", - "slugify": "^1.4.0", - "stickyfill": "^1.1.1", - "swagger2openapi": "^5.3.4", - "tslib": "^1.11.1", - "url-template": "^2.0.8" - } - }, "redoc-cli": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.9.8.tgz", - "integrity": "sha512-JW7krzhX+P3qSjTvBMpTRjX/JHrnvHeIWcpZB4RaaC0qTL/DwcgA+IJNpiQ0+jV+bkHaPjHcT0T4pjWh+5VTaw==", + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.12.3.tgz", + "integrity": "sha512-qTBaEfwVqCvqLbuloZ9sMBQA49WfMOQrLVBGiVyT7pNMAjosQCpMyFESqQL8WqVxDzV2olPCZ1L2rG9cuDGOsA==", "requires": { - "chokidar": "^3.0.2", - "handlebars": "^4.1.2", + "chokidar": "^3.5.1", + "handlebars": "^4.7.7", "isarray": "^2.0.5", - "mkdirp": "^0.5.1", - "mobx": "^4.2.0", + "mkdirp": "^1.0.4", + "mobx": "^6.3.2", "node-libs-browser": "^2.2.1", - "react": "^16.8.6", - "react-dom": "^16.8.6", - "redoc": "2.0.0-rc.29", - "styled-components": "^4.3.2", - "tslib": "^1.10.0", - "yargs": "^13.3.0" + "react": "^17.0.1", + "react-dom": "^17.0.1", + "redoc": "2.0.0-rc.56", + "styled-components": "^5.3.0", + "yargs": "^17.0.1" }, "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/generator": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", + "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", + "requires": { + "@babel/types": "^7.14.2", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-function-name": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", + "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.14.2" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-imports": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, + "@babel/highlight": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", + "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz", + "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==" + }, + "@babel/runtime": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", + "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", + "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.2", + "@babel/helper-function-name": "^7.14.2", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.14.2", + "@babel/types": "^7.14.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", + "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, + "@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "requires": { + "@emotion/memoize": "0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" + }, + "@emotion/stylis": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", + "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@exodus/schemasafe": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.3.tgz", + "integrity": "sha512-GoXw0U2Qaa33m3eUcxuHnHpNvHjNlLo0gtV091XBpaRINaB4X6FGCG5XKxSFNFiPpugUDqNruHzaqpTdDm4AOg==" + }, + "@redocly/ajv": { + "version": "6.12.4", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-6.12.4.tgz", + "integrity": "sha512-RB6vWO78v6c+SW/3bZh+XZMr4nGdJKAiPGsBALuUZnLuCiQ7aXCT1AuFHqnfS2gyXbEUEj+kw8p4ux8KdAfs3A==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "@redocly/openapi-core": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.50.tgz", + "integrity": "sha512-GuXn4IETxpbRd8dlAQDQPtvqOpbMvPMeC/e5mv5MOXkLIznNk4vjiQVe6QSCbZbCHzzpb2+89B6S7asebPm4Rg==", + "requires": { + "@redocly/ajv": "^6.12.3", + "@types/node": "^14.11.8", + "colorette": "^1.2.0", + "js-levenshtein": "^1.1.6", + "js-yaml": "^3.14.1", + "lodash.isequal": "^4.5.0", + "minimatch": "^3.0.4", + "node-fetch": "^2.6.1", + "yaml-ast-parser": "0.0.43" + }, + "dependencies": { + "@types/node": { + "version": "14.17.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.3.tgz", + "integrity": "sha512-e6ZowgGJmTuXa3GyaPbTGxX17tnThl2aSSizrFthQ7m9uLGZBXiGhgE55cjRZTF5kjZvYn9EOPOMljdjwbflxw==" + } + } + }, + "@redocly/react-dropdown-aria": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@redocly/react-dropdown-aria/-/react-dropdown-aria-2.0.12.tgz", + "integrity": "sha512-feQEZlyBvQsbT/fvpJ4jJ5OLGaUPpnskHYDsY8DGpPymN+HUeDQrqkBEbbKRwMKidFTI2cxk2kJNNTnvdS9jyw==" + }, + "@types/chokidar": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@types/chokidar/-/chokidar-2.1.3.tgz", + "integrity": "sha512-6qK3xoLLAhQVTucQGHTySwOVA1crHRXnJeLwqK6KIFkkKa2aoMFXh+WEi8PotxDtvN6MQJLyYN9ag9P6NLV81w==", + "requires": { + "chokidar": "*" + } + }, + "@types/handlebars": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@types/handlebars/-/handlebars-4.1.0.tgz", + "integrity": "sha512-gq9YweFKNNB1uFK71eRqsd4niVkXrxHugqWFQkeLRJvGjnxsLr16bYtcsG4tOFwmYi0Bax+wCkbf1reUfdl4kA==", + "requires": { + "handlebars": "*" + } + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" + }, + "@types/mkdirp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-1.0.1.tgz", + "integrity": "sha512-HkGSK7CGAXncr8Qn/0VqNtExEE+PHMWb+qlR1faHMao7ng6P3tAaoWWBMdva0gL5h4zprjIO89GJOLXsMcDm1Q==", + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "15.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.2.tgz", + "integrity": "sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==" + }, "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "babel-plugin-styled-components": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.12.0.tgz", + "integrity": "sha512-FEiD7l5ZABdJPpLssKXjBUJMYqzbcNzBowfXDCdJhOpbhWiewapUaY+LZGT8R4Jg2TwOjGjG4RKeyrO5p9sBkA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-module-imports": "^7.0.0", + "babel-plugin-syntax-jsx": "^6.18.0", + "lodash": "^4.17.11" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "core-js": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.14.0.tgz", + "integrity": "sha512-3s+ed8er9ahK+zJpp9ZtuVcDoFzHNiZsPbNAAE4KXgrRHbjSqqNN6xGSXq6bq7TZIbKj4NLrLb6bJ5i+vSVjHA==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" + }, + "css-to-react-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decko": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decko/-/decko-1.2.0.tgz", + "integrity": "sha1-/UPHNelnuAEzBohKVvvmZZlraBc=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "dompurify": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.2.9.tgz", + "integrity": "sha512-+9MqacuigMIZ+1+EwoEltogyWGFTJZWU3258Rupxs+2CGs4H914G9er6pZbsme/bvb5L67o2rade9n21e4RW/w==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "http2-client": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.3.tgz", + "integrity": "sha512-nUxLymWQ9pzkzTmir24p2RtsgruLmhje7lH3hLX1IpwvyTg77fW+1brenPPP3USAR+rQ36p5sTA/x7sjCJVkAA==" + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-pointer": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.1.tgz", + "integrity": "sha512-3OvjqKdCBvH41DLpV4iSt6v2XhZXV1bPB4OROuknvUXI7ZQNofieCPkmE26stEJ9zdQuvIxDHCuYhfgxFAAs+Q==", + "requires": { + "foreach": "^2.0.4" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" + }, + "mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha1-GA8fnr74sOY45BZq1S24eb6y/8U=" + }, + "marked": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", + "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "mobx": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.3.2.tgz", + "integrity": "sha512-xGPM9dIE1qkK9Nrhevp0gzpsmELKU4MFUJRORW/jqxVFIHHWIoQrjDjL8vkwoJYY3C2CeVJqgvl38hgKTalTWg==" + }, + "mobx-react": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/mobx-react/-/mobx-react-7.2.0.tgz", + "integrity": "sha512-KHUjZ3HBmZlNnPd1M82jcdVsQRDlfym38zJhZEs33VxyVQTvL77hODCArq6+C1P1k/6erEeo2R7rpE7ZeOL7dg==", + "requires": { + "mobx-react-lite": "^3.2.0" + } + }, + "mobx-react-lite": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-3.2.0.tgz", + "integrity": "sha512-q5+UHIqYCOpBoFm/PElDuOhbcatvTllgRp3M1s+Hp5j0Z6XNgDbgqxawJ0ZAUEyKM8X1zs70PCuhAIzX1f4Q/g==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-fetch-h2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", + "integrity": "sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==", + "requires": { + "http2-client": "^1.2.5" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node-readfiles": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", + "integrity": "sha1-271K8SE04uY1wkXvk//Pb2BnOl0=", + "requires": { + "es6-promise": "^3.2.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "oas-kit-common": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", + "integrity": "sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==", + "requires": { + "fast-safe-stringify": "^2.0.7" + } + }, + "oas-linter": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz", + "integrity": "sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==", + "requires": { + "@exodus/schemasafe": "^1.0.0-rc.2", + "should": "^13.2.1", + "yaml": "^1.10.0" + } + }, + "oas-resolver": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.5.tgz", + "integrity": "sha512-1po1gzIlTXQqyVNtLFWJuzDm4xxhMCJ8QcP3OarKDO8aJ8AmCtQ67XZ1X+nBbHH4CjTcEsIab1qX5+GIU4f2Gg==", + "requires": { + "node-fetch-h2": "^2.3.0", + "oas-kit-common": "^1.0.8", + "reftools": "^1.1.8", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + } + }, + "oas-schema-walker": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", + "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==" + }, + "oas-validator": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.6.tgz", + "integrity": "sha512-bI+gyr3MiG/4Q5Ibvg0R77skVWS882gFMkxwB1p6qY7Rc4p7EoDezFVfondjYhJDPDnB1ZD7Aqj7AWROAsMBZg==", + "requires": { + "call-me-maybe": "^1.0.1", + "oas-kit-common": "^1.0.8", + "oas-linter": "^3.2.2", + "oas-resolver": "^2.5.5", + "oas-schema-walker": "^1.1.5", + "reftools": "^1.1.8", + "should": "^13.2.1", + "yaml": "^1.10.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "openapi-sampler": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.0.1.tgz", + "integrity": "sha512-qBjxkSLJV183zTTs4fgxtU/iWSLUUu2aH2+5ddWkNhV7p8CSe/mnAgoLkEbMfHtel6yr9NF+vjUWqfM+iiwORQ==", + "requires": { + "@types/json-schema": "^7.0.7", + "json-pointer": "^0.6.1" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "perfect-scrollbar": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.1.tgz", + "integrity": "sha512-MrSImINnIh3Tm1hdPT6bji6fmIeRorVEegQvyUnhqko2hDGTHhmjPefHXfxG/Jb8xVbfCwgmUIlIajERGXjVXQ==" + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + }, + "polished": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/polished/-/polished-4.1.3.tgz", + "integrity": "sha512-ocPAcVBUOryJEKe0z2KLd1l9EBa1r5mSwlKpExmrLzsnIzJo4axsoU9O2BjOTkDGDT4mZ0WFE5XKTlR3nLnZOA==", + "requires": { + "@babel/runtime": "^7.14.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "prismjs": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.24.1.tgz", + "integrity": "sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "react-tabs": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-3.2.2.tgz", + "integrity": "sha512-/o52eGKxFHRa+ssuTEgSM8qORnV4+k7ibW+aNQzKe+5gifeVz8nLxCrsI9xdRhfb0wCLdgIambIpb1qCxaMN+A==", + "requires": { + "clsx": "^1.1.0", + "prop-types": "^15.5.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "picomatch": "^2.2.1" } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "redoc": { + "version": "2.0.0-rc.56", + "resolved": "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.56.tgz", + "integrity": "sha512-ir2TtQ2d/1FqZWIoLmUZ3qvAAnO6jg8dt0SV75TanmfCXpEABcElXWH3mtUf6qKlvgDVt40diDCVuSvyPPxkAw==", + "requires": { + "@babel/runtime": "^7.14.0", + "@redocly/openapi-core": "^1.0.0-beta.50", + "@redocly/react-dropdown-aria": "^2.0.11", + "@types/node": "^15.6.1", + "classnames": "^2.3.1", + "decko": "^1.2.0", + "dompurify": "^2.2.8", + "eventemitter3": "^4.0.7", + "json-pointer": "^0.6.1", + "lunr": "^2.3.9", + "mark.js": "^8.11.1", + "marked": "^0.7.0", + "memoize-one": "^5.2.1", + "mobx-react": "^7.2.0", + "openapi-sampler": "^1.0.1", + "path-browserify": "^1.0.1", + "perfect-scrollbar": "^1.5.1", + "polished": "^4.1.3", + "prismjs": "^1.24.1", + "prop-types": "^15.7.2", + "react-tabs": "^3.2.2", + "slugify": "~1.4.7", + "stickyfill": "^1.1.1", + "swagger2openapi": "^7.0.6", + "url-template": "^2.0.8" + }, + "dependencies": { + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + } + } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "reftools": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.8.tgz", + "integrity": "sha512-Yvz9NH8uFHzD/AXX82Li1GdAP6FzDBxEZw+njerNBBQv/XHihqsWAjNfXtaq4QD2l4TEZVnp4UbktdYSegAM3g==" + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "locate-path": "^3.0.0" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, - "is-fullwidth-code-point": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "requires": { + "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" + } + }, + "should-equal": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "requires": { + "should-type": "^1.4.0" + } }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=", + "requires": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=" + }, + "should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "should-type": "^1.3.0", + "should-util": "^1.0.0" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==" + }, + "slugify": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.7.tgz", + "integrity": "sha512-tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "stickyfill": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz", + "integrity": "sha1-OUE/7p0CXHSn5ZzuyyN4TMDxfwI=" + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "requires": { - "p-limit": "^2.0.0" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.0" + } + }, + "styled-components": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.0.tgz", + "integrity": "sha512-bPJKwZCHjJPf/hwTJl6TbkSZg/3evha+XPEizrZUGb535jLImwDUdjTNxXqjjaASt2M4qO4AVfoHJNe3XB/tpQ==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/traverse": "^7.4.5", + "@emotion/is-prop-valid": "^0.8.8", + "@emotion/stylis": "^0.8.4", + "@emotion/unitless": "^0.7.4", + "babel-plugin-styled-components": ">= 1.12.0", + "css-to-react-native": "^3.0.0", + "hoist-non-react-statics": "^3.0.0", + "shallowequal": "^1.1.0", + "supports-color": "^5.5.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "swagger2openapi": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.6.tgz", + "integrity": "sha512-VIT414koe0eJqre0KrhNMUB7QEUfPjGAKesPZZosIKr2rxZ6vpUoersHUFNOsN/OZ5u2zsniCslBOwVcmQZwlg==", + "requires": { + "call-me-maybe": "^1.0.1", + "node-fetch": "^2.6.1", + "node-fetch-h2": "^2.3.0", + "node-readfiles": "^0.2.0", + "oas-kit-common": "^1.0.8", + "oas-resolver": "^2.5.5", + "oas-schema-walker": "^1.1.5", + "oas-validator": "^5.0.6", + "reftools": "^1.1.8", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + } + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "uglify-js": { + "version": "3.13.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.9.tgz", + "integrity": "sha512-wZbyTQ1w6Y7fHdt8sJnHfSIuWeDgk6B5rCb4E/AM6QNNPbOMIZph21PW5dRB3h7Df0GszN+t7RuUH6sWK5bF0g==", + "optional": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } + } + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } } }, + "url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } } }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==" + }, "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", + "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" } }, "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "20.2.7", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", + "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==" } } }, @@ -2790,6 +4578,11 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "scheduler": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", @@ -2799,12 +4592,6 @@ "object-assign": "^4.1.1" } }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", - "optional": true - }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -2863,6 +4650,11 @@ } } }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -2967,9 +4759,9 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, "slugify": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.4.tgz", - "integrity": "sha512-N2+9NJ8JzfRMh6PQLrBeDEnVDQZSytE/W4BTC4fNNPmO90Uu58uNwSlIJSs+lmPgWsaAF79WLhVPe5tuy7spjw==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.0.tgz", + "integrity": "sha512-FkMq+MQc5hzYgM86nLuHI98Acwi3p4wX+a5BO9Hhw4JdK4L7WueIiZ4tXEobImPqBz2sVcV0+Mu3GRB30IGang==" }, "source-map": { "version": "0.6.1", @@ -3101,36 +4893,6 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, - "styled-components": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-4.4.1.tgz", - "integrity": "sha512-RNqj14kYzw++6Sr38n7197xG33ipEOktGElty4I70IKzQF1jzaD1U4xQ+Ny/i03UUhHlC5NWEO+d8olRCDji6g==", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@emotion/is-prop-valid": "^0.8.1", - "@emotion/unitless": "^0.7.0", - "babel-plugin-styled-components": ">= 1", - "css-to-react-native": "^2.2.2", - "memoize-one": "^5.0.0", - "merge-anything": "^2.2.4", - "prop-types": "^15.5.4", - "react-is": "^16.6.0", - "stylis": "^3.5.0", - "stylis-rule-sheet": "^0.0.10", - "supports-color": "^5.5.0" - } - }, - "stylis": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", - "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" - }, - "stylis-rule-sheet": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", - "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" - }, "superagent": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", @@ -3191,169 +4953,128 @@ "integrity": "sha512-5uAjeEqV+zbtalBDXAIrkqUZwsUHYwvBSeGYlFcLj1ERS3jfprL4OPLSSriDoeXCtNmWzpz5aooV2qJW+DqdUQ==" }, "swagger2openapi": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-5.4.0.tgz", - "integrity": "sha512-f5QqfXawiVijhjMtYqWZ55ESHPZFqrPC8L9idhIiuSX8O2qsa1i4MVGtCM3TQF+Smzr/6WfT/7zBuzG3aTgPAA==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-6.2.3.tgz", + "integrity": "sha512-cUUktzLpK69UwpMbcTzjMw2ns9RZChfxh56AHv6+hTx3StPOX2foZjPgds3HlJcINbxosYYBn/D3cG8nwcCWwQ==", "requires": { "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", + "oas-kit-common": "^1.0.8", + "oas-resolver": "^2.4.3", + "oas-schema-walker": "^1.1.5", + "oas-validator": "^4.0.8", + "reftools": "^1.1.5", "yaml": "^1.8.3", - "yargs": "^12.0.5" + "yargs": "^15.3.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "color-convert": "^2.0.1" } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "requires": { - "locate-path": "^3.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "color-name": "~1.1.4" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "oas-resolver": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz", + "integrity": "sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==", "requires": { - "p-limit": "^2.0.0" + "node-fetch-h2": "^2.3.0", + "oas-kit-common": "^1.0.8", + "reftools": "^1.1.9", + "yaml": "^1.10.0", + "yargs": "^17.0.1" + }, + "dependencies": { + "yargs": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", + "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + } } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "oas-schema-walker": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz", + "integrity": "sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==" }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "oas-validator": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/oas-validator/-/oas-validator-4.0.8.tgz", + "integrity": "sha512-bIt8erTyclF7bkaySTtQ9sppqyVc+mAlPi7vPzCLVHJsL9nrivQjc/jHLX/o+eGbxHd6a6YBwuY/Vxa6wGsiuw==", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "ajv": "^5.5.2", + "better-ajv-errors": "^0.6.7", + "call-me-maybe": "^1.0.1", + "oas-kit-common": "^1.0.8", + "oas-linter": "^3.1.3", + "oas-resolver": "^2.4.3", + "oas-schema-walker": "^1.1.5", + "reftools": "^1.1.5", + "should": "^13.2.1", + "yaml": "^1.8.3" } }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } + "reftools": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz", + "integrity": "sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==" }, "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "requires": { - "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" - } + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" } } }, @@ -3397,19 +5118,13 @@ } }, "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "requires": { "setimmediate": "^1.0.4" } }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", - "optional": true - }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -3433,11 +5148,6 @@ "is-number": "^7.0.0" } }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" - }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", @@ -3653,9 +5363,9 @@ } }, "ws": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", - "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==" + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==" }, "xdg-basedir": { "version": "3.0.0", @@ -3673,9 +5383,9 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" }, "yallist": { "version": "2.1.2", diff --git a/package.json b/package.json index 332cd952..d38a1963 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "dependencies": { "@ga4gh/gh-openapi-docs": "^0.2.1", "@redocly/openapi-cli": "^1.0.0-beta.4", - "redoc-cli": "^0.9.8" + "redoc-cli": "^0.12.3" }, "devDependencies": {}, "scripts": { From bcd397476d60af4f59573b7633e3f99e5f50780e Mon Sep 17 00:00:00 2001 From: Charles Overbeck Date: Tue, 14 Sep 2021 06:41:13 -0700 Subject: [PATCH 090/102] Point to Dockstore TRS v2 service-info endpoint (#204) * Point to Dockstore TRS v2 service-info endpoint * looks like biocontainers has moved too needs some work though, but better than broken link * Update registry.json * Update registry.json Co-authored-by: Denis Yuen --- registry.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/registry.json b/registry.json index c8592d71..4df8e7b4 100644 --- a/registry.json +++ b/registry.json @@ -1,8 +1,11 @@ { "dockstore": [ - "https://dockstore.org/api/api/ga4gh/v2/metadata" + "https://dockstore.org/api/ga4gh/trs/v2/service-info" ], "biocontainers": [ - "https://api.biocontainers.pro/api/ga4gh/v2/metadata" + "https://api.biocontainers.pro/ga4gh/trs/v2/service-info" + ], + "workflowhub": [ + "https://workflowhub.eu/ga4gh/trs/v2/service-info" ] } From 2938f9d274ff0fd290e946bb5305774cc5b067b6 Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Fri, 26 Nov 2021 13:10:17 -0500 Subject: [PATCH 091/102] Fix up github action token passing (#209) * Update update-ghpages.sh --- .github/workflows/main.yml | 3 +++ scripts/update-ghpages.sh | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0748bdbe..b9e5dc6b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -5,6 +5,9 @@ name: CI # Controls when the workflow will run on: [push] +env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: checkLinks: diff --git a/scripts/update-ghpages.sh b/scripts/update-ghpages.sh index 60a02f0e..4e987160 100644 --- a/scripts/update-ghpages.sh +++ b/scripts/update-ghpages.sh @@ -15,12 +15,15 @@ mv preview2 preview git status # looks like github automatically does not make secrets available to forks https://docs.github.com/en/actions/reference/encrypted-secrets if [[ -n "$(git status --porcelain "${BRANCH_PATH}")" ]]; then + git config --global user.email "theglobalalliance@genomicsandhealth.org" + git config --global user.name "Automatic documentation build" bash scripts/create-table-of-contents.sh bash scripts/remove-docs-for-deleted-branches.sh git add preview git add TableOfContents.md git commit -m "Docs changed for "${GITHUB_REF##*/}"" - git push git@github.com:"${GITHUB_REPOSITORY}" gh-pages + git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/$GITHUB_REPOSITORY + git push origin gh-pages else echo "No changes" fi From 6c5ce33093d3cb91623dc1af2b8eddc633f5ee48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Nov 2021 13:35:26 -0500 Subject: [PATCH 092/102] Bump @redocly/openapi-cli from 1.0.0-beta.4 to 1.0.0-beta.59 (#207) Bumps [@redocly/openapi-cli](https://github.com/Redocly/openapi-cli) from 1.0.0-beta.4 to 1.0.0-beta.59. - [Release notes](https://github.com/Redocly/openapi-cli/releases) - [Changelog](https://github.com/Redocly/openapi-cli/blob/master/docs/changelog.md) - [Commits](https://github.com/Redocly/openapi-cli/commits/v1.0.0-beta.59) --- updated-dependencies: - dependency-name: "@redocly/openapi-cli" dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 310 +++++++++++++++++++++++++++++++++++++++------- package.json | 2 +- 2 files changed, 263 insertions(+), 49 deletions(-) diff --git a/package-lock.json b/package-lock.json index c26513f0..53cf8f1a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -490,13 +490,13 @@ } }, "@redocly/ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-iFQquIW93af7TP8GfwggPP7/yvnBjFGqTWcxYprS9Vpo3WPW/jwKizabnDcNu8aQ48C76G+6h+ZkZojBSaBhgA==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.6.4.tgz", + "integrity": "sha512-y9qNj0//tZtWB2jfXNK3BX18BSBp9zNR7KE7lMysVHwbZtY392OJCjm6Rb/h4UHH2r1AqjNEHFD6bRn+DqU9Mw==", "requires": { "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "dependencies": { @@ -506,57 +506,208 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" } } }, "@redocly/openapi-cli": { - "version": "1.0.0-beta.4", - "resolved": "https://registry.npmjs.org/@redocly/openapi-cli/-/openapi-cli-1.0.0-beta.4.tgz", - "integrity": "sha512-Z1xlc+j0FKSZm2NW16NZHjQDPd6NWSQuPJY1+zP2kNYBCbTOLXS/9GK75SzI7zTLAlGFF0CDwsXkVRVjaEeWlA==", + "version": "1.0.0-beta.59", + "resolved": "https://registry.npmjs.org/@redocly/openapi-cli/-/openapi-cli-1.0.0-beta.59.tgz", + "integrity": "sha512-3EoKVgQNkiRqk0yEDqzZTnSr8Ymke3ZoSQNQkNwpR8GP9KLsDwXmbCsF9aN+Wqn2/BTGaW5TP9r9jMkgS72EIA==", "requires": { - "@redocly/ajv": "^6.12.3", - "@types/node": "^14.0.13", - "chokidar": "^3.4.0", + "@redocly/openapi-core": "^1.0.0-beta.55", + "@types/node": "^14.11.8", + "assert-node-version": "^1.0.3", + "chokidar": "^3.5.1", "colorette": "^1.2.0", + "glob": "^7.1.6", + "glob-promise": "^3.4.0", "handlebars": "^4.7.6", - "js-levenshtein": "^1.1.6", - "js-yaml": "^3.14.0", - "lodash.isequal": "^4.5.0", - "minimatch": "^3.0.4", - "node-fetch": "^2.6.0", + "js-yaml": "^3.14.1", "portfinder": "^1.0.26", "simple-websocket": "^9.0.0", - "typescript": "^3.9.5", - "yaml-ast-parser": "0.0.43", - "yargs": "^15.3.1" + "yargs": "17.0.1" }, "dependencies": { "@types/node": { - "version": "14.0.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.24.tgz", - "integrity": "sha512-btt/oNOiDWcSuI721MdL8VQGnjsKjlTMdrKyTcLCKeQp/n4AAMFJ961wMbp+09y8WuGPClDEv07RIItdXKIXAA==" + "version": "14.17.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.34.tgz", + "integrity": "sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" } }, "simple-websocket": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/simple-websocket/-/simple-websocket-9.0.0.tgz", - "integrity": "sha512-Q+u1BJ06/FR30xS1Sf6zDuL+vAdAA7VFqZ0TdKpmQKB2uNTAPKWQFFhUDV4YD7TDi7gSRJXoxv21WprNPR0ykQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/simple-websocket/-/simple-websocket-9.1.0.tgz", + "integrity": "sha512-8MJPnjRN6A8UCp1I+H/dSFyjwJhp6wta4hsVRhjf8w9qBHRzxYt14RaOcjvQnhD1N4yKOddEjflwMnQM4VtXjQ==", + "requires": { + "debug": "^4.3.1", + "queue-microtask": "^1.2.2", + "randombytes": "^2.1.0", + "readable-stream": "^3.6.0", + "ws": "^7.4.2" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", + "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + } + } + }, + "@redocly/openapi-core": { + "version": "1.0.0-beta.69", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.69.tgz", + "integrity": "sha512-A05sPH8U26qQdZgkOQfHrL8dwY3twJ51/PY43WUuRqMdeZEu3SRcIdgLyXaIgR82ZnHC2Y/MnexE5QKtKObYJA==", + "requires": { + "@redocly/ajv": "^8.6.4", + "@types/node": "^14.11.8", + "colorette": "^1.2.0", + "js-levenshtein": "^1.1.6", + "js-yaml": "^4.1.0", + "lodash.isequal": "^4.5.0", + "minimatch": "^3.0.4", + "node-fetch": "^2.6.1", + "pluralize": "^8.0.0", + "yaml-ast-parser": "0.0.43" + }, + "dependencies": { + "@types/node": { + "version": "14.17.34", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.34.tgz", + "integrity": "sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==" + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { - "debug": "^4.1.1", - "queue-microtask": "^1.1.0", - "randombytes": "^2.0.3", - "readable-stream": "^3.1.1", - "ws": "^7.0.0" + "argparse": "^2.0.1" } } } @@ -584,11 +735,25 @@ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, "@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, "@types/node": { "version": "13.13.52", "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz", @@ -725,6 +890,15 @@ } } }, + "assert-node-version": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/assert-node-version/-/assert-node-version-1.0.3.tgz", + "integrity": "sha1-yupdG2pY285ZZhII3x4bnkxYD5E=", + "requires": { + "expected-node-version": "^1.0.0", + "semver": "^5.0.3" + } + }, "async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", @@ -1104,9 +1278,9 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==" }, "combined-stream": { "version": "1.0.8", @@ -1416,6 +1590,11 @@ "safe-buffer": "^5.1.1" } }, + "expected-node-version": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/expected-node-version/-/expected-node-version-1.0.2.tgz", + "integrity": "sha1-uNIlub9nap6H4G29YVtS/J0eOGs=" + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -1546,6 +1725,14 @@ "is-glob": "^4.0.1" } }, + "glob-promise": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", + "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", + "requires": { + "@types/glob": "*" + } + }, "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", @@ -2155,9 +2342,12 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "requires": { + "whatwg-url": "^5.0.0" + } }, "node-fetch-h2": { "version": "2.3.0", @@ -2420,6 +2610,11 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==" + }, "polished": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/polished/-/polished-3.7.2.tgz", @@ -4543,6 +4738,11 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -5148,6 +5348,11 @@ "is-number": "^7.0.0" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", @@ -5158,11 +5363,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" }, - "typescript": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", - "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==" - }, "uglify-js": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.0.tgz", @@ -5258,6 +5458,20 @@ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", diff --git a/package.json b/package.json index d38a1963..9cefbc78 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "index.js", "dependencies": { "@ga4gh/gh-openapi-docs": "^0.2.1", - "@redocly/openapi-cli": "^1.0.0-beta.4", + "@redocly/openapi-cli": "^1.0.0-beta.59", "redoc-cli": "^0.12.3" }, "devDependencies": {}, From ba91e578ad87f5697383818ed6dafbf5e2521ae1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Nov 2021 14:04:14 -0500 Subject: [PATCH 093/102] Bump prismjs from 1.24.1 to 1.25.0 (#206) Bumps [prismjs](https://github.com/PrismJS/prism) from 1.24.1 to 1.25.0. - [Release notes](https://github.com/PrismJS/prism/releases) - [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md) - [Commits](https://github.com/PrismJS/prism/compare/v1.24.1...v1.25.0) --- updated-dependencies: - dependency-name: prismjs dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 53cf8f1a..a4788712 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2654,9 +2654,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prismjs": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.24.1.tgz", - "integrity": "sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow==" + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz", + "integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==" }, "process": { "version": "0.11.10", @@ -4104,11 +4104,6 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" }, - "prismjs": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.24.1.tgz", - "integrity": "sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow==" - }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", From 66f8f95fac8243873c58134595b7576d4d1f3390 Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Fri, 14 Jan 2022 11:05:15 -0500 Subject: [PATCH 094/102] test validation (#212) * test validation * Update validate.yaml https://swagger.io/blog/api-design/validate-openapi-definitions-swagger-editor/ --- .github/workflows/validate.yaml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/workflows/validate.yaml diff --git a/.github/workflows/validate.yaml b/.github/workflows/validate.yaml new file mode 100644 index 00000000..2bfc5941 --- /dev/null +++ b/.github/workflows/validate.yaml @@ -0,0 +1,15 @@ +on: [push] + + +jobs: + test_swagger_editor_validator_remote: + runs-on: ubuntu-latest + name: Swagger Editor Validator Remote + + + steps: + - uses: actions/checkout@v2 + - name: Validate OpenAPI definition + uses: char0n/swagger-editor-validate@v1.2.1 + with: + definition-file: openapi/openapi.yaml From ca5e4bfa55da092a708d62ba8a4a0ebceb65cd1a Mon Sep 17 00:00:00 2001 From: Denis Yuen Date: Thu, 17 Mar 2022 12:03:16 -0400 Subject: [PATCH 095/102] provide additional type info if available to filewrapper (#203) --- openapi/openapi.yaml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 3b489666..0bbed291 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -130,7 +130,7 @@ paths: in: query description: Filter tools by the name of the descriptor type schema: - $ref: '#/components/schemas/DescriptorType' + $ref: '#/components/schemas/DescriptorType' - name: registry in: query description: The image registry that contains the image. @@ -422,10 +422,10 @@ components: name: version_id in: path required: true - description: An identifier of the tool version, scoped to this registry, for - example `v1`. We recommend that versions use semantic versioning - https://semver.org/spec/v2.0.0.html (For example, `1.0.0` instead - of `develop`) + description: An identifier of the tool version, scoped to this registry, for + example `v1`. We recommend that versions use semantic versioning + https://semver.org/spec/v2.0.0.html (For example, `1.0.0` instead + of `develop`) schema: type: string type: @@ -757,6 +757,11 @@ components: example: - checksum: ea2a5db69bd20a42976838790bc29294df3af02b type: sha1 + image_type: + description: "Optionally return additional information on the type of file this is" + oneOf: + - $ref: "#/components/schemas/ImageType" + - $ref: "#/components/schemas/DescriptorType" url: type: string description: Optional url to the underlying content, should include version From b628de57b2287726e499f2d1af8779bd074e34d5 Mon Sep 17 00:00:00 2001 From: Alex Kanitz Date: Thu, 17 Mar 2022 17:38:01 +0100 Subject: [PATCH 096/102] fix: add missing SMK to enum of supported types (#208) * Update openapi.yaml * Fix up github action token passing (#209) * Update update-ghpages.sh Co-authored-by: Denis Yuen --- .github/workflows/main.yml | 3 +++ openapi/openapi.yaml | 1 + scripts/update-ghpages.sh | 5 ++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0748bdbe..b9e5dc6b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -5,6 +5,9 @@ name: CI # Controls when the workflow will run on: [push] +env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: checkLinks: diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 0bbed291..ea2d1063 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -722,6 +722,7 @@ components: - WDL - NFL - GALAXY + - SMK - PLAIN_CWL - PLAIN_WDL - PLAIN_NFL diff --git a/scripts/update-ghpages.sh b/scripts/update-ghpages.sh index 60a02f0e..4e987160 100644 --- a/scripts/update-ghpages.sh +++ b/scripts/update-ghpages.sh @@ -15,12 +15,15 @@ mv preview2 preview git status # looks like github automatically does not make secrets available to forks https://docs.github.com/en/actions/reference/encrypted-secrets if [[ -n "$(git status --porcelain "${BRANCH_PATH}")" ]]; then + git config --global user.email "theglobalalliance@genomicsandhealth.org" + git config --global user.name "Automatic documentation build" bash scripts/create-table-of-contents.sh bash scripts/remove-docs-for-deleted-branches.sh git add preview git add TableOfContents.md git commit -m "Docs changed for "${GITHUB_REF##*/}"" - git push git@github.com:"${GITHUB_REPOSITORY}" gh-pages + git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/$GITHUB_REPOSITORY + git push origin gh-pages else echo "No changes" fi From f25af07569e14872db47e3cd4a750f9505e51a4d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Apr 2022 10:09:22 -0400 Subject: [PATCH 097/102] Bump async from 2.6.3 to 2.6.4 (#216) Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4. - [Release notes](https://github.com/caolan/async/releases) - [Changelog](https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md) - [Commits](https://github.com/caolan/async/compare/v2.6.3...v2.6.4) --- updated-dependencies: - dependency-name: async dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index a4788712..14a24d55 100644 --- a/package-lock.json +++ b/package-lock.json @@ -900,9 +900,9 @@ } }, "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "requires": { "lodash": "^4.17.14" } From 08a771d9c022e014e4a1008f1b063915698e32a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Apr 2022 10:10:17 -0400 Subject: [PATCH 098/102] Bump minimist from 1.2.5 to 1.2.6 (#214) Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 14a24d55..c0ede2c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2285,9 +2285,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "mixin-object": { "version": "2.0.1", @@ -3884,11 +3884,6 @@ "brace-expansion": "^1.1.7" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", From b25d7180ae80d89f64a94489cc845b70ee180c87 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Apr 2022 10:10:33 -0400 Subject: [PATCH 099/102] Bump prismjs from 1.25.0 to 1.27.0 (#213) Bumps [prismjs](https://github.com/PrismJS/prism) from 1.25.0 to 1.27.0. - [Release notes](https://github.com/PrismJS/prism/releases) - [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md) - [Commits](https://github.com/PrismJS/prism/compare/v1.25.0...v1.27.0) --- updated-dependencies: - dependency-name: prismjs dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index c0ede2c5..6a03a48d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2654,9 +2654,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prismjs": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.25.0.tgz", - "integrity": "sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==" + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", + "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==" }, "process": { "version": "0.11.10", From 3cf07f771fc14bc7d93c1da3c0eb88ed1e9bb4a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Apr 2022 10:11:04 -0400 Subject: [PATCH 100/102] Bump ansi-regex from 3.0.0 to 3.0.1 (#218) Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/chalk/ansi-regex/releases) - [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1) --- updated-dependencies: - dependency-name: ansi-regex dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6a03a48d..c896308c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -779,9 +779,9 @@ }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" }, "emoji-regex": { "version": "7.0.3", @@ -814,9 +814,9 @@ } }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "3.2.1", @@ -983,9 +983,9 @@ }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" }, "emoji-regex": { "version": "7.0.3", @@ -3053,11 +3053,6 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.2.tgz", "integrity": "sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww==" }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -5484,9 +5479,9 @@ }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" }, "is-fullwidth-code-point": { "version": "2.0.0", From 2ecf30ebd877256d521c5d82db577c69decf0b1b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Apr 2022 10:11:33 -0400 Subject: [PATCH 101/102] Bump node-fetch from 2.6.1 to 2.6.7 (#217) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7) --- updated-dependencies: - dependency-name: node-fetch dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index c896308c..7cab5def 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2342,9 +2342,9 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "requires": { "whatwg-url": "^5.0.0" } @@ -3912,11 +3912,6 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" - }, "node-fetch-h2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz", From fcf3c1fb35667bb23a394606f46d14f985b1ed10 Mon Sep 17 00:00:00 2001 From: Patrick Magee Date: Wed, 14 Sep 2022 10:52:34 -0400 Subject: [PATCH 102/102] Added descriptor_type_version to ToolVersion definition (#219) * Added descriptor_type_version to ToolVersion definition * updated example and changed descriptor_type_version to an array Co-authored-by: Denis Yuen --- openapi/openapi.yaml | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index ea2d1063..ef1a7e2a 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -629,6 +629,22 @@ components: description: The type (or types) of descriptors available. items: $ref: "#/components/schemas/DescriptorType" + descriptor_type_version: + type: object + description: A map providing information about the language versions used in this tool. The keys should be the + same values used in the `descriptor_type` field, and the value should be an array of all the language versions used + for the given `descriptor_type`. Depending on the `descriptor_type` (e.g. CWL) multiple version values may be used + in a single tool. + example: | + { + "WDL": ["1.0", "1.0"], + "CWL": ["v1.0.2"], + "NFL": ["DSL2"] + } + additionalProperties: + type: array + items: + $ref: "#/components/schemas/DescriptorTypeVersion" containerfile: type: boolean description: Reports if this tool has a containerfile available. (For @@ -713,7 +729,12 @@ components: - WDL - NFL - GALAXY - - SMK + - SMK + DescriptorTypeVersion: + type: string + description: The language version for a given descriptor type. The version should correspond + to the actual declared version of the descriptor. For example, tools defined in CWL could have a version of `v1.0.2` + whereas WDL tools may have a version of `1.0` or `draft-2` DescriptorTypeWithPlain: type: string description: The output type of the descriptor. Plain types return the raw text while the "non-plain" types return the application/json