Browse Source

Update with new mappings, fix distribution bucket operator status check, uncomment tmp workaround

Leszek Wiesner 3 years ago
parent
commit
2869c059f3

+ 17 - 10
distributor-node/src/services/networking/NetworkingService.ts

@@ -16,6 +16,7 @@ import {
 } from '../../types'
 import queue from 'queue'
 import _ from 'lodash'
+import { DistributionBucketOperatorStatus } from './query-node/generated/schema'
 
 // TODO: Adjust limits and intervals
 const MAX_CONCURRENT_RESPONSE_TIME_CHECKS = 10
@@ -82,13 +83,15 @@ export class NetworkingService {
   }
 
   private prepareStorageNodeEndpoints(details: DataObjectDetailsFragment) {
-    const endpointsData = details.storageBag.storedBy
+    const endpointsData = details.storageBag.storageAssignments
       .filter(
-        (b) => b.operatorStatus.__typename === 'StorageBucketOperatorStatusActive' && b.operatorMetadata?.nodeEndpoint
+        (a) =>
+          a.storageBucket.operatorStatus.__typename === 'StorageBucketOperatorStatusActive' &&
+          a.storageBucket.operatorMetadata?.nodeEndpoint
       )
-      .map((b) => ({
-        bucketId: b.id,
-        endpoint: b.operatorMetadata!.nodeEndpoint!,
+      .map((a) => ({
+        bucketId: a.storageBucket.id,
+        endpoint: a.storageBucket.operatorMetadata!.nodeEndpoint!,
       }))
 
     return this.filterStorageNodeEndpoints(endpointsData)
@@ -109,12 +112,16 @@ export class NetworkingService {
       exists: !!details,
       isSupported:
         (this.config.buckets === 'all' &&
-          details?.storageBag.distributedBy.some((d) =>
-            d.operators.some((o) => o.workerId === this.config.workerId)
+          details?.storageBag.distirbutionAssignments.some((d) =>
+            d.distributionBucket.operators.some(
+              (o) => o.workerId === this.config.workerId && o.status === DistributionBucketOperatorStatus.Active
+            )
           )) ||
         (Array.isArray(this.config.buckets) &&
           this.config.buckets.some((bucketId) =>
-            details?.storageBag.distributedBy.map((b) => b.id).includes(bucketId.toString())
+            details?.storageBag.distirbutionAssignments
+              .map((a) => a.distributionBucket.id)
+              .includes(bucketId.toString())
           )),
       data: details
         ? {
@@ -263,8 +270,8 @@ export class NetworkingService {
         : await this.queryNodeApi.getDistributionBucketsWithObjectsByIds(this.config.buckets.map((id) => id.toString()))
     const objectsData: DataObjectData[] = []
     data.forEach((bucket) => {
-      bucket.distributedBags.forEach((bag) => {
-        bag.objects.forEach((object) => {
+      bucket.bagAssignments.forEach((a) => {
+        a.storageBag.objects.forEach((object) => {
           const { ipfsHash, id, size } = object
           objectsData.push({ contentHash: ipfsHash, objectId: id, size: parseInt(size) })
         })

+ 3 - 3
distributor-node/src/services/networking/query-node/api.ts

@@ -5,7 +5,7 @@ import {
   GetDataObjectDetails,
   GetDataObjectDetailsQuery,
   GetDataObjectDetailsQueryVariables,
-  DistirubtionBucketsWithObjectsFragment,
+  DistirubtionBucketWithObjectsFragment,
   GetDistributionBucketsWithObjectsByIdsQuery,
   GetDistributionBucketsWithObjectsByIdsQueryVariables,
   GetDistributionBucketsWithObjectsByIds,
@@ -66,7 +66,7 @@ export class QueryNodeApi {
     )
   }
 
-  public getDistributionBucketsWithObjectsByIds(ids: string[]): Promise<DistirubtionBucketsWithObjectsFragment[]> {
+  public getDistributionBucketsWithObjectsByIds(ids: string[]): Promise<DistirubtionBucketWithObjectsFragment[]> {
     return this.multipleEntitiesQuery<
       GetDistributionBucketsWithObjectsByIdsQuery,
       GetDistributionBucketsWithObjectsByIdsQueryVariables
@@ -75,7 +75,7 @@ export class QueryNodeApi {
 
   public getDistributionBucketsWithObjectsByWorkerId(
     workerId: number
-  ): Promise<DistirubtionBucketsWithObjectsFragment[]> {
+  ): Promise<DistirubtionBucketWithObjectsFragment[]> {
     return this.multipleEntitiesQuery<
       GetDistributionBucketsWithObjectsByWorkerIdQuery,
       GetDistributionBucketsWithObjectsByWorkerIdQueryVariables

+ 1 - 2
distributor-node/src/services/networking/query-node/codegen.yml

@@ -1,8 +1,7 @@
 # Paths are relative to root distribution-node directory
 overwrite: true
 
-# schema: '../../../../../query-node/generated/graphql-server/generated/schema.graphql'
-schema: 'src/services/networking/query-node/mock.graphql'
+schema: '../query-node/generated/graphql-server/generated/schema.graphql'
 
 documents:
   - 'src/services/networking/query-node/queries/*.graphql'

+ 34 - 27
distributor-node/src/services/networking/query-node/generated/queries.ts

@@ -1,7 +1,7 @@
 import * as Types from './schema';
 
 import gql from 'graphql-tag';
-export type DataObjectDetailsFragment = { id: string, size: any, ipfsHash: string, isAccepted: boolean, storageBag: { storedBy: Array<{ id: string, operatorMetadata?: Types.Maybe<{ nodeEndpoint?: Types.Maybe<string> }>, operatorStatus: { __typename: 'StorageBucketOperatorStatusMissing' } | { __typename: 'StorageBucketOperatorStatusInvited' } | { __typename: 'StorageBucketOperatorStatusActive' } }>, distributedBy: Array<{ id: string, operators: Array<{ workerId: number }> }> } };
+export type DataObjectDetailsFragment = { id: string, size: any, ipfsHash: string, isAccepted: boolean, storageBag: { storageAssignments: Array<{ storageBucket: { id: string, operatorMetadata?: Types.Maybe<{ nodeEndpoint?: Types.Maybe<string> }>, operatorStatus: { __typename: 'StorageBucketOperatorStatusMissing' } | { __typename: 'StorageBucketOperatorStatusInvited' } | { __typename: 'StorageBucketOperatorStatusActive' } } }>, distirbutionAssignments: Array<{ distributionBucket: { id: string, operators: Array<{ workerId: number, status: Types.DistributionBucketOperatorStatus }> } }> } };
 
 export type GetDataObjectDetailsQueryVariables = Types.Exact<{
   id: Types.Scalars['ID'];
@@ -10,21 +10,21 @@ export type GetDataObjectDetailsQueryVariables = Types.Exact<{
 
 export type GetDataObjectDetailsQuery = { storageDataObjectByUniqueInput?: Types.Maybe<DataObjectDetailsFragment> };
 
-export type DistirubtionBucketsWithObjectsFragment = { id: string, distributedBags: Array<{ objects: Array<{ id: string, size: any, ipfsHash: string }> }> };
+export type DistirubtionBucketWithObjectsFragment = { id: string, bagAssignments: Array<{ storageBag: { objects: Array<{ id: string, size: any, ipfsHash: string }> } }> };
 
 export type GetDistributionBucketsWithObjectsByIdsQueryVariables = Types.Exact<{
   ids?: Types.Maybe<Array<Types.Scalars['ID']> | Types.Scalars['ID']>;
 }>;
 
 
-export type GetDistributionBucketsWithObjectsByIdsQuery = { distributionBuckets: Array<DistirubtionBucketsWithObjectsFragment> };
+export type GetDistributionBucketsWithObjectsByIdsQuery = { distributionBuckets: Array<DistirubtionBucketWithObjectsFragment> };
 
 export type GetDistributionBucketsWithObjectsByWorkerIdQueryVariables = Types.Exact<{
   workerId: Types.Scalars['Int'];
 }>;
 
 
-export type GetDistributionBucketsWithObjectsByWorkerIdQuery = { distributionBuckets: Array<DistirubtionBucketsWithObjectsFragment> };
+export type GetDistributionBucketsWithObjectsByWorkerIdQuery = { distributionBuckets: Array<DistirubtionBucketWithObjectsFragment> };
 
 export type StorageBucketOperatorFieldsFragment = { id: string, operatorMetadata?: Types.Maybe<{ nodeEndpoint?: Types.Maybe<string> }> };
 
@@ -40,32 +40,39 @@ export const DataObjectDetails = gql`
   ipfsHash
   isAccepted
   storageBag {
-    storedBy {
-      id
-      operatorMetadata {
-        nodeEndpoint
-      }
-      operatorStatus {
-        __typename
+    storageAssignments {
+      storageBucket {
+        id
+        operatorMetadata {
+          nodeEndpoint
+        }
+        operatorStatus {
+          __typename
+        }
       }
     }
-    distributedBy {
-      id
-      operators {
-        workerId
+    distirbutionAssignments {
+      distributionBucket {
+        id
+        operators {
+          workerId
+          status
+        }
       }
     }
   }
 }
     `;
-export const DistirubtionBucketsWithObjects = gql`
-    fragment DistirubtionBucketsWithObjects on DistributionBucket {
+export const DistirubtionBucketWithObjects = gql`
+    fragment DistirubtionBucketWithObjects on DistributionBucket {
   id
-  distributedBags {
-    objects {
-      id
-      size
-      ipfsHash
+  bagAssignments {
+    storageBag {
+      objects {
+        id
+        size
+        ipfsHash
+      }
     }
   }
 }
@@ -88,17 +95,17 @@ export const GetDataObjectDetails = gql`
 export const GetDistributionBucketsWithObjectsByIds = gql`
     query getDistributionBucketsWithObjectsByIds($ids: [ID!]) {
   distributionBuckets(where: {id_in: $ids}) {
-    ...DistirubtionBucketsWithObjects
+    ...DistirubtionBucketWithObjects
   }
 }
-    ${DistirubtionBucketsWithObjects}`;
+    ${DistirubtionBucketWithObjects}`;
 export const GetDistributionBucketsWithObjectsByWorkerId = gql`
     query getDistributionBucketsWithObjectsByWorkerId($workerId: Int!) {
-  distributionBuckets(where: {operators_some: {workerId_eq: $workerId}}) {
-    ...DistirubtionBucketsWithObjects
+  distributionBuckets(where: {operators_some: {workerId_eq: $workerId, status_eq: ACTIVE}}) {
+    ...DistirubtionBucketWithObjects
   }
 }
-    ${DistirubtionBucketsWithObjects}`;
+    ${DistirubtionBucketWithObjects}`;
 export const GetActiveStorageBucketOperatorsData = gql`
     query getActiveStorageBucketOperatorsData {
   storageBuckets(where: {operatorStatus_json: {isTypeOf_eq: "StorageBucketOperatorStatusActive"}, operatorMetadata: {nodeEndpoint_contains: "http"}}, limit: 9999) {

File diff suppressed because it is too large
+ 497 - 389
distributor-node/src/services/networking/query-node/generated/schema.ts


+ 0 - 1797
distributor-node/src/services/networking/query-node/mock.graphql

@@ -1,1797 +0,0 @@
-interface BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-}
-
-type BaseModel implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-}
-
-type BaseModelUUID implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-}
-
-input BaseWhereInput {
-  id_eq: String
-  id_in: [String!]
-  createdAt_eq: String
-  createdAt_lt: String
-  createdAt_lte: String
-  createdAt_gt: String
-  createdAt_gte: String
-  createdById_eq: String
-  updatedAt_eq: String
-  updatedAt_lt: String
-  updatedAt_lte: String
-  updatedAt_gt: String
-  updatedAt_gte: String
-  updatedById_eq: String
-  deletedAt_all: Boolean
-  deletedAt_eq: String
-  deletedAt_lt: String
-  deletedAt_lte: String
-  deletedAt_gt: String
-  deletedAt_gte: String
-  deletedById_eq: String
-}
-
-"""GraphQL representation of BigInt"""
-scalar BigInt
-
-"""
-The javascript `Date` as string. Type represents date and time as the ISO Date string.
-"""
-scalar DateTime
-
-interface DeleteResponse {
-  id: ID!
-}
-
-type DistributionBucket implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-  family: DistributionBucketFamily!
-  familyId: String!
-  operators: [DistributionBucketOperator!]!
-
-  """Whether the bucket is accepting any new bags"""
-  acceptingNewBags: Boolean!
-
-  """Whether the bucket is currently distributing content"""
-  distributing: Boolean!
-  distributedBags: [StorageBag!]!
-}
-
-type DistributionBucketConnection {
-  totalCount: Int!
-  edges: [DistributionBucketEdge!]!
-  pageInfo: PageInfo!
-}
-
-input DistributionBucketCreateInput {
-  family: ID!
-  acceptingNewBags: Boolean!
-  distributing: Boolean!
-}
-
-type DistributionBucketEdge {
-  node: DistributionBucket!
-  cursor: String!
-}
-
-type DistributionBucketFamily implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-  metadata: DistributionBucketFamilyMetadata
-  metadataId: String
-  buckets: [DistributionBucket!]!
-}
-
-type DistributionBucketFamilyConnection {
-  totalCount: Int!
-  edges: [DistributionBucketFamilyEdge!]!
-  pageInfo: PageInfo!
-}
-
-input DistributionBucketFamilyCreateInput {
-  metadata: ID
-}
-
-type DistributionBucketFamilyEdge {
-  node: DistributionBucketFamily!
-  cursor: String!
-}
-
-type DistributionBucketFamilyMetadata implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-
-  """Name of the geographical region covered by the family (ie.: us-east-1)"""
-  region: String
-
-  """
-  Optional, more specific description of the region covered by the family
-  """
-  description: String
-  boundary: [GeoCoordinates!]!
-  distributionbucketfamilymetadata: [DistributionBucketFamily!]
-}
-
-type DistributionBucketFamilyMetadataConnection {
-  totalCount: Int!
-  edges: [DistributionBucketFamilyMetadataEdge!]!
-  pageInfo: PageInfo!
-}
-
-input DistributionBucketFamilyMetadataCreateInput {
-  region: String
-  description: String
-}
-
-type DistributionBucketFamilyMetadataEdge {
-  node: DistributionBucketFamilyMetadata!
-  cursor: String!
-}
-
-enum DistributionBucketFamilyMetadataOrderByInput {
-  createdAt_ASC
-  createdAt_DESC
-  updatedAt_ASC
-  updatedAt_DESC
-  deletedAt_ASC
-  deletedAt_DESC
-  region_ASC
-  region_DESC
-  description_ASC
-  description_DESC
-}
-
-input DistributionBucketFamilyMetadataUpdateInput {
-  region: String
-  description: String
-}
-
-input DistributionBucketFamilyMetadataWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  region_eq: String
-  region_contains: String
-  region_startsWith: String
-  region_endsWith: String
-  region_in: [String!]
-  description_eq: String
-  description_contains: String
-  description_startsWith: String
-  description_endsWith: String
-  description_in: [String!]
-  boundary_none: GeoCoordinatesWhereInput
-  boundary_some: GeoCoordinatesWhereInput
-  boundary_every: GeoCoordinatesWhereInput
-  distributionbucketfamilymetadata_none: DistributionBucketFamilyWhereInput
-  distributionbucketfamilymetadata_some: DistributionBucketFamilyWhereInput
-  distributionbucketfamilymetadata_every: DistributionBucketFamilyWhereInput
-  AND: [DistributionBucketFamilyMetadataWhereInput!]
-  OR: [DistributionBucketFamilyMetadataWhereInput!]
-}
-
-input DistributionBucketFamilyMetadataWhereUniqueInput {
-  id: ID!
-}
-
-enum DistributionBucketFamilyOrderByInput {
-  createdAt_ASC
-  createdAt_DESC
-  updatedAt_ASC
-  updatedAt_DESC
-  deletedAt_ASC
-  deletedAt_DESC
-  metadata_ASC
-  metadata_DESC
-}
-
-input DistributionBucketFamilyUpdateInput {
-  metadata: ID
-}
-
-input DistributionBucketFamilyWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  metadata_eq: ID
-  metadata_in: [ID!]
-  metadata: DistributionBucketFamilyMetadataWhereInput
-  buckets_none: DistributionBucketWhereInput
-  buckets_some: DistributionBucketWhereInput
-  buckets_every: DistributionBucketWhereInput
-  AND: [DistributionBucketFamilyWhereInput!]
-  OR: [DistributionBucketFamilyWhereInput!]
-}
-
-input DistributionBucketFamilyWhereUniqueInput {
-  id: ID!
-}
-
-type DistributionBucketOperator implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-  distributionBucket: DistributionBucket!
-  distributionBucketId: String!
-
-  """ID of the distribution group worker"""
-  workerId: Int!
-
-  """Current operator status"""
-  status: DistributionBucketOperatorStatus!
-  metadata: DistributionBucketOperatorMetadata
-  metadataId: String
-}
-
-type DistributionBucketOperatorConnection {
-  totalCount: Int!
-  edges: [DistributionBucketOperatorEdge!]!
-  pageInfo: PageInfo!
-}
-
-input DistributionBucketOperatorCreateInput {
-  distributionBucket: ID!
-  workerId: Float!
-  status: DistributionBucketOperatorStatus!
-  metadata: ID
-}
-
-type DistributionBucketOperatorEdge {
-  node: DistributionBucketOperator!
-  cursor: String!
-}
-
-type DistributionBucketOperatorMetadata implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-
-  """Root distributor node api endpoint"""
-  nodeEndpoint: String
-  nodeLocation: NodeLocationMetadata
-  nodeLocationId: String
-
-  """Additional information about the node/operator"""
-  extra: String
-  distributionbucketoperatormetadata: [DistributionBucketOperator!]
-}
-
-type DistributionBucketOperatorMetadataConnection {
-  totalCount: Int!
-  edges: [DistributionBucketOperatorMetadataEdge!]!
-  pageInfo: PageInfo!
-}
-
-input DistributionBucketOperatorMetadataCreateInput {
-  nodeEndpoint: String
-  nodeLocation: ID
-  extra: String
-}
-
-type DistributionBucketOperatorMetadataEdge {
-  node: DistributionBucketOperatorMetadata!
-  cursor: String!
-}
-
-enum DistributionBucketOperatorMetadataOrderByInput {
-  createdAt_ASC
-  createdAt_DESC
-  updatedAt_ASC
-  updatedAt_DESC
-  deletedAt_ASC
-  deletedAt_DESC
-  nodeEndpoint_ASC
-  nodeEndpoint_DESC
-  nodeLocation_ASC
-  nodeLocation_DESC
-  extra_ASC
-  extra_DESC
-}
-
-input DistributionBucketOperatorMetadataUpdateInput {
-  nodeEndpoint: String
-  nodeLocation: ID
-  extra: String
-}
-
-input DistributionBucketOperatorMetadataWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  nodeEndpoint_eq: String
-  nodeEndpoint_contains: String
-  nodeEndpoint_startsWith: String
-  nodeEndpoint_endsWith: String
-  nodeEndpoint_in: [String!]
-  nodeLocation_eq: ID
-  nodeLocation_in: [ID!]
-  extra_eq: String
-  extra_contains: String
-  extra_startsWith: String
-  extra_endsWith: String
-  extra_in: [String!]
-  nodeLocation: NodeLocationMetadataWhereInput
-  distributionbucketoperatormetadata_none: DistributionBucketOperatorWhereInput
-  distributionbucketoperatormetadata_some: DistributionBucketOperatorWhereInput
-  distributionbucketoperatormetadata_every: DistributionBucketOperatorWhereInput
-  AND: [DistributionBucketOperatorMetadataWhereInput!]
-  OR: [DistributionBucketOperatorMetadataWhereInput!]
-}
-
-input DistributionBucketOperatorMetadataWhereUniqueInput {
-  id: ID!
-}
-
-enum DistributionBucketOperatorOrderByInput {
-  createdAt_ASC
-  createdAt_DESC
-  updatedAt_ASC
-  updatedAt_DESC
-  deletedAt_ASC
-  deletedAt_DESC
-  distributionBucket_ASC
-  distributionBucket_DESC
-  workerId_ASC
-  workerId_DESC
-  status_ASC
-  status_DESC
-  metadata_ASC
-  metadata_DESC
-}
-
-enum DistributionBucketOperatorStatus {
-  INVITED
-  ACTIVE
-}
-
-input DistributionBucketOperatorUpdateInput {
-  distributionBucket: ID
-  workerId: Float
-  status: DistributionBucketOperatorStatus
-  metadata: ID
-}
-
-input DistributionBucketOperatorWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  distributionBucket_eq: ID
-  distributionBucket_in: [ID!]
-  workerId_eq: Int
-  workerId_gt: Int
-  workerId_gte: Int
-  workerId_lt: Int
-  workerId_lte: Int
-  workerId_in: [Int!]
-  status_eq: DistributionBucketOperatorStatus
-  status_in: [DistributionBucketOperatorStatus!]
-  metadata_eq: ID
-  metadata_in: [ID!]
-  distributionBucket: DistributionBucketWhereInput
-  metadata: DistributionBucketOperatorMetadataWhereInput
-  AND: [DistributionBucketOperatorWhereInput!]
-  OR: [DistributionBucketOperatorWhereInput!]
-}
-
-input DistributionBucketOperatorWhereUniqueInput {
-  id: ID!
-}
-
-enum DistributionBucketOrderByInput {
-  createdAt_ASC
-  createdAt_DESC
-  updatedAt_ASC
-  updatedAt_DESC
-  deletedAt_ASC
-  deletedAt_DESC
-  family_ASC
-  family_DESC
-  acceptingNewBags_ASC
-  acceptingNewBags_DESC
-  distributing_ASC
-  distributing_DESC
-}
-
-input DistributionBucketUpdateInput {
-  family: ID
-  acceptingNewBags: Boolean
-  distributing: Boolean
-}
-
-input DistributionBucketWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  family_eq: ID
-  family_in: [ID!]
-  acceptingNewBags_eq: Boolean
-  acceptingNewBags_in: [Boolean!]
-  distributing_eq: Boolean
-  distributing_in: [Boolean!]
-  family: DistributionBucketFamilyWhereInput
-  operators_none: DistributionBucketOperatorWhereInput
-  operators_some: DistributionBucketOperatorWhereInput
-  operators_every: DistributionBucketOperatorWhereInput
-  distributedBags_none: StorageBagWhereInput
-  distributedBags_some: StorageBagWhereInput
-  distributedBags_every: StorageBagWhereInput
-  AND: [DistributionBucketWhereInput!]
-  OR: [DistributionBucketWhereInput!]
-}
-
-input DistributionBucketWhereUniqueInput {
-  id: ID!
-}
-
-type GeoCoordinates implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-  latitude: Float!
-  longitude: Float!
-  boundarySourceBucketFamilyMeta: DistributionBucketFamilyMetadata
-  boundarySourceBucketFamilyMetaId: String
-  nodelocationmetadatacoordinates: [NodeLocationMetadata!]
-}
-
-type GeoCoordinatesConnection {
-  totalCount: Int!
-  edges: [GeoCoordinatesEdge!]!
-  pageInfo: PageInfo!
-}
-
-input GeoCoordinatesCreateInput {
-  latitude: Float!
-  longitude: Float!
-  boundarySourceBucketFamilyMeta: ID
-}
-
-type GeoCoordinatesEdge {
-  node: GeoCoordinates!
-  cursor: String!
-}
-
-enum GeoCoordinatesOrderByInput {
-  createdAt_ASC
-  createdAt_DESC
-  updatedAt_ASC
-  updatedAt_DESC
-  deletedAt_ASC
-  deletedAt_DESC
-  latitude_ASC
-  latitude_DESC
-  longitude_ASC
-  longitude_DESC
-  boundarySourceBucketFamilyMeta_ASC
-  boundarySourceBucketFamilyMeta_DESC
-}
-
-input GeoCoordinatesUpdateInput {
-  latitude: Float
-  longitude: Float
-  boundarySourceBucketFamilyMeta: ID
-}
-
-input GeoCoordinatesWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  latitude_eq: Float
-  latitude_gt: Float
-  latitude_gte: Float
-  latitude_lt: Float
-  latitude_lte: Float
-  latitude_in: [Float!]
-  longitude_eq: Float
-  longitude_gt: Float
-  longitude_gte: Float
-  longitude_lt: Float
-  longitude_lte: Float
-  longitude_in: [Float!]
-  boundarySourceBucketFamilyMeta_eq: ID
-  boundarySourceBucketFamilyMeta_in: [ID!]
-  boundarySourceBucketFamilyMeta: DistributionBucketFamilyMetadataWhereInput
-  nodelocationmetadatacoordinates_none: NodeLocationMetadataWhereInput
-  nodelocationmetadatacoordinates_some: NodeLocationMetadataWhereInput
-  nodelocationmetadatacoordinates_every: NodeLocationMetadataWhereInput
-  AND: [GeoCoordinatesWhereInput!]
-  OR: [GeoCoordinatesWhereInput!]
-}
-
-input GeoCoordinatesWhereUniqueInput {
-  id: ID!
-}
-
-"""
-The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
-"""
-scalar JSONObject
-
-type NodeLocationMetadata implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-
-  """ISO 3166-1 alpha-2 country code (2 letters)"""
-  countryCode: String
-
-  """City name"""
-  city: String
-  coordinates: GeoCoordinates
-  coordinatesId: String
-  distributionbucketoperatormetadatanodeLocation: [DistributionBucketOperatorMetadata!]
-  storagebucketoperatormetadatanodeLocation: [StorageBucketOperatorMetadata!]
-}
-
-type NodeLocationMetadataConnection {
-  totalCount: Int!
-  edges: [NodeLocationMetadataEdge!]!
-  pageInfo: PageInfo!
-}
-
-input NodeLocationMetadataCreateInput {
-  countryCode: String
-  city: String
-  coordinates: ID
-}
-
-type NodeLocationMetadataEdge {
-  node: NodeLocationMetadata!
-  cursor: String!
-}
-
-enum NodeLocationMetadataOrderByInput {
-  createdAt_ASC
-  createdAt_DESC
-  updatedAt_ASC
-  updatedAt_DESC
-  deletedAt_ASC
-  deletedAt_DESC
-  countryCode_ASC
-  countryCode_DESC
-  city_ASC
-  city_DESC
-  coordinates_ASC
-  coordinates_DESC
-}
-
-input NodeLocationMetadataUpdateInput {
-  countryCode: String
-  city: String
-  coordinates: ID
-}
-
-input NodeLocationMetadataWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  countryCode_eq: String
-  countryCode_contains: String
-  countryCode_startsWith: String
-  countryCode_endsWith: String
-  countryCode_in: [String!]
-  city_eq: String
-  city_contains: String
-  city_startsWith: String
-  city_endsWith: String
-  city_in: [String!]
-  coordinates_eq: ID
-  coordinates_in: [ID!]
-  coordinates: GeoCoordinatesWhereInput
-  distributionbucketoperatormetadatanodeLocation_none: DistributionBucketOperatorMetadataWhereInput
-  distributionbucketoperatormetadatanodeLocation_some: DistributionBucketOperatorMetadataWhereInput
-  distributionbucketoperatormetadatanodeLocation_every: DistributionBucketOperatorMetadataWhereInput
-  storagebucketoperatormetadatanodeLocation_none: StorageBucketOperatorMetadataWhereInput
-  storagebucketoperatormetadatanodeLocation_some: StorageBucketOperatorMetadataWhereInput
-  storagebucketoperatormetadatanodeLocation_every: StorageBucketOperatorMetadataWhereInput
-  AND: [NodeLocationMetadataWhereInput!]
-  OR: [NodeLocationMetadataWhereInput!]
-}
-
-input NodeLocationMetadataWhereUniqueInput {
-  id: ID!
-}
-
-type PageInfo {
-  hasNextPage: Boolean!
-  hasPreviousPage: Boolean!
-  startCursor: String
-  endCursor: String
-}
-
-type ProcessorState {
-  lastCompleteBlock: Float!
-  lastProcessedEvent: String!
-  indexerHead: Float!
-  chainHead: Float!
-}
-
-type Query {
-  distributionBucketFamilyMetadata(offset: Int, limit: Int = 50, where: DistributionBucketFamilyMetadataWhereInput, orderBy: [DistributionBucketFamilyMetadataOrderByInput!]): [DistributionBucketFamilyMetadata!]!
-  distributionBucketFamilyMetadataByUniqueInput(where: DistributionBucketFamilyMetadataWhereUniqueInput!): DistributionBucketFamilyMetadata
-  distributionBucketFamilyMetadataConnection(first: Int, after: String, last: Int, before: String, where: DistributionBucketFamilyMetadataWhereInput, orderBy: [DistributionBucketFamilyMetadataOrderByInput!]): DistributionBucketFamilyMetadataConnection!
-  distributionBucketFamilies(offset: Int, limit: Int = 50, where: DistributionBucketFamilyWhereInput, orderBy: [DistributionBucketFamilyOrderByInput!]): [DistributionBucketFamily!]!
-  distributionBucketFamilyByUniqueInput(where: DistributionBucketFamilyWhereUniqueInput!): DistributionBucketFamily
-  distributionBucketFamiliesConnection(first: Int, after: String, last: Int, before: String, where: DistributionBucketFamilyWhereInput, orderBy: [DistributionBucketFamilyOrderByInput!]): DistributionBucketFamilyConnection!
-  distributionBucketOperatorMetadata(offset: Int, limit: Int = 50, where: DistributionBucketOperatorMetadataWhereInput, orderBy: [DistributionBucketOperatorMetadataOrderByInput!]): [DistributionBucketOperatorMetadata!]!
-  distributionBucketOperatorMetadataByUniqueInput(where: DistributionBucketOperatorMetadataWhereUniqueInput!): DistributionBucketOperatorMetadata
-  distributionBucketOperatorMetadataConnection(first: Int, after: String, last: Int, before: String, where: DistributionBucketOperatorMetadataWhereInput, orderBy: [DistributionBucketOperatorMetadataOrderByInput!]): DistributionBucketOperatorMetadataConnection!
-  distributionBucketOperators(offset: Int, limit: Int = 50, where: DistributionBucketOperatorWhereInput, orderBy: [DistributionBucketOperatorOrderByInput!]): [DistributionBucketOperator!]!
-  distributionBucketOperatorByUniqueInput(where: DistributionBucketOperatorWhereUniqueInput!): DistributionBucketOperator
-  distributionBucketOperatorsConnection(first: Int, after: String, last: Int, before: String, where: DistributionBucketOperatorWhereInput, orderBy: [DistributionBucketOperatorOrderByInput!]): DistributionBucketOperatorConnection!
-  distributionBuckets(offset: Int, limit: Int = 50, where: DistributionBucketWhereInput, orderBy: [DistributionBucketOrderByInput!]): [DistributionBucket!]!
-  distributionBucketByUniqueInput(where: DistributionBucketWhereUniqueInput!): DistributionBucket
-  distributionBucketsConnection(first: Int, after: String, last: Int, before: String, where: DistributionBucketWhereInput, orderBy: [DistributionBucketOrderByInput!]): DistributionBucketConnection!
-  geoCoordinates(offset: Int, limit: Int = 50, where: GeoCoordinatesWhereInput, orderBy: [GeoCoordinatesOrderByInput!]): [GeoCoordinates!]!
-  geoCoordinatesByUniqueInput(where: GeoCoordinatesWhereUniqueInput!): GeoCoordinates
-  geoCoordinatesConnection(first: Int, after: String, last: Int, before: String, where: GeoCoordinatesWhereInput, orderBy: [GeoCoordinatesOrderByInput!]): GeoCoordinatesConnection!
-  nodeLocationMetadata(offset: Int, limit: Int = 50, where: NodeLocationMetadataWhereInput, orderBy: [NodeLocationMetadataOrderByInput!]): [NodeLocationMetadata!]!
-  nodeLocationMetadataByUniqueInput(where: NodeLocationMetadataWhereUniqueInput!): NodeLocationMetadata
-  nodeLocationMetadataConnection(first: Int, after: String, last: Int, before: String, where: NodeLocationMetadataWhereInput, orderBy: [NodeLocationMetadataOrderByInput!]): NodeLocationMetadataConnection!
-  storageBags(offset: Int, limit: Int = 50, where: StorageBagWhereInput, orderBy: [StorageBagOrderByInput!]): [StorageBag!]!
-  storageBagByUniqueInput(where: StorageBagWhereUniqueInput!): StorageBag
-  storageBagsConnection(first: Int, after: String, last: Int, before: String, where: StorageBagWhereInput, orderBy: [StorageBagOrderByInput!]): StorageBagConnection!
-  storageBucketOperatorMetadata(offset: Int, limit: Int = 50, where: StorageBucketOperatorMetadataWhereInput, orderBy: [StorageBucketOperatorMetadataOrderByInput!]): [StorageBucketOperatorMetadata!]!
-  storageBucketOperatorMetadataByUniqueInput(where: StorageBucketOperatorMetadataWhereUniqueInput!): StorageBucketOperatorMetadata
-  storageBucketOperatorMetadataConnection(first: Int, after: String, last: Int, before: String, where: StorageBucketOperatorMetadataWhereInput, orderBy: [StorageBucketOperatorMetadataOrderByInput!]): StorageBucketOperatorMetadataConnection!
-  storageBuckets(offset: Int, limit: Int = 50, where: StorageBucketWhereInput, orderBy: [StorageBucketOrderByInput!]): [StorageBucket!]!
-  storageBucketByUniqueInput(where: StorageBucketWhereUniqueInput!): StorageBucket
-  storageBucketsConnection(first: Int, after: String, last: Int, before: String, where: StorageBucketWhereInput, orderBy: [StorageBucketOrderByInput!]): StorageBucketConnection!
-  storageDataObjects(offset: Int, limit: Int = 50, where: StorageDataObjectWhereInput, orderBy: [StorageDataObjectOrderByInput!]): [StorageDataObject!]!
-  storageDataObjectByUniqueInput(where: StorageDataObjectWhereUniqueInput!): StorageDataObject
-  storageDataObjectsConnection(first: Int, after: String, last: Int, before: String, where: StorageDataObjectWhereInput, orderBy: [StorageDataObjectOrderByInput!]): StorageDataObjectConnection!
-  storageSystemParameters(offset: Int, limit: Int = 50, where: StorageSystemParametersWhereInput, orderBy: [StorageSystemParametersOrderByInput!]): [StorageSystemParameters!]!
-  storageSystemParametersByUniqueInput(where: StorageSystemParametersWhereUniqueInput!): StorageSystemParameters
-  storageSystemParametersConnection(first: Int, after: String, last: Int, before: String, where: StorageSystemParametersWhereInput, orderBy: [StorageSystemParametersOrderByInput!]): StorageSystemParametersConnection!
-}
-
-type StandardDeleteResponse {
-  id: ID!
-}
-
-type StorageBag implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-  objects: [StorageDataObject!]!
-  storedBy: [StorageBucket!]!
-  distributedBy: [DistributionBucket!]!
-
-  """Owner of the storage bag"""
-  owner: StorageBagOwner!
-}
-
-type StorageBagConnection {
-  totalCount: Int!
-  edges: [StorageBagEdge!]!
-  pageInfo: PageInfo!
-}
-
-input StorageBagCreateInput {
-  owner: JSONObject!
-}
-
-type StorageBagEdge {
-  node: StorageBag!
-  cursor: String!
-}
-
-enum StorageBagOrderByInput {
-  createdAt_ASC
-  createdAt_DESC
-  updatedAt_ASC
-  updatedAt_DESC
-  deletedAt_ASC
-  deletedAt_DESC
-}
-
-union StorageBagOwner = StorageBagOwnerCouncil | StorageBagOwnerWorkingGroup | StorageBagOwnerMember | StorageBagOwnerChannel | StorageBagOwnerDAO
-
-type StorageBagOwnerChannel {
-  channelId: Int
-}
-
-input StorageBagOwnerChannelCreateInput {
-  channelId: Float
-}
-
-input StorageBagOwnerChannelUpdateInput {
-  channelId: Float
-}
-
-input StorageBagOwnerChannelWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  channelId_eq: Int
-  channelId_gt: Int
-  channelId_gte: Int
-  channelId_lt: Int
-  channelId_lte: Int
-  channelId_in: [Int!]
-  AND: [StorageBagOwnerChannelWhereInput!]
-  OR: [StorageBagOwnerChannelWhereInput!]
-}
-
-input StorageBagOwnerChannelWhereUniqueInput {
-  id: ID!
-}
-
-type StorageBagOwnerCouncil {
-  phantom: Int
-}
-
-input StorageBagOwnerCouncilCreateInput {
-  phantom: Float
-}
-
-input StorageBagOwnerCouncilUpdateInput {
-  phantom: Float
-}
-
-input StorageBagOwnerCouncilWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  phantom_eq: Int
-  phantom_gt: Int
-  phantom_gte: Int
-  phantom_lt: Int
-  phantom_lte: Int
-  phantom_in: [Int!]
-  AND: [StorageBagOwnerCouncilWhereInput!]
-  OR: [StorageBagOwnerCouncilWhereInput!]
-}
-
-input StorageBagOwnerCouncilWhereUniqueInput {
-  id: ID!
-}
-
-type StorageBagOwnerDAO {
-  daoId: Int
-}
-
-input StorageBagOwnerDAOCreateInput {
-  daoId: Float
-}
-
-input StorageBagOwnerDAOUpdateInput {
-  daoId: Float
-}
-
-input StorageBagOwnerDAOWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  daoId_eq: Int
-  daoId_gt: Int
-  daoId_gte: Int
-  daoId_lt: Int
-  daoId_lte: Int
-  daoId_in: [Int!]
-  AND: [StorageBagOwnerDAOWhereInput!]
-  OR: [StorageBagOwnerDAOWhereInput!]
-}
-
-input StorageBagOwnerDAOWhereUniqueInput {
-  id: ID!
-}
-
-type StorageBagOwnerMember {
-  memberId: Int
-}
-
-input StorageBagOwnerMemberCreateInput {
-  memberId: Float
-}
-
-input StorageBagOwnerMemberUpdateInput {
-  memberId: Float
-}
-
-input StorageBagOwnerMemberWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  memberId_eq: Int
-  memberId_gt: Int
-  memberId_gte: Int
-  memberId_lt: Int
-  memberId_lte: Int
-  memberId_in: [Int!]
-  AND: [StorageBagOwnerMemberWhereInput!]
-  OR: [StorageBagOwnerMemberWhereInput!]
-}
-
-input StorageBagOwnerMemberWhereUniqueInput {
-  id: ID!
-}
-
-type StorageBagOwnerWorkingGroup {
-  workingGroupId: String
-}
-
-input StorageBagOwnerWorkingGroupCreateInput {
-  workingGroupId: String
-}
-
-input StorageBagOwnerWorkingGroupUpdateInput {
-  workingGroupId: String
-}
-
-input StorageBagOwnerWorkingGroupWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  workingGroupId_eq: String
-  workingGroupId_contains: String
-  workingGroupId_startsWith: String
-  workingGroupId_endsWith: String
-  workingGroupId_in: [String!]
-  AND: [StorageBagOwnerWorkingGroupWhereInput!]
-  OR: [StorageBagOwnerWorkingGroupWhereInput!]
-}
-
-input StorageBagOwnerWorkingGroupWhereUniqueInput {
-  id: ID!
-}
-
-input StorageBagUpdateInput {
-  owner: JSONObject
-}
-
-input StorageBagWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  owner_json: JSONObject
-  objects_none: StorageDataObjectWhereInput
-  objects_some: StorageDataObjectWhereInput
-  objects_every: StorageDataObjectWhereInput
-  storedBy_none: StorageBucketWhereInput
-  storedBy_some: StorageBucketWhereInput
-  storedBy_every: StorageBucketWhereInput
-  distributedBy_none: DistributionBucketWhereInput
-  distributedBy_some: DistributionBucketWhereInput
-  distributedBy_every: DistributionBucketWhereInput
-  AND: [StorageBagWhereInput!]
-  OR: [StorageBagWhereInput!]
-}
-
-input StorageBagWhereUniqueInput {
-  id: ID!
-}
-
-type StorageBucket implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-
-  """Current bucket operator status"""
-  operatorStatus: StorageBucketOperatorStatus!
-  operatorMetadata: StorageBucketOperatorMetadata
-  operatorMetadataId: String
-
-  """Whether the bucket is accepting any new storage bags"""
-  acceptingNewBags: Boolean!
-  storedBags: [StorageBag!]!
-
-  """Bucket's data object size limit in bytes"""
-  dataObjectsSizeLimit: BigInt!
-
-  """Bucket's data object count limit"""
-  dataObjectCountLimit: BigInt!
-}
-
-type StorageBucketConnection {
-  totalCount: Int!
-  edges: [StorageBucketEdge!]!
-  pageInfo: PageInfo!
-}
-
-input StorageBucketCreateInput {
-  operatorStatus: JSONObject!
-  operatorMetadata: ID
-  acceptingNewBags: Boolean!
-  dataObjectsSizeLimit: BigInt!
-  dataObjectCountLimit: BigInt!
-}
-
-type StorageBucketEdge {
-  node: StorageBucket!
-  cursor: String!
-}
-
-type StorageBucketOperatorMetadata implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-
-  """Root node endpoint"""
-  nodeEndpoint: String
-  nodeLocation: NodeLocationMetadata
-  nodeLocationId: String
-
-  """Additional information about the node/operator"""
-  extra: String
-  storagebucketoperatorMetadata: [StorageBucket!]
-}
-
-type StorageBucketOperatorMetadataConnection {
-  totalCount: Int!
-  edges: [StorageBucketOperatorMetadataEdge!]!
-  pageInfo: PageInfo!
-}
-
-input StorageBucketOperatorMetadataCreateInput {
-  nodeEndpoint: String
-  nodeLocation: ID
-  extra: String
-}
-
-type StorageBucketOperatorMetadataEdge {
-  node: StorageBucketOperatorMetadata!
-  cursor: String!
-}
-
-enum StorageBucketOperatorMetadataOrderByInput {
-  createdAt_ASC
-  createdAt_DESC
-  updatedAt_ASC
-  updatedAt_DESC
-  deletedAt_ASC
-  deletedAt_DESC
-  nodeEndpoint_ASC
-  nodeEndpoint_DESC
-  nodeLocation_ASC
-  nodeLocation_DESC
-  extra_ASC
-  extra_DESC
-}
-
-input StorageBucketOperatorMetadataUpdateInput {
-  nodeEndpoint: String
-  nodeLocation: ID
-  extra: String
-}
-
-input StorageBucketOperatorMetadataWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  nodeEndpoint_eq: String
-  nodeEndpoint_contains: String
-  nodeEndpoint_startsWith: String
-  nodeEndpoint_endsWith: String
-  nodeEndpoint_in: [String!]
-  nodeLocation_eq: ID
-  nodeLocation_in: [ID!]
-  extra_eq: String
-  extra_contains: String
-  extra_startsWith: String
-  extra_endsWith: String
-  extra_in: [String!]
-  nodeLocation: NodeLocationMetadataWhereInput
-  storagebucketoperatorMetadata_none: StorageBucketWhereInput
-  storagebucketoperatorMetadata_some: StorageBucketWhereInput
-  storagebucketoperatorMetadata_every: StorageBucketWhereInput
-  AND: [StorageBucketOperatorMetadataWhereInput!]
-  OR: [StorageBucketOperatorMetadataWhereInput!]
-}
-
-input StorageBucketOperatorMetadataWhereUniqueInput {
-  id: ID!
-}
-
-union StorageBucketOperatorStatus = StorageBucketOperatorStatusMissing | StorageBucketOperatorStatusInvited | StorageBucketOperatorStatusActive
-
-type StorageBucketOperatorStatusActive {
-  workerId: Int!
-}
-
-input StorageBucketOperatorStatusActiveCreateInput {
-  workerId: Float!
-}
-
-input StorageBucketOperatorStatusActiveUpdateInput {
-  workerId: Float
-}
-
-input StorageBucketOperatorStatusActiveWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  workerId_eq: Int
-  workerId_gt: Int
-  workerId_gte: Int
-  workerId_lt: Int
-  workerId_lte: Int
-  workerId_in: [Int!]
-  AND: [StorageBucketOperatorStatusActiveWhereInput!]
-  OR: [StorageBucketOperatorStatusActiveWhereInput!]
-}
-
-input StorageBucketOperatorStatusActiveWhereUniqueInput {
-  id: ID!
-}
-
-type StorageBucketOperatorStatusInvited {
-  workerId: Int!
-}
-
-input StorageBucketOperatorStatusInvitedCreateInput {
-  workerId: Float!
-}
-
-input StorageBucketOperatorStatusInvitedUpdateInput {
-  workerId: Float
-}
-
-input StorageBucketOperatorStatusInvitedWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  workerId_eq: Int
-  workerId_gt: Int
-  workerId_gte: Int
-  workerId_lt: Int
-  workerId_lte: Int
-  workerId_in: [Int!]
-  AND: [StorageBucketOperatorStatusInvitedWhereInput!]
-  OR: [StorageBucketOperatorStatusInvitedWhereInput!]
-}
-
-input StorageBucketOperatorStatusInvitedWhereUniqueInput {
-  id: ID!
-}
-
-type StorageBucketOperatorStatusMissing {
-  phantom: Int
-}
-
-input StorageBucketOperatorStatusMissingCreateInput {
-  phantom: Float
-}
-
-input StorageBucketOperatorStatusMissingUpdateInput {
-  phantom: Float
-}
-
-input StorageBucketOperatorStatusMissingWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  phantom_eq: Int
-  phantom_gt: Int
-  phantom_gte: Int
-  phantom_lt: Int
-  phantom_lte: Int
-  phantom_in: [Int!]
-  AND: [StorageBucketOperatorStatusMissingWhereInput!]
-  OR: [StorageBucketOperatorStatusMissingWhereInput!]
-}
-
-input StorageBucketOperatorStatusMissingWhereUniqueInput {
-  id: ID!
-}
-
-enum StorageBucketOrderByInput {
-  createdAt_ASC
-  createdAt_DESC
-  updatedAt_ASC
-  updatedAt_DESC
-  deletedAt_ASC
-  deletedAt_DESC
-  operatorMetadata_ASC
-  operatorMetadata_DESC
-  acceptingNewBags_ASC
-  acceptingNewBags_DESC
-  dataObjectsSizeLimit_ASC
-  dataObjectsSizeLimit_DESC
-  dataObjectCountLimit_ASC
-  dataObjectCountLimit_DESC
-}
-
-input StorageBucketUpdateInput {
-  operatorStatus: JSONObject
-  operatorMetadata: ID
-  acceptingNewBags: Boolean
-  dataObjectsSizeLimit: BigInt
-  dataObjectCountLimit: BigInt
-}
-
-input StorageBucketWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  operatorStatus_json: JSONObject
-  operatorMetadata_eq: ID
-  operatorMetadata_in: [ID!]
-  acceptingNewBags_eq: Boolean
-  acceptingNewBags_in: [Boolean!]
-  dataObjectsSizeLimit_eq: BigInt
-  dataObjectsSizeLimit_gt: BigInt
-  dataObjectsSizeLimit_gte: BigInt
-  dataObjectsSizeLimit_lt: BigInt
-  dataObjectsSizeLimit_lte: BigInt
-  dataObjectsSizeLimit_in: [BigInt!]
-  dataObjectCountLimit_eq: BigInt
-  dataObjectCountLimit_gt: BigInt
-  dataObjectCountLimit_gte: BigInt
-  dataObjectCountLimit_lt: BigInt
-  dataObjectCountLimit_lte: BigInt
-  dataObjectCountLimit_in: [BigInt!]
-  operatorMetadata: StorageBucketOperatorMetadataWhereInput
-  storedBags_none: StorageBagWhereInput
-  storedBags_some: StorageBagWhereInput
-  storedBags_every: StorageBagWhereInput
-  AND: [StorageBucketWhereInput!]
-  OR: [StorageBucketWhereInput!]
-}
-
-input StorageBucketWhereUniqueInput {
-  id: ID!
-}
-
-type StorageDataObject implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-
-  """
-  Whether the data object was uploaded and accepted by the storage provider
-  """
-  isAccepted: Boolean!
-
-  """Data object size in bytes"""
-  size: BigInt!
-  storageBag: StorageBag!
-  storageBagId: String!
-
-  """IPFS content hash"""
-  ipfsHash: String!
-
-  """Public key used to authenticate the uploader by the storage provider"""
-  authenticationKey: String
-}
-
-type StorageDataObjectConnection {
-  totalCount: Int!
-  edges: [StorageDataObjectEdge!]!
-  pageInfo: PageInfo!
-}
-
-input StorageDataObjectCreateInput {
-  isAccepted: Boolean!
-  size: BigInt!
-  storageBag: ID!
-  ipfsHash: String!
-  authenticationKey: String
-}
-
-type StorageDataObjectEdge {
-  node: StorageDataObject!
-  cursor: String!
-}
-
-enum StorageDataObjectOrderByInput {
-  createdAt_ASC
-  createdAt_DESC
-  updatedAt_ASC
-  updatedAt_DESC
-  deletedAt_ASC
-  deletedAt_DESC
-  isAccepted_ASC
-  isAccepted_DESC
-  size_ASC
-  size_DESC
-  storageBag_ASC
-  storageBag_DESC
-  ipfsHash_ASC
-  ipfsHash_DESC
-  authenticationKey_ASC
-  authenticationKey_DESC
-}
-
-input StorageDataObjectUpdateInput {
-  isAccepted: Boolean
-  size: BigInt
-  storageBag: ID
-  ipfsHash: String
-  authenticationKey: String
-}
-
-input StorageDataObjectWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  isAccepted_eq: Boolean
-  isAccepted_in: [Boolean!]
-  size_eq: BigInt
-  size_gt: BigInt
-  size_gte: BigInt
-  size_lt: BigInt
-  size_lte: BigInt
-  size_in: [BigInt!]
-  storageBag_eq: ID
-  storageBag_in: [ID!]
-  ipfsHash_eq: String
-  ipfsHash_contains: String
-  ipfsHash_startsWith: String
-  ipfsHash_endsWith: String
-  ipfsHash_in: [String!]
-  authenticationKey_eq: String
-  authenticationKey_contains: String
-  authenticationKey_startsWith: String
-  authenticationKey_endsWith: String
-  authenticationKey_in: [String!]
-  storageBag: StorageBagWhereInput
-  AND: [StorageDataObjectWhereInput!]
-  OR: [StorageDataObjectWhereInput!]
-}
-
-input StorageDataObjectWhereUniqueInput {
-  id: ID!
-}
-
-"""Global storage system parameters"""
-type StorageSystemParameters implements BaseGraphQLObject {
-  id: ID!
-  createdAt: DateTime!
-  createdById: String!
-  updatedAt: DateTime
-  updatedById: String
-  deletedAt: DateTime
-  deletedById: String
-  version: Int!
-
-  """Blacklisted content hashes"""
-  blacklist: [String!]!
-}
-
-type StorageSystemParametersConnection {
-  totalCount: Int!
-  edges: [StorageSystemParametersEdge!]!
-  pageInfo: PageInfo!
-}
-
-input StorageSystemParametersCreateInput {
-  blacklist: [String!]!
-}
-
-type StorageSystemParametersEdge {
-  node: StorageSystemParameters!
-  cursor: String!
-}
-
-enum StorageSystemParametersOrderByInput {
-  createdAt_ASC
-  createdAt_DESC
-  updatedAt_ASC
-  updatedAt_DESC
-  deletedAt_ASC
-  deletedAt_DESC
-}
-
-input StorageSystemParametersUpdateInput {
-  blacklist: [String!]
-}
-
-input StorageSystemParametersWhereInput {
-  id_eq: ID
-  id_in: [ID!]
-  createdAt_eq: DateTime
-  createdAt_lt: DateTime
-  createdAt_lte: DateTime
-  createdAt_gt: DateTime
-  createdAt_gte: DateTime
-  createdById_eq: ID
-  createdById_in: [ID!]
-  updatedAt_eq: DateTime
-  updatedAt_lt: DateTime
-  updatedAt_lte: DateTime
-  updatedAt_gt: DateTime
-  updatedAt_gte: DateTime
-  updatedById_eq: ID
-  updatedById_in: [ID!]
-  deletedAt_all: Boolean
-  deletedAt_eq: DateTime
-  deletedAt_lt: DateTime
-  deletedAt_lte: DateTime
-  deletedAt_gt: DateTime
-  deletedAt_gte: DateTime
-  deletedById_eq: ID
-  deletedById_in: [ID!]
-  AND: [StorageSystemParametersWhereInput!]
-  OR: [StorageSystemParametersWhereInput!]
-}
-
-input StorageSystemParametersWhereUniqueInput {
-  id: ID!
-}
-
-type Subscription {
-  stateSubscription: ProcessorState!
-}

+ 27 - 20
distributor-node/src/services/networking/query-node/queries/queries.graphql

@@ -4,19 +4,24 @@ fragment DataObjectDetails on StorageDataObject {
   ipfsHash
   isAccepted
   storageBag {
-    storedBy {
-      id
-      operatorMetadata {
-        nodeEndpoint
-      }
-      operatorStatus {
-        __typename
+    storageAssignments {
+      storageBucket {
+        id
+        operatorMetadata {
+          nodeEndpoint
+        }
+        operatorStatus {
+          __typename
+        }
       }
     }
-    distributedBy {
-      id
-      operators {
-        workerId
+    distirbutionAssignments {
+      distributionBucket {
+        id
+        operators {
+          workerId
+          status
+        }
       }
     }
   }
@@ -28,26 +33,28 @@ query getDataObjectDetails($id: ID!) {
   }
 }
 
-fragment DistirubtionBucketsWithObjects on DistributionBucket {
+fragment DistirubtionBucketWithObjects on DistributionBucket {
   id
-  distributedBags {
-    objects {
-      id
-      size
-      ipfsHash
+  bagAssignments {
+    storageBag {
+      objects {
+        id
+        size
+        ipfsHash
+      }
     }
   }
 }
 
 query getDistributionBucketsWithObjectsByIds($ids: [ID!]) {
   distributionBuckets(where: { id_in: $ids }) {
-    ...DistirubtionBucketsWithObjects
+    ...DistirubtionBucketWithObjects
   }
 }
 
 query getDistributionBucketsWithObjectsByWorkerId($workerId: Int!) {
-  distributionBuckets(where: { operators_some: { workerId_eq: $workerId } }) {
-    ...DistirubtionBucketsWithObjects
+  distributionBuckets(where: { operators_some: { workerId_eq: $workerId, status_eq: ACTIVE } }) {
+    ...DistirubtionBucketWithObjects
   }
 }
 

+ 6 - 8
distributor-node/src/services/server/controllers/public.ts

@@ -87,7 +87,6 @@ export class PublicApiController {
     const { promise, objectSize } = pendingDownload
     const response = await promise
     const source = new URL(response.config.url!)
-    // TODO: FIXME: This may not be available soon! (may be removed from storage node)
     const contentType = response.headers['content-type'] || DEFAULT_CONTENT_TYPE
     res.setHeader('content-type', contentType)
     // Allow caching pendingDownload reponse only for very short period of time and requite revalidation,
@@ -211,13 +210,12 @@ export class PublicApiController {
           message: 'Data object does not exist',
         }
         res.status(404).json(errorRes)
-        // TODO: FIXME: UNCOMMENT!
-        // } else if (!objectInfo.isSupported) {
-        //   const errorRes: ErrorResponse = {
-        //     message: 'Data object not served by this node',
-        //   }
-        //   res.status(421).json(errorRes)
-        //   // TODO: Redirect to other node that supports it?
+      } else if (!objectInfo.isSupported) {
+        const errorRes: ErrorResponse = {
+          message: 'Data object not served by this node',
+        }
+        res.status(421).json(errorRes)
+        // TODO: Try to direct to a node that supports it?
       } else {
         const { data: objectData } = objectInfo
         if (!objectData) {

+ 1 - 2
package.json

@@ -45,8 +45,7 @@
     "bn.js": "^5.1.2",
     "rxjs": "^6.6.2",
     "typeorm": "^0.2.31",
-    "pg": "^8.4.0",
-    "chalk": "^4.0.0"
+    "pg": "^8.4.0"
   },
   "devDependencies": {
     "eslint": "^7.25.0",

+ 191 - 146
yarn.lock

@@ -33,16 +33,6 @@
     call-me-maybe "^1.0.1"
     js-yaml "^4.1.0"
 
-"@apidevtools/json-schema-ref-parser@9.0.9":
-  version "9.0.9"
-  resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#d720f9256e3609621280584f2b47ae165359268b"
-  integrity sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==
-  dependencies:
-    "@jsdevtools/ono" "^7.1.3"
-    "@types/json-schema" "^7.0.6"
-    call-me-maybe "^1.0.1"
-    js-yaml "^4.1.0"
-
 "@apollo/client@^3.2.5":
   version "3.3.15"
   resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.3.15.tgz#bdd230894aac4beb8ade2b472a1d3c9ea6152812"
@@ -615,7 +605,7 @@
   resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz#0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37"
   integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw==
 
-"@babel/parser@^7.10.4", "@babel/parser@^7.15.4":
+"@babel/parser@^7.10.4", "@babel/parser@^7.15.4", "@babel/parser@^7.15.5":
   version "7.15.5"
   resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.5.tgz#d33a58ca69facc05b26adfe4abebfed56c1c2dac"
   integrity sha512-2hQstc6I7T6tQsWzlboMh3SgMRPaS4H6H7cPQsJkdzTzEGqQrpLDsE2BGASU5sBPoEQyHzeqU6C8uKbFeEk6sg==
@@ -1665,7 +1655,7 @@
     "@babel/helper-validator-identifier" "^7.12.11"
     to-fast-properties "^2.0.0"
 
-"@babel/types@^7.10.4", "@babel/types@^7.15.4":
+"@babel/types@^7.10.4", "@babel/types@^7.14.9", "@babel/types@^7.15.4":
   version "7.15.4"
   resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.4.tgz#74eeb86dbd6748d2741396557b9860e57fce0a0d"
   integrity sha512-0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw==
@@ -3810,6 +3800,29 @@
   resolved "https://registry.yarnpkg.com/@multiformats/base-x/-/base-x-4.0.1.tgz#95ff0fa58711789d53aefb2590a8b7a4e715d121"
   integrity sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==
 
+"@nestjs/common@7.6.18":
+  version "7.6.18"
+  resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-7.6.18.tgz#d89e6d248985eec13af60507a8725cb2142d660a"
+  integrity sha512-BUJQHNhWzwWOkS4Ryndzd4HTeRObcAWV2Fh+ermyo3q3xYQQzNoEWclJVL/wZec8AONELwIJ+PSpWI53VP0leg==
+  dependencies:
+    axios "0.21.1"
+    iterare "1.2.1"
+    tslib "2.2.0"
+    uuid "8.3.2"
+
+"@nestjs/core@7.6.18":
+  version "7.6.18"
+  resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-7.6.18.tgz#36448f0ae7f7d08f032e1e7e53b4a4c82ae844d7"
+  integrity sha512-CGu20OjIxgFDY7RJT5t1TDGL8wSlTSlbZEkn8U5OlICZEB3WIpi98G7ajJpnRWmEgW8S4aDJmRKGjT+Ntj5U4A==
+  dependencies:
+    "@nuxtjs/opencollective" "0.3.2"
+    fast-safe-stringify "2.0.7"
+    iterare "1.2.1"
+    object-hash "2.1.1"
+    path-to-regexp "3.2.0"
+    tslib "2.2.0"
+    uuid "8.3.2"
+
 "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents":
   version "2.1.8-no-fsevents"
   resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz#da7c3996b8e6e19ebd14d82eaced2313e7769f9b"
@@ -5358,6 +5371,11 @@
   dependencies:
     defer-to-connect "^1.0.1"
 
+"@tokenizer/token@^0.1.1":
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.1.1.tgz#f0d92c12f87079ddfd1b29f614758b9696bc29e3"
+  integrity sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==
+
 "@tokenizer/token@^0.3.0":
   version "0.3.0"
   resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276"
@@ -5594,6 +5612,13 @@
   resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d"
   integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==
 
+"@types/express-http-proxy@^1.6.2":
+  version "1.6.3"
+  resolved "https://registry.yarnpkg.com/@types/express-http-proxy/-/express-http-proxy-1.6.3.tgz#35fc0fb32e7741bc50619869de381ef759621fd0"
+  integrity sha512-dX3+Cb0HNPtqhC5JUWzzuODHRlgJRZx7KvwKVVwkOvm+8vOtpsh3qy8+qLv5X1hs4vdVHWKyXf86DwJot5H8pg==
+  dependencies:
+    "@types/express" "*"
+
 "@types/express-serve-static-core@*":
   version "4.17.24"
   resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07"
@@ -5901,7 +5926,12 @@
   resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.3.tgz#9f33cd6fbf0d5ec575dc8c8fc69c7fec1b4eb200"
   integrity sha512-5t9BhoORasuF5uCPr+d5/hdB++zRFUTMIZOzbNkr+jZh3yQht4HYbRDyj9fY8n2TZT30iW9huzav73x4NikqWg==
 
-"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6":
+"@types/js-yaml@^4.0.0":
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.3.tgz#9f33cd6fbf0d5ec575dc8c8fc69c7fec1b4eb200"
+  integrity sha512-5t9BhoORasuF5uCPr+d5/hdB++zRFUTMIZOzbNkr+jZh3yQht4HYbRDyj9fY8n2TZT30iW9huzav73x4NikqWg==
+
+"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5":
   version "7.0.7"
   resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad"
   integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==
@@ -7638,10 +7668,10 @@ ajv@^8.0.1:
     require-from-string "^2.0.2"
     uri-js "^4.2.2"
 
-ajv@^7:
-  version "7.2.4"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.2.4.tgz#8e239d4d56cf884bccca8cca362f508446dc160f"
-  integrity sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A==
+ajv@^8.0.1:
+  version "8.2.0"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.2.0.tgz#c89d3380a784ce81b2085f48811c4c101df4c602"
+  integrity sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==
   dependencies:
     fast-deep-equal "^3.1.1"
     json-schema-traverse "^1.0.0"
@@ -7747,6 +7777,11 @@ ansi-regex@^5.0.0:
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
   integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
 
+ansi-styles@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+  integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
+
 ansi-styles@^3.2.0, ansi-styles@^3.2.1:
   version "3.2.1"
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
@@ -8568,6 +8603,13 @@ aws4@^1.8.0:
   resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
   integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
 
+axios@0.21.1:
+  version "0.21.1"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
+  integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
+  dependencies:
+    follow-redirects "^1.10.0"
+
 axios@^0.18.0:
   version "0.18.1"
   resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.1.tgz#ff3f0de2e7b5d180e757ad98000f1081b87bcea3"
@@ -8583,6 +8625,13 @@ axios@^0.19.0:
   dependencies:
     follow-redirects "1.5.10"
 
+axios@^0.21.1:
+  version "0.21.4"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
+  integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
+  dependencies:
+    follow-redirects "^1.14.0"
+
 babel-code-frame@^6.22.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
@@ -9643,17 +9692,6 @@ browserslist@^4.16.6, browserslist@^4.16.8, browserslist@^4.8.5:
     escalade "^3.1.1"
     node-releases "^1.1.75"
 
-browserslist@^4.16.6:
-  version "4.16.6"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
-  integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
-  dependencies:
-    caniuse-lite "^1.0.30001219"
-    colorette "^1.2.2"
-    electron-to-chromium "^1.3.723"
-    escalade "^3.1.1"
-    node-releases "^1.1.71"
-
 bs-logger@0.x:
   version "0.2.6"
   resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
@@ -10145,7 +10183,7 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001109, can
   resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001219.tgz#5bfa5d0519f41f993618bd318f606a4c4c16156b"
   integrity sha512-c0yixVG4v9KBc/tQ2rlbB3A/bgBFRvl8h8M4IeUbqCca4gsiCfvtaheUssbnux/Mb66Vjz7x8yYjDgYcNQOhyQ==
 
-caniuse-lite@^1.0.30001254:
+caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001254:
   version "1.0.30001255"
   resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001255.tgz#f3b09b59ab52e39e751a569523618f47c4298ca0"
   integrity sha512-F+A3N9jTZL882f/fg/WWVnKSu6IOo3ueLz4zwaOPbPYHNmM/ZaDUyzyJwS1mZhX7Ex5jqTyW599Gdelh5PDYLQ==
@@ -10238,6 +10276,34 @@ chalk@*, chalk@1.1.3, chalk@2.4.2, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3, cha
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
 
+chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+  integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
+  dependencies:
+    ansi-styles "^2.2.1"
+    escape-string-regexp "^1.0.2"
+    has-ansi "^2.0.0"
+    strip-ansi "^3.0.0"
+    supports-color "^2.0.0"
+
+chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2:
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+  dependencies:
+    ansi-styles "^3.2.1"
+    escape-string-regexp "^1.0.5"
+    supports-color "^5.3.0"
+
+chalk@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+  integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
 change-case-all@1.0.14:
   version "1.0.14"
   resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.14.tgz#bac04da08ad143278d0ac3dda7eccd39280bfba1"
@@ -10669,11 +10735,6 @@ cli-spinners@^2.2.0, cli-spinners@^2.5.0:
   resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939"
   integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==
 
-cli-spinners@^2.5.0:
-  version "2.6.0"
-  resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939"
-  integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==
-
 cli-table3@0.5.1, cli-table3@~0.5.0:
   version "0.5.1"
   resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202"
@@ -11020,11 +11081,6 @@ colors@1.0.3:
   resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
   integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=
 
-colorette@^1.2.2:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
-  integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
-
 colors@1.4.0, colors@^1.1.2, colors@^1.2.1, colors@^1.3.3:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
@@ -11272,12 +11328,7 @@ connect@3.7.0:
     parseurl "~1.3.3"
     utils-merge "1.0.1"
 
-consola@^2.15.0:
-  version "2.15.3"
-  resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550"
-  integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==
-
-consola@^2.6.0:
+consola@^2.15.0, consola@^2.6.0:
   version "2.15.3"
   resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550"
   integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==
@@ -13318,6 +13369,11 @@ electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.719:
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.723.tgz#52769a75635342a4db29af5f1e40bd3dad02c877"
   integrity sha512-L+WXyXI7c7+G1V8ANzRsPI5giiimLAUDC6Zs1ojHHPhYXb3k/iTABFmWjivEtsWrRQymjnO66/rO2ZTABGdmWg==
 
+electron-to-chromium@^1.3.723:
+  version "1.3.831"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.831.tgz#96201f83f6eef05054b532a897fd3cd73cd60250"
+  integrity sha512-0tc2lPzgEipHCyRcvDTTaBk5+jSPfNaCvbQdevNMqJkHLvrBiwhygPR0hDyPZEK7Xztvv+58gSFKJ/AUVT1yYQ==
+
 electron-to-chromium@^1.3.830:
   version "1.3.830"
   resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.830.tgz#40e3144204f8ca11b2cebec83cf14c20d3499236"
@@ -15324,6 +15380,11 @@ follow-redirects@^1.0.0, follow-redirects@^1.10.0:
   resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.0.tgz#f5d260f95c5f8c105894491feee5dc8993b402fe"
   integrity sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==
 
+follow-redirects@^1.14.0:
+  version "1.14.3"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.3.tgz#6ada78118d8d24caee595595accdc0ac6abd022e"
+  integrity sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw==
+
 for-each@^0.3.3:
   version "0.3.3"
   resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
@@ -16584,10 +16645,12 @@ hard-rejection@^2.1.0:
   resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883"
   integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==
 
-has-bigints@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
-  integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
+has-ansi@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+  integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
+  dependencies:
+    ansi-regex "^2.0.0"
 
 has-bigints@^1.0.1:
   version "1.0.1"
@@ -16816,13 +16879,6 @@ hosted-git-info@^3.0.8:
   dependencies:
     lru-cache "^6.0.0"
 
-hosted-git-info@^3.0.8:
-  version "3.0.8"
-  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d"
-  integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==
-  dependencies:
-    lru-cache "^6.0.0"
-
 hosted-git-info@^4.0.1:
   version "4.0.2"
   resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961"
@@ -17042,6 +17098,17 @@ http-errors@1.7.2:
     statuses ">= 1.5.0 < 2"
     toidentifier "1.0.0"
 
+http-errors@1.7.3, http-errors@~1.7.2:
+  version "1.7.3"
+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
+  integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
+  dependencies:
+    depd "~1.1.2"
+    inherits "2.0.4"
+    setprototypeof "1.1.1"
+    statuses ">= 1.5.0 < 2"
+    toidentifier "1.0.0"
+
 http-errors@^1.6.3, http-errors@^1.7.3:
   version "1.8.0"
   resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507"
@@ -17072,16 +17139,12 @@ http-errors@~1.6.2:
     setprototypeof "1.1.0"
     statuses ">= 1.4.0 < 2"
 
-http-errors@~1.7.2:
-  version "1.7.3"
-  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
-  integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
+http-headers@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/http-headers/-/http-headers-3.0.2.tgz#5147771292f0b39d6778d930a3a59a76fc7ef44d"
+  integrity sha512-87E1I+2Wg4dxxz4rcxElo3dxO/w1ZtgL1yA0Sb6vH3qU16vRKq1NjWQv9SCY3ly2OQROcoxHZOUpmelS+k6wOw==
   dependencies:
-    depd "~1.1.2"
-    inherits "2.0.4"
-    setprototypeof "1.1.1"
-    statuses ">= 1.5.0 < 2"
-    toidentifier "1.0.0"
+    next-line "^1.1.0"
 
 http-headers@^3.0.2:
   version "3.0.2"
@@ -17225,13 +17288,6 @@ i18n-iso-countries@^6.8.0:
   dependencies:
     diacritics "1.3.0"
 
-i18n-iso-countries@^6.8.0:
-  version "6.8.0"
-  resolved "https://registry.yarnpkg.com/i18n-iso-countries/-/i18n-iso-countries-6.8.0.tgz#eebbc75594c6832aff86176c1bb38daa133d6dfd"
-  integrity sha512-jJs/+CA6+VUICFxqGcB0vFMERGfhfvyNk+8Vb9EagSZkl7kSpm/kT0VyhvzM/zixDWEV/+oN9L7v/GT9BwzoGg==
-  dependencies:
-    diacritics "1.3.0"
-
 i18next-browser-languagedetector@^4.3.1:
   version "4.3.1"
   resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-4.3.1.tgz#005d2db6204b0a4af5f01c7987f5ccaf4ef97da5"
@@ -17666,25 +17722,6 @@ inquirer@^7.0.0, inquirer@^7.1.0, inquirer@^7.3.3:
     strip-ansi "^6.0.0"
     through "^2.3.6"
 
-inquirer@^7.3.3:
-  version "7.3.3"
-  resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"
-  integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==
-  dependencies:
-    ansi-escapes "^4.2.1"
-    chalk "^4.1.0"
-    cli-cursor "^3.1.0"
-    cli-width "^3.0.0"
-    external-editor "^3.0.3"
-    figures "^3.0.0"
-    lodash "^4.17.19"
-    mute-stream "0.0.8"
-    run-async "^2.4.0"
-    rxjs "^6.6.0"
-    string-width "^4.1.0"
-    strip-ansi "^6.0.0"
-    through "^2.3.6"
-
 interface-datastore@~0.6.0:
   version "0.6.0"
   resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-0.6.0.tgz#d167c6229c708c48d1ef9b1819ff68efeb82ac72"
@@ -20171,6 +20208,27 @@ json-schema-ref-parser@^9.0.7:
   dependencies:
     "@apidevtools/json-schema-ref-parser" "9.0.9"
 
+json-schema-to-typescript@^10.1.4:
+  version "10.1.4"
+  resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-10.1.4.tgz#6d8ae66937d07bd054095fc4a541aa81acea3549"
+  integrity sha512-HWm23Z6Fnj3rnm4FKZh3sMz70hNoA+AfqVuV+ZcwFIhq6v76YVUMZSLlonrw7GI5yIoiuuJjB5rqakIYRCLlsg==
+  dependencies:
+    "@types/json-schema" "^7.0.6"
+    "@types/lodash" "^4.14.168"
+    "@types/prettier" "^2.1.5"
+    cli-color "^2.0.0"
+    get-stdin "^8.0.0"
+    glob "^7.1.6"
+    glob-promise "^3.4.0"
+    is-glob "^4.0.1"
+    json-schema-ref-parser "^9.0.6"
+    json-stringify-safe "^5.0.1"
+    lodash "^4.17.20"
+    minimist "^1.2.5"
+    mkdirp "^1.0.4"
+    mz "^2.7.0"
+    prettier "^2.2.0"
+
 json-schema-to-typescript@^9.1.1:
   version "9.1.1"
   resolved "https://registry.yarnpkg.com/json-schema-to-typescript/-/json-schema-to-typescript-9.1.1.tgz#572c1eb8b7ca82d6534c023c4651f3fe925171c0"
@@ -20469,6 +20527,11 @@ kleur@^3.0.3:
   resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
   integrity "sha1-p5yezIbuHOP6YgbRIWxQHxR/wH4= sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
 
+kleur@^4.1.4:
+  version "4.1.4"
+  resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d"
+  integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==
+
 known-css-properties@^0.21.0:
   version "0.21.0"
   resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.21.0.tgz#15fbd0bbb83447f3ce09d8af247ed47c68ede80d"
@@ -21406,13 +21469,6 @@ lower-case@^2.0.2:
   dependencies:
     tslib "^2.0.3"
 
-lower-case@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
-  integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
-  dependencies:
-    tslib "^2.0.3"
-
 lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
@@ -24494,14 +24550,6 @@ pascal-case@^3.1.2:
     no-case "^3.0.4"
     tslib "^2.0.3"
 
-pascal-case@^3.1.2:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb"
-  integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==
-  dependencies:
-    no-case "^3.0.4"
-    tslib "^2.0.3"
-
 pascalcase@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
@@ -25511,12 +25559,7 @@ prettier@^2.0.5, prettier@^2.1.2, prettier@^2.2.1:
   resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
   integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
 
-prettier@^2.2.0, prettier@^2.3.1:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d"
-  integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==
-
-prettier@^2.3.0:
+prettier@^2.2.0, prettier@^2.3.0, prettier@^2.3.1:
   version "2.3.2"
   resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d"
   integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==
@@ -25709,16 +25752,7 @@ propagate@^2.0.0:
   resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45"
   integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==
 
-proper-lockfile@^4.0.0, proper-lockfile@^4.1.1:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f"
-  integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==
-  dependencies:
-    graceful-fs "^4.2.4"
-    retry "^0.12.0"
-    signal-exit "^3.0.2"
-
-proper-lockfile@^4.1.2:
+proper-lockfile@^4.0.0, proper-lockfile@^4.1.1, proper-lockfile@^4.1.2:
   version "4.1.2"
   resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f"
   integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==
@@ -27714,7 +27748,7 @@ rxjs-compat@^6.6.0:
   resolved "https://registry.yarnpkg.com/rxjs-compat/-/rxjs-compat-6.6.7.tgz#6eb4ef75c0a58ea672854a701ccc8d49f41e69cb"
   integrity sha512-szN4fK+TqBPOFBcBcsR0g2cmTTUF/vaFEOZNuSdfU8/pGFnNmmn2u8SystYXG1QMrjOPBc6XTKHMVfENDf6hHw==
 
-rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.1, rxjs@^6.5.2, rxjs@^6.6.0, rxjs@^6.6.2, rxjs@^6.6.6, rxjs@^6.6.7:
+rxjs@7.2.0, rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.1, rxjs@^6.5.2, rxjs@^6.6.0, rxjs@^6.6.2, rxjs@^6.6.3, rxjs@^6.6.6, rxjs@^6.6.7:
   version "6.6.7"
   resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
   integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
@@ -28236,15 +28270,6 @@ side-channel@^1.0.4:
     get-intrinsic "^1.0.2"
     object-inspect "^1.9.0"
 
-side-channel@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
-  integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
-  dependencies:
-    call-bind "^1.0.0"
-    get-intrinsic "^1.0.2"
-    object-inspect "^1.9.0"
-
 sigmund@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
@@ -29122,14 +29147,6 @@ string.prototype.trimstart@^1.0.4:
     call-bind "^1.0.2"
     define-properties "^1.1.3"
 
-string.prototype.trimstart@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
-  integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-
 string_decoder@^1.0.0, string_decoder@^1.1.1:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
@@ -29247,7 +29264,7 @@ strip-indent@^3.0.0:
   dependencies:
     min-indent "^1.0.0"
 
-strip-json-comments@3.1.1, strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
   integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
@@ -29283,7 +29300,7 @@ strong-log-transformer@^2.0.0:
     minimist "^1.2.0"
     through "^2.3.4"
 
-strtok3@^6.2.4:
+strtok3@^6.0.3, strtok3@^6.2.4:
   version "6.2.4"
   resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.2.4.tgz#302aea64c0fa25d12a0385069ba66253fdc38a81"
   integrity sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==
@@ -29532,7 +29549,12 @@ supports-color@8.1.1, supports-color@^8.1.0:
   dependencies:
     has-flag "^4.0.0"
 
-supports-color@^5.0.0, supports-color@^5.4.0, supports-color@^5.5.0:
+supports-color@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+  integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
+
+supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0:
   version "5.5.0"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
   integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
@@ -30233,6 +30255,14 @@ toidentifier@1.0.0:
   resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
   integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
 
+token-types@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/token-types/-/token-types-2.1.1.tgz#bd585d64902aaf720b8979d257b4b850b4d45c45"
+  integrity sha512-wnQcqlreS6VjthyHO3Y/kpK/emflxDBNhlNUPfh7wE39KnuDdOituXomIbyI79vBtF0Ninpkh72mcuRHo+RG3Q==
+  dependencies:
+    "@tokenizer/token" "^0.1.1"
+    ieee754 "^1.2.1"
+
 token-types@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/token-types/-/token-types-4.1.1.tgz#ef9e8c8e2e0ded9f1b3f8dbaa46a3228b113ba1a"
@@ -30485,7 +30515,7 @@ ts-node@^7.0.1:
     source-map-support "^0.5.6"
     yn "^2.0.0"
 
-ts-node@^8.10, ts-node@^8.6.2, ts-node@^8.8.1, ts-node@^8.8.2:
+ts-node@^8, ts-node@^8.10, ts-node@^8.6.2, ts-node@^8.8.1, ts-node@^8.8.2:
   version "8.10.2"
   resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d"
   integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==
@@ -30554,6 +30584,16 @@ tslib@1.11.2:
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.2.tgz#9c79d83272c9a7aaf166f73915c9667ecdde3cc9"
   integrity sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==
 
+tslib@1.13.0:
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
+  integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
+
+tslib@2.2.0, tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@~2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c"
+  integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==
+
 tslib@^1, tslib@^1.10.0, tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
   version "1.14.1"
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
@@ -31504,6 +31544,11 @@ uuid@3.3.2:
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
   integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
 
+uuid@8.3.2, uuid@^8.0.0, uuid@^8.3.0:
+  version "8.3.2"
+  resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+  integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
 uuid@^3.0.1, uuid@^3.1.0, uuid@^3.2.2, uuid@^3.3.2, uuid@^3.4.0:
   version "3.4.0"
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
@@ -32775,7 +32820,7 @@ yaml-validator@^3.0.0:
     js-yaml "^4.0.0"
     optionator "^0.9.1"
 
-yaml@^1.10.0, yaml@^1.7.2:
+yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2:
   version "1.10.2"
   resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
   integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
@@ -32801,7 +32846,7 @@ yargs-parser@20.2.4:
   resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
   integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
 
-yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.3:
+yargs-parser@20.x, yargs-parser@^20.2.2:
   version "20.2.7"
   resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a"
   integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==

Some files were not shown because too many files changed in this diff