Przeglądaj źródła

Update after config adjustments

Leszek Wiesner 3 lat temu
rodzic
commit
2394192c0d

+ 3 - 3
distributor-node/config.yml

@@ -1,11 +1,11 @@
 id: test-node
 endpoints:
   queryNode: http://localhost:8081/graphql
-  substrateNode: ws://localhost:9944
+  joystreamNodeWs: ws://localhost:9944
   # elasticSearch: http://localhost:9200
 directories:
-  data: ./local/data
-  cache: ./local/cache
+  assets: ./local/data
+  cacheState: ./local/cache
   logs: ./local/logs
 log:
   file: debug

+ 3 - 3
distributor-node/config/docker/config.docker.yml

@@ -1,11 +1,11 @@
 id: distributor-node-docker
 endpoints:
   queryNode: http://graphql-server-mnt:4002/graphql
-  substrateNode: ws://joystream-node:9944
+  joystreamNodeWs: ws://joystream-node:9944
   # elasticSearch: http://elasticsearch:9200
 directories:
-  data: /data
-  cache: /cache
+  assets: /data
+  cacheState: /cache
   logs: /logs
 log:
   console: info

+ 10 - 11
distributor-node/scripts/data/family-metadata.json

@@ -1,16 +1,15 @@
 {
   "region": "eu-west",
   "description": "Western Europe",
-  "boundary": [
-    { "longitude": 0.935664253776034, "latitude": 61.70157919955392 },
-    { "longitude": 7.077063962609969, "latitude": 37.40179586925884 },
-    { "longitude": 27.46754964469303, "latitude": 32.88770433956931 },
-    { "longitude": 40.68423960078124, "latitude": 48.39367044189657 },
-    { "longitude": 32.14019766910849, "latitude": 54.63502471598309 },
-    { "longitude": 28.56450578831937, "latitude": 59.09093283322235 },
-    { "longitude": 30.75892533489921, "latitude": 70.1670216697313 },
-    { "longitude": 19.2385951319647, "latitude": 73.4978175093038 },
-    { "longitude": -9.158590783812665, "latitude": 67.80006125371919 },
-    { "longitude": 0.935664253776034, "latitude": 61.70157919955392 }
+  "areas": [
+    { "countryCode": "AT" },
+    { "countryCode": "BE" },
+    { "countryCode": "FR" },
+    { "countryCode": "DE" },
+    { "countryCode": "LI" },
+    { "countryCode": "LU" },
+    { "countryCode": "MC" },
+    { "countryCode": "NL" },
+    { "countryCode": "CH" }
   ]
 }

+ 3 - 0
distributor-node/src/app/index.ts

@@ -48,6 +48,9 @@ export class App {
 
   private checkConfigDirectories(): void {
     Object.entries(this.config.directories).forEach(([name, path]) => {
+      if (path === undefined) {
+        return
+      }
       const dirInfo = `${name} directory (${path})`
       if (!fs.existsSync(path)) {
         try {

+ 1 - 1
distributor-node/src/command-base/api.ts

@@ -16,7 +16,7 @@ export default abstract class ApiCommandBase extends DefaultCommandBase {
 
   async init(): Promise<void> {
     await super.init()
-    this.api = await RuntimeApi.create(this.logging, this.appConfig.endpoints.substrateNode)
+    this.api = await RuntimeApi.create(this.logging, this.appConfig.endpoints.joystreamNodeWs)
   }
 
   async sendAndFollowTx(account: KeyringPair, tx: SubmittableExtrinsic<'promise'>): Promise<SubmittableResult> {

+ 3 - 0
distributor-node/src/command-base/default.ts

@@ -91,6 +91,9 @@ export default abstract class DefaultCommandBase extends Command {
 
   async finally(err: any): Promise<void> {
     if (!err) this.exit(ExitCodes.OK)
+    if (process.env.DEBUG === 'true') {
+      console.error(err)
+    }
     super.finally(err)
   }
 }

+ 23 - 15
distributor-node/src/schemas/configSchema.ts

@@ -9,14 +9,19 @@ export const configSchema: JSONSchema4 = {
   title: 'Distributor node configuration',
   description: 'Configuration schema for distirubtor CLI and node',
   type: 'object',
-  required: ['endpoints', 'directories', 'buckets', 'keys', 'port', 'workerId', 'limits', 'intervals'],
+  required: ['id', 'endpoints', 'directories', 'buckets', 'keys', 'port', 'workerId', 'limits', 'intervals'],
   additionalProperties: false,
   properties: {
+    id: {
+      type: 'string',
+      description: 'Node identifier used when sending elasticsearch logs and exposed on /status endpoint',
+      minLength: 1,
+    },
     endpoints: {
       type: 'object',
       description: 'Specifies external endpoints that the distributor node will connect to',
       additionalProperties: false,
-      required: ['queryNode', 'substrateNode'],
+      required: ['queryNode', 'joystreamNodeWs'],
       properties: {
         queryNode: {
           description: 'Query node graphql server uri (for example: http://localhost:8081/graphql)',
@@ -34,21 +39,24 @@ export const configSchema: JSONSchema4 = {
     },
     directories: {
       type: 'object',
-      required: ['assets', 'state'],
+      required: ['assets', 'cacheState'],
       additionalProperties: false,
       description: "Specifies paths where node's data will be stored",
-      assets: {
-        description: 'Path to a directory where all the cached assets will be stored',
-        type: 'string',
-      },
-      cacheState: {
-        description:
-          'Path to a directory where information about the current cache state will be stored (LRU-SP cache data, stored assets mime types etc.)',
-        type: 'string',
-      },
-      logs: {
-        description: 'Path to a directory where logs will be stored if logging to a file was enabled (via `log.file`).',
-        type: 'string',
+      properties: {
+        assets: {
+          description: 'Path to a directory where all the cached assets will be stored',
+          type: 'string',
+        },
+        cacheState: {
+          description:
+            'Path to a directory where information about the current cache state will be stored (LRU-SP cache data, stored assets mime types etc.)',
+          type: 'string',
+        },
+        logs: {
+          description:
+            'Path to a directory where logs will be stored if logging to a file was enabled (via `log.file`).',
+          type: 'string',
+        },
       },
     },
     log: {

+ 1 - 1
distributor-node/src/schemas/index.ts

@@ -1,4 +1,4 @@
-import { ConfigJson } from '../types/generated/ConfigJson'
+import { DistributorNodeConfiguration as ConfigJson } from '../types/generated/ConfigJson'
 import { OperatorMetadataJson } from '../types/generated/OperatorMetadataJson'
 import { FamilyMetadataJson } from '../types/generated/FamilyMetadataJson'
 import { configSchema } from './configSchema'

+ 1 - 1
distributor-node/src/services/cache/StateCacheService.ts

@@ -46,7 +46,7 @@ export class StateCacheService {
 
   public constructor(config: ReadonlyConfig, logging: LoggingService) {
     this.logger = logging.createLogger('StateCacheService')
-    this.cacheFilePath = `${config.directories.cache}/cache.json`
+    this.cacheFilePath = `${config.directories.cacheState}/cache.json`
     this.config = config
   }
 

+ 1 - 1
distributor-node/src/services/content/ContentService.ts

@@ -37,7 +37,7 @@ export class ContentService {
     this.logger = logging.createLogger('ContentService')
     this.stateCache = stateCache
     this.networking = networking
-    this.dataDir = config.directories.data
+    this.dataDir = config.directories.assets
   }
 
   public async cacheCleanup(): Promise<void> {

+ 14 - 17
distributor-node/src/services/logging/LoggingService.ts

@@ -79,26 +79,23 @@ export class LoggingService {
       transports.push(esTransport)
     }
 
-    const fileTransport =
-      config.log?.file && config.log.file !== 'off'
-        ? new winston.transports.File({
-            filename: `${config.directories.logs}/logs.json`,
-            level: config.log.file,
-            format: winston.format.combine(pauseFormat({ id: 'file' }), escFormat()),
-          })
-        : undefined
-    if (fileTransport) {
+    if (config.log?.file && config.log.file !== 'off') {
+      if (!config.directories.logs) {
+        throw new Error('config.directories.logs must be provided when file logging is enabled!')
+      }
+      const fileTransport = new winston.transports.File({
+        filename: `${config.directories.logs}/logs.json`,
+        level: config.log.file,
+        format: winston.format.combine(pauseFormat({ id: 'file' }), escFormat()),
+      })
       transports.push(fileTransport)
     }
 
-    const consoleTransport =
-      config.log?.console && config.log.console !== 'off'
-        ? new winston.transports.Console({
-            level: config.log.console,
-            format: winston.format.combine(pauseFormat({ id: 'cli' }), cliFormat),
-          })
-        : undefined
-    if (consoleTransport) {
+    if (config.log?.console && config.log.console !== 'off') {
+      const consoleTransport = new winston.transports.Console({
+        level: config.log.console,
+        format: winston.format.combine(pauseFormat({ id: 'cli' }), cliFormat),
+      })
       transports.push(consoleTransport)
     }
 

+ 3 - 1
distributor-node/src/services/parsers/ConfigParserService.ts

@@ -17,7 +17,9 @@ export class ConfigParserService {
   }
 
   public resolveConfigDirectoryPaths(paths: Config['directories'], configFilePath: string): Config['directories'] {
-    return _.mapValues(paths, (v) => path.resolve(path.dirname(configFilePath), v))
+    return _.mapValues(paths, (v) =>
+      typeof v === 'string' ? path.resolve(path.dirname(configFilePath), v) : v
+    ) as Config['directories']
   }
 
   private parseBytesize(bytesize: string) {

+ 1 - 1
distributor-node/src/types/config.ts

@@ -1,4 +1,4 @@
-import { ConfigJson } from './generated/ConfigJson'
+import { DistributorNodeConfiguration as ConfigJson } from './generated/ConfigJson'
 import { DeepReadonly } from './common'
 
 export type Config = Omit<ConfigJson, 'limits'> & {

+ 19 - 2
distributor-node/src/types/generated/ConfigJson.d.ts

@@ -9,6 +9,10 @@
  * Configuration schema for distirubtor CLI and node
  */
 export interface DistributorNodeConfiguration {
+  /**
+   * Node identifier used when sending elasticsearch logs and exposed on /status endpoint
+   */
+  id: string
   /**
    * Specifies external endpoints that the distributor node will connect to
    */
@@ -20,7 +24,7 @@ export interface DistributorNodeConfiguration {
     /**
      * Joystream node websocket api uri (for example: ws://localhost:9944)
      */
-    joystreamNodeWs?: string
+    joystreamNodeWs: string
     /**
      * Elasticsearch uri used for submitting the distributor node logs (if enabled via `log.elastic`)
      */
@@ -29,7 +33,20 @@ export interface DistributorNodeConfiguration {
   /**
    * Specifies paths where node's data will be stored
    */
-  directories: {}
+  directories: {
+    /**
+     * Path to a directory where all the cached assets will be stored
+     */
+    assets: string
+    /**
+     * Path to a directory where information about the current cache state will be stored (LRU-SP cache data, stored assets mime types etc.)
+     */
+    cacheState: string
+    /**
+     * Path to a directory where logs will be stored if logging to a file was enabled (via `log.file`).
+     */
+    logs?: string
+  }
   /**
    * Specifies minimum log levels by supported log outputs
    */

+ 15 - 196
yarn.lock

@@ -9108,19 +9108,6 @@ before-after-hook@^2.0.0:
   resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.1.tgz#73540563558687586b52ed217dad6a802ab1549c"
   integrity sha512-/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw==
 
-better-ajv-errors@^0.5.2:
-  version "0.5.7"
-  resolved "https://registry.yarnpkg.com/better-ajv-errors/-/better-ajv-errors-0.5.7.tgz#246123954161cc0ef124761c55a121c96b0cdce0"
-  integrity sha512-O7tpXektKWVwYCH5g6Vs3lKD+sJs7JHh5guapmGJd+RTwxhFZEf4FwvbHBURUnoXsTeFaMvGuhTTmEGiHpNi6w==
-  dependencies:
-    "@babel/code-frame" "^7.0.0"
-    "@babel/runtime" "^7.0.0"
-    chalk "^2.4.1"
-    core-js "^2.5.7"
-    json-to-ast "^2.0.3"
-    jsonpointer "^4.0.1"
-    leven "^2.1.0"
-
 better-ajv-errors@^0.6.1, better-ajv-errors@^0.6.7:
   version "0.6.7"
   resolved "https://registry.yarnpkg.com/better-ajv-errors/-/better-ajv-errors-0.6.7.tgz#b5344af1ce10f434fe02fc4390a5a9c811e470d1"
@@ -10969,12 +10956,12 @@ commander@2.9.0:
   dependencies:
     graceful-readlink ">= 1.0.0"
 
-commander@6.2.1, commander@^6.1.0:
+commander@6.2.1:
   version "6.2.1"
   resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
   integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
 
-commander@^2.12.2, commander@^2.13.0, commander@^2.15.0, commander@^2.16.0, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, commander@^2.5.0, commander@^2.8.1, commander@^2.9.0:
+commander@^2.13.0, commander@^2.15.0, commander@^2.16.0, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.20.3, commander@^2.5.0, commander@^2.8.1, commander@^2.9.0:
   version "2.20.3"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@@ -11459,7 +11446,7 @@ core-js@^1.0.0:
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
   integrity "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA=="
 
-core-js@^2.4.0, core-js@^2.5.7, core-js@^2.6.5:
+core-js@^2.4.0, core-js@^2.6.5:
   version "2.6.12"
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
   integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
@@ -15046,14 +15033,6 @@ find-index@^0.1.1:
   resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4"
   integrity sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=
 
-find-remove@^1.2.2:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/find-remove/-/find-remove-1.2.2.tgz#b479d3b7c2b62ddc3f91f0001b7836f121ac9395"
-  integrity sha512-P94ar9U0b7AifpOu7MR1iA3cMN4J4kqIJkW15Ol8H0Lp3MI+U32ugunpDXCKOpFgFRRCMBracWWuyT0m3sIU+g==
-  dependencies:
-    fmerge "1.2.0"
-    rimraf "2.6.2"
-
 find-root@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
@@ -15191,11 +15170,6 @@ flush-write-stream@^1.0.0, flush-write-stream@^1.0.2:
     inherits "^2.0.3"
     readable-stream "^2.3.6"
 
-fmerge@1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/fmerge/-/fmerge-1.2.0.tgz#36e99d2ae255e3ee1af666b4df780553671cf692"
-  integrity sha1-NumdKuJV4+4a9ma033gFU2cc9pI=
-
 fn-name@~2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7"
@@ -15259,11 +15233,6 @@ foreach@^2.0.4, foreach@^2.0.5:
   resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
   integrity "sha1-C+4AUBiusmDQo6865ljdATbsG5k= sha512-ZBbtRiapkZYLsqoPyZOR+uPfto0GRMNQN1GwzZtZt7iZvPPbDDQV0JF5Hx4o/QFQ5c0vyuoZ98T8RSBbopzWtA=="
 
-foreachasync@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/foreachasync/-/foreachasync-3.0.0.tgz#5502987dc8714be3392097f32e0071c9dee07cf6"
-  integrity sha1-VQKYfchxS+M5IJfzLgBxyd7gfPY=
-
 foreground-child@^1.5.6:
   version "1.5.6"
   resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9"
@@ -15336,11 +15305,6 @@ form-data@~2.3.2:
     combined-stream "^1.0.6"
     mime-types "^2.1.12"
 
-format-util@^1.0.3:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/format-util/-/format-util-1.0.5.tgz#1ffb450c8a03e7bccffe40643180918cc297d271"
-  integrity sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg==
-
 format@^0.2.0:
   version "0.2.2"
   resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b"
@@ -15468,16 +15432,6 @@ fs-extra@^9.0, fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0:
     jsonfile "^6.0.1"
     universalify "^2.0.0"
 
-fs-extra@~0.6.1:
-  version "0.6.4"
-  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.6.4.tgz#f46f0c75b7841f8d200b3348cd4d691d5a099d15"
-  integrity sha1-9G8MdbeEH40gCzNIzU1pHVoJnRU=
-  dependencies:
-    jsonfile "~1.0.1"
-    mkdirp "0.3.x"
-    ncp "~0.4.2"
-    rimraf "~2.2.0"
-
 fs-jetpack@^2.2.2:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/fs-jetpack/-/fs-jetpack-2.4.0.tgz#6080c4ab464a019d37a404baeb47f32af8835026"
@@ -15543,15 +15497,6 @@ fs-writefile-promise@^1.0.3:
     mkdirp-promise "^1.0.0"
     pinkie-promise "^1.0.0"
 
-fs.extra@1.3.2:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/fs.extra/-/fs.extra-1.3.2.tgz#dd023f93013bee24531f1b33514c37b20fd93349"
-  integrity sha1-3QI/kwE77iRTHxszUUw3sg/ZM0k=
-  dependencies:
-    fs-extra "~0.6.1"
-    mkdirp "~0.3.5"
-    walk "^2.3.9"
-
 fs.realpath@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@@ -16520,7 +16465,7 @@ handle-thing@^2.0.0:
   resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
   integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
 
-handlebars@^4.1.2, handlebars@^4.7.6, handlebars@^4.7.7:
+handlebars@^4.7.6, handlebars@^4.7.7:
   version "4.7.7"
   resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
   integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
@@ -18887,15 +18832,16 @@ isexe@^2.0.0:
   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
   integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
 
-iso-639-1@^2.1.9:
-  version "2.1.9"
-  resolved "https://registry.yarnpkg.com/iso-639-1/-/iso-639-1-2.1.9.tgz#e41b11d4f1808e5316d0252c3fa16eeb9b37bb58"
-  integrity sha512-owRu9up+Cpx/hwSzm83j6G8PtC7U99UCtPVItsafefNfEgMl+pi8KBwhXwJkJfp6IouyYWFxj8n24SvCWpKZEQ==
 iso-3166-2@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/iso-3166-2/-/iso-3166-2-1.0.0.tgz#20c5cda527b56bfc7409c6802d9bff0119086131"
   integrity sha512-xLAazfKZzwlsg/Zz/GQGQk3jJez5/2ORrjD3TjSuqz/arMht/xTK49c0GOE3afO/gEd9tHtBVVlfBla01unUng==
 
+iso-639-1@^2.1.9:
+  version "2.1.9"
+  resolved "https://registry.yarnpkg.com/iso-639-1/-/iso-639-1-2.1.9.tgz#e41b11d4f1808e5316d0252c3fa16eeb9b37bb58"
+  integrity sha512-owRu9up+Cpx/hwSzm83j6G8PtC7U99UCtPVItsafefNfEgMl+pi8KBwhXwJkJfp6IouyYWFxj8n24SvCWpKZEQ==
+
 iso-constants@^0.1.2:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/iso-constants/-/iso-constants-0.1.2.tgz#3d2456ed5aeaa55d18564f285ba02a47a0d885b4"
@@ -19998,7 +19944,7 @@ js-yaml@4.1.0, js-yaml@^4.0.0, js-yaml@^4.1.0:
   dependencies:
     argparse "^2.0.1"
 
-js-yaml@^3.10.0, js-yaml@^3.11.0, js-yaml@^3.12.0, js-yaml@^3.13.1, js-yaml@^3.14.0:
+js-yaml@^3.10.0, js-yaml@^3.11.0, js-yaml@^3.13.1, js-yaml@^3.14.0:
   version "3.14.1"
   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
   integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
@@ -20107,16 +20053,6 @@ json-pointer@^0.6.1:
   dependencies:
     foreach "^2.0.4"
 
-json-schema-ref-parser@^4.0.4:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-4.1.1.tgz#f7900efc15f693432d4ac6519dc1ee09c01aa40b"
-  integrity sha512-lByoCHZ6H2zgb6NtsXIqtzQ+6Ji7iVqnrhWxsXLhF+gXmgu6E8+ErpDxCMR439MUG1nfMjWI2HAoM8l0XgSNhw==
-  dependencies:
-    call-me-maybe "^1.0.1"
-    debug "^3.1.0"
-    js-yaml "^3.10.0"
-    ono "^4.0.3"
-
 json-schema-ref-parser@^9.0.1:
   version "9.0.7"
   resolved "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-9.0.7.tgz#c0ccc5aaee34844f0865889b67e0b67d616f7375"
@@ -20282,11 +20218,6 @@ jsonfile@^6.0.1:
   optionalDependencies:
     graceful-fs "^4.1.6"
 
-jsonfile@~1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-1.0.1.tgz#ea5efe40b83690b98667614a7392fc60e842c0dd"
-  integrity sha1-6l7+QLg2kLmGZ2FKc5L8YOhCwN0=
-
 jsonify@~0.0.0:
   version "0.0.0"
   resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
@@ -20771,11 +20702,6 @@ levelup@^4.0.1:
     level-supports "~1.0.0"
     xtend "~4.0.0"
 
-leven@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
-  integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA=
-
 leven@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
@@ -21650,7 +21576,7 @@ markdown-it@^10.0.0:
     mdurl "^1.0.1"
     uc.micro "^1.0.5"
 
-markdown-it@^8.4.1, markdown-it@^8.4.2:
+markdown-it@^8.4.1:
   version "8.4.2"
   resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54"
   integrity "sha1-OG+YmY3BWjdyKqdyIIT0Agvdm1Q= sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ=="
@@ -22459,11 +22385,6 @@ mkdirp@0.3.0:
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e"
   integrity "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4= sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew=="
 
-mkdirp@0.3.x, mkdirp@~0.3.5:
-  version "0.3.5"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7"
-  integrity sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=
-
 mkdirp@0.5.1:
   version "0.5.1"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
@@ -22988,11 +22909,6 @@ natural-orderby@^2.0.1:
   resolved "https://registry.yarnpkg.com/natural-orderby/-/natural-orderby-2.0.3.tgz#8623bc518ba162f8ff1cdb8941d74deb0fdcc016"
   integrity sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==
 
-ncp@~0.4.2:
-  version "0.4.2"
-  resolved "https://registry.yarnpkg.com/ncp/-/ncp-0.4.2.tgz#abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574"
-  integrity sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=
-
 "ndjson@github:hugomrdias/ndjson#feat/readable-stream3":
   version "1.5.0"
   resolved "https://codeload.github.com/hugomrdias/ndjson/tar.gz/4db16da6b42e5b39bf300c3a7cde62abb3fa3a11"
@@ -23650,21 +23566,13 @@ nyc@^14, nyc@^14.1.1:
     yargs "^13.2.2"
     yargs-parser "^13.0.0"
 
-oas-kit-common@^1.0.4, oas-kit-common@^1.0.6, oas-kit-common@^1.0.8:
+oas-kit-common@^1.0.8:
   version "1.0.8"
   resolved "https://registry.yarnpkg.com/oas-kit-common/-/oas-kit-common-1.0.8.tgz#6d8cacf6e9097967a4c7ea8bcbcbd77018e1f535"
   integrity sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==
   dependencies:
     fast-safe-stringify "^2.0.7"
 
-oas-linter@^1.0.8:
-  version "1.0.8"
-  resolved "https://registry.yarnpkg.com/oas-linter/-/oas-linter-1.0.8.tgz#9ebc6bcc704f77e45b62f73ce2bb39fec6395dbd"
-  integrity sha512-d60OArJNBalU5q9utXgsWUdxNS2EWenLp/fSrCQXFHoZhFOLQDTCh2CeqddifM0q1Q0Z9noTiFnwuyqSi2Pa6A==
-  dependencies:
-    js-yaml "^3.12.0"
-    should "^13.2.1"
-
 oas-linter@^3.1.3:
   version "3.2.2"
   resolved "https://registry.yarnpkg.com/oas-linter/-/oas-linter-3.2.2.tgz#ab6a33736313490659035ca6802dc4b35d48aa1e"
@@ -23674,17 +23582,6 @@ oas-linter@^3.1.3:
     should "^13.2.1"
     yaml "^1.10.0"
 
-oas-resolver@^1.0.12:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/oas-resolver/-/oas-resolver-1.1.1.tgz#6613f6f6a27015fe52a9abe8732877fa3d172b45"
-  integrity sha512-r7jWfhtW/eQ42/eqnUXMUS46jB+XoNlIOSkjN6ZQH+3tqPQHMwAqRUQTqdh+0Qw7IAipftb6zFVwyfE6kVCmGQ==
-  dependencies:
-    js-yaml "^3.12.0"
-    node-fetch-h2 "^2.3.0"
-    oas-kit-common "^1.0.6"
-    reftools "^1.0.4"
-    yargs "^12.0.2"
-
 oas-resolver@^2.3.1, oas-resolver@^2.4.3:
   version "2.5.6"
   resolved "https://registry.yarnpkg.com/oas-resolver/-/oas-resolver-2.5.6.tgz#10430569cb7daca56115c915e611ebc5515c561b"
@@ -23696,26 +23593,11 @@ oas-resolver@^2.3.1, oas-resolver@^2.4.3:
     yaml "^1.10.0"
     yargs "^17.0.1"
 
-oas-schema-walker@^1.1.0, oas-schema-walker@^1.1.3, oas-schema-walker@^1.1.5:
+oas-schema-walker@^1.1.3, oas-schema-walker@^1.1.5:
   version "1.1.5"
   resolved "https://registry.yarnpkg.com/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz#74c3cd47b70ff8e0b19adada14455b5d3ac38a22"
   integrity sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==
 
-oas-validator@^1.1.7:
-  version "1.1.13"
-  resolved "https://registry.yarnpkg.com/oas-validator/-/oas-validator-1.1.13.tgz#a62ec5d097475b1cf514cdd51f3c46c121ab60ce"
-  integrity sha512-sEWaUq5/b5+iOUEtnu/Ioi3bN1SwIvexSpeFdg3H0v4ASPmK1l/70vpYXfupVElFzjx4unc2odFp9oJR+L5f7w==
-  dependencies:
-    ajv "^5.5.2"
-    better-ajv-errors "^0.5.2"
-    js-yaml "^3.12.0"
-    oas-kit-common "^1.0.4"
-    oas-linter "^1.0.8"
-    oas-resolver "^1.0.12"
-    oas-schema-walker "^1.1.0"
-    reftools "^1.0.3"
-    should "^13.2.1"
-
 oas-validator@^4.0.8:
   version "4.0.8"
   resolved "https://registry.yarnpkg.com/oas-validator/-/oas-validator-4.0.8.tgz#4f1a4d6bd9e030ad07db03fd7a7bc3a91aabcc7d"
@@ -23948,13 +23830,6 @@ only@~0.0.2:
   resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
   integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=
 
-ono@^4.0.3:
-  version "4.0.11"
-  resolved "https://registry.yarnpkg.com/ono/-/ono-4.0.11.tgz#c7f4209b3e396e8a44ef43b9cedc7f5d791d221d"
-  integrity sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==
-  dependencies:
-    format-util "^1.0.3"
-
 ono@^7.1.3:
   version "7.1.3"
   resolved "https://registry.yarnpkg.com/ono/-/ono-7.1.3.tgz#a054e96a388f566a6c4c95e1e92b9b253722d286"
@@ -24059,7 +23934,7 @@ openapi-response-validator@3.8.2:
     ajv "^6.5.4"
     openapi-types "1.3.5"
 
-openapi-sampler@^1.0.0-beta.13, openapi-sampler@^1.0.0-beta.15:
+openapi-sampler@^1.0.0-beta.15:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/openapi-sampler/-/openapi-sampler-1.1.0.tgz#73e45a599e8f7892be5a728ff21e784b8d2284bd"
   integrity sha512-/LhZYKNBWphLEpbAG5BdpBZbIbmLgC4vTiTj8N/MV0LF9ptmKOiJ2nETVlacNjXHt7iqDgZDELJCIoZ3q5ZG6A==
@@ -24109,25 +23984,6 @@ openapi-typescript@^4.0.2:
     slash "^3.0.0"
     tiny-glob "^0.2.9"
 
-openapi3-generator@^0.13.0:
-  version "0.13.0"
-  resolved "https://registry.yarnpkg.com/openapi3-generator/-/openapi3-generator-0.13.0.tgz#713a8252b38504336e6c7375e8f37be63e0f6047"
-  integrity sha512-9x1Es7jdcVC20RorRFSHl2rHMp/XUqUc4QIv3qvGx3DzBW9qaRrIG5f3wwbyEvkZ9ljxsubfzyIS8L9615vIIA==
-  dependencies:
-    commander "^2.12.2"
-    find-remove "^1.2.2"
-    fs.extra "1.3.2"
-    handlebars "^4.1.2"
-    js-yaml "^3.13.1"
-    json-schema-ref-parser "^4.0.4"
-    lodash "^4.17.11"
-    markdown-it "^8.4.2"
-    oas-validator "^1.1.7"
-    openapi-sampler "^1.0.0-beta.13"
-    project-name-generator "^2.1.5"
-    slugg "^1.2.1"
-    word-wrap "1.1.0"
-
 opencollective-postinstall@^2.0.2:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
@@ -25873,14 +25729,6 @@ progress@^2.0.0, progress@^2.0.3:
   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
   integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
 
-project-name-generator@^2.1.5:
-  version "2.1.9"
-  resolved "https://registry.yarnpkg.com/project-name-generator/-/project-name-generator-2.1.9.tgz#959177f1feb2355d74fa98745d72a65a5f75b674"
-  integrity sha512-QmLHqz2C4VHmAyDEAFlVfnuWAHr4vwZhK2bbm4IrwuHNzNKOdG9b4U+NmQbsm1uOoV4kGWv7+FVLsu7Bb/ieYQ==
-  dependencies:
-    commander "^6.1.0"
-    lodash "^4.17.20"
-
 prom-client@^12.0.0:
   version "12.0.0"
   resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-12.0.0.tgz#9689379b19bd3f6ab88a9866124db9da3d76c6ed"
@@ -27256,7 +27104,7 @@ refractor@^2.4.1:
     parse-entities "^1.1.2"
     prismjs "~1.17.0"
 
-reftools@^1.0.3, reftools@^1.0.4, reftools@^1.1.0, reftools@^1.1.5, reftools@^1.1.9:
+reftools@^1.1.0, reftools@^1.1.5, reftools@^1.1.9:
   version "1.1.9"
   resolved "https://registry.yarnpkg.com/reftools/-/reftools-1.1.9.tgz#e16e19f662ccd4648605312c06d34e5da3a2b77e"
   integrity sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==
@@ -27873,13 +27721,6 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.
   dependencies:
     glob "^7.1.3"
 
-rimraf@2.6.2:
-  version "2.6.2"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
-  integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==
-  dependencies:
-    glob "^7.0.5"
-
 rimraf@2.6.3, rimraf@~2.6.2:
   version "2.6.3"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
@@ -27894,11 +27735,6 @@ rimraf@^3.0.0, rimraf@^3.0.2:
   dependencies:
     glob "^7.1.3"
 
-rimraf@~2.2.0:
-  version "2.2.8"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
-  integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=
-
 ripemd160@^2.0.0, ripemd160@^2.0.1:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
@@ -28735,11 +28571,6 @@ slug@^2.1.1:
   dependencies:
     unicode ">= 0.3.1"
 
-slugg@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/slugg/-/slugg-1.2.1.tgz#e752af2241af3f2714463c5de225cea47608740a"
-  integrity sha1-51KvIkGvPycURjxd4iXOpHYIdAo=
-
 smart-buffer@^4.0.2, smart-buffer@^4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba"
@@ -32149,13 +31980,6 @@ w3c-xmlserializer@^2.0.0:
   dependencies:
     xml-name-validator "^3.0.0"
 
-walk@^2.3.9:
-  version "2.3.15"
-  resolved "https://registry.yarnpkg.com/walk/-/walk-2.3.15.tgz#1b4611e959d656426bc521e2da5db3acecae2424"
-  integrity sha512-4eRTBZljBfIISK1Vnt69Gvr2w/wc3U6Vtrw7qiN5iqYJPH7LElcYh/iU4XWhdCy2dZqv1ToMyYlybDylfG/5Vg==
-  dependencies:
-    foreachasync "^3.0.0"
-
 walkdir@^0.4.1:
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.4.1.tgz#dc119f83f4421df52e3061e514228a2db20afa39"
@@ -32766,11 +32590,6 @@ with-open-file@^0.1.6:
     p-try "^2.1.0"
     pify "^4.0.1"
 
-word-wrap@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.1.0.tgz#356153d61d10610d600785c5d701288e0ae764a6"
-  integrity sha1-NWFT1h0QYQ1gB4XF1wEojgrnZKY=
-
 word-wrap@^1.2.3, word-wrap@~1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"