mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-09-11 02:35:32 +03:00
contrib: Metadata V3 types + JSON Schema
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/2726 Co-authored-by: BenoitRanque <25712958+BenoitRanque@users.noreply.github.com> GitOrigin-RevId: 0a7a0452ad6dc4790fb2a745b905d4ad30e35836
This commit is contained in:
parent
95be515a60
commit
1d228db305
@ -5,6 +5,7 @@
|
||||
- server: log locking DB queries during source catalog migration
|
||||
- server: fix to allow remote schema response to contain an "extensions" field (#7143)
|
||||
- console: add comments to tracked functions
|
||||
- metadata SDK: add type definitions for config v3
|
||||
|
||||
### Bug fixes and improvements
|
||||
(Add entries below in the order of server, console, cli, docs, others)
|
||||
|
@ -5,11 +5,11 @@ selected_input_language: Typescript
|
||||
# Glob patterns for the target input files of selected language
|
||||
input_files:
|
||||
# Paths can be either a string, or an array of strings
|
||||
JsonSchema: './src/types/**.schema.json'
|
||||
Typescript: './src/types/**.ts'
|
||||
# JsonSchema: './src/types/**.schema.json'
|
||||
Typescript: "./src/types/**.ts"
|
||||
|
||||
# Output file directory
|
||||
output_directory: './generated'
|
||||
output_directory: "./generated"
|
||||
|
||||
# Quicktype config per-language
|
||||
# Config is an object of type "rendererOptions"
|
||||
@ -32,10 +32,10 @@ quicktype_config:
|
||||
# objective-c: ~
|
||||
# pike: ~
|
||||
python:
|
||||
python-version: '3.7'
|
||||
python-version: "3.7"
|
||||
# ruby: ~
|
||||
# rust: ~
|
||||
schema: ~
|
||||
# swift: ~
|
||||
typescript:
|
||||
# just-types: true
|
||||
# typescript:
|
||||
# just-types: true
|
||||
|
@ -988,15 +988,15 @@ type ObjectField struct {
|
||||
//
|
||||
// https://hasura.io/docs/latest/graphql/core/api-reference/schema-metadata-api/manage-metadata.html#replace-metadata
|
||||
type HasuraMetadataV2 struct {
|
||||
Actions []Action `json:"actions"`
|
||||
Allowlist []AllowList `json:"allowlist"`
|
||||
CronTriggers []CronTrigger `json:"cron_triggers"`
|
||||
CustomTypes *CustomTypes `json:"custom_types,omitempty"`
|
||||
Functions []CustomFunction `json:"functions"`
|
||||
QueryCollections []QueryCollectionEntry `json:"query_collections"`
|
||||
RemoteSchemas []RemoteSchema `json:"remote_schemas"`
|
||||
Tables []TableEntry `json:"tables"`
|
||||
Version float64 `json:"version"`
|
||||
Actions []Action `json:"actions,omitempty"`
|
||||
Allowlist []AllowList `json:"allowlist,omitempty"`
|
||||
CronTriggers []CronTrigger `json:"cron_triggers,omitempty"`
|
||||
CustomTypes *CustomTypes `json:"custom_types,omitempty"`
|
||||
Functions []CustomFunction `json:"functions,omitempty"`
|
||||
QueryCollections []QueryCollectionEntry `json:"query_collections,omitempty"`
|
||||
RemoteSchemas []RemoteSchema `json:"remote_schemas,omitempty"`
|
||||
Tables []TableEntry `json:"tables"`
|
||||
Version float64 `json:"version"`
|
||||
}
|
||||
|
||||
//
|
||||
@ -1005,7 +1005,7 @@ type Action struct {
|
||||
Comment *string `json:"comment,omitempty"` // Comment
|
||||
Definition ActionDefinition `json:"definition"` // Definition of the action
|
||||
Name string `json:"name"` // Name of the action
|
||||
Permissions *Permissions `json:"permissions,omitempty"`// Permissions of the action
|
||||
Permissions []Permission `json:"permissions,omitempty"`// Permissions of the action
|
||||
}
|
||||
|
||||
// Definition of the action
|
||||
@ -1013,10 +1013,10 @@ type Action struct {
|
||||
//
|
||||
// https://hasura.io/docs/latest/graphql/core/api-reference/schema-metadata-api/actions.html#actiondefinition
|
||||
type ActionDefinition struct {
|
||||
Arguments []InputArgument `json:"arguments"`
|
||||
Arguments []InputArgument `json:"arguments,omitempty"`
|
||||
ForwardClientHeaders *bool `json:"forward_client_headers,omitempty"`
|
||||
Handler string `json:"handler"` // A String value which supports templating environment variables enclosed in {{ and }}.; Template example: https://{{ACTION_API_DOMAIN}}/create-user
|
||||
Headers []Header `json:"headers"`
|
||||
Headers []Header `json:"headers,omitempty"`
|
||||
Kind *string `json:"kind,omitempty"`
|
||||
OutputType *string `json:"output_type,omitempty"`
|
||||
Type *ActionDefinitionType `json:"type,omitempty"`
|
||||
@ -1040,8 +1040,7 @@ type Header struct {
|
||||
ValueFromEnv *string `json:"value_from_env,omitempty"`// Name of the environment variable which holds the value of the header
|
||||
}
|
||||
|
||||
// Permissions of the action
|
||||
type Permissions struct {
|
||||
type Permission struct {
|
||||
Role string `json:"role"`
|
||||
}
|
||||
|
||||
@ -1076,10 +1075,10 @@ type RetryConfST struct {
|
||||
}
|
||||
|
||||
type CustomTypes struct {
|
||||
Enums []EnumType `json:"enums"`
|
||||
InputObjects []InputObjectType `json:"input_objects"`
|
||||
Objects []ObjectType `json:"objects"`
|
||||
Scalars []ScalarType `json:"scalars"`
|
||||
Enums []EnumType `json:"enums,omitempty"`
|
||||
InputObjects []InputObjectType `json:"input_objects,omitempty"`
|
||||
Objects []ObjectType `json:"objects,omitempty"`
|
||||
Scalars []ScalarType `json:"scalars,omitempty"`
|
||||
}
|
||||
|
||||
//
|
||||
@ -1117,10 +1116,10 @@ type InputObjectField struct {
|
||||
//
|
||||
// https://hasura.io/docs/latest/graphql/core/api-reference/schema-metadata-api/custom-types.html#objecttype
|
||||
type ObjectType struct {
|
||||
Description *string `json:"description,omitempty"`// Description of the Input object type
|
||||
Fields []InputObjectField `json:"fields"` // Fields of the Input object type
|
||||
Name string `json:"name"` // Name of the Input object type
|
||||
Relationships []CustomTypeObjectRelationship `json:"relationships"` // Relationships of the Object type to tables
|
||||
Description *string `json:"description,omitempty"` // Description of the Input object type
|
||||
Fields []InputObjectField `json:"fields"` // Fields of the Input object type
|
||||
Name string `json:"name"` // Name of the Input object type
|
||||
Relationships []CustomTypeObjectRelationship `json:"relationships,omitempty"`// Relationships of the Object type to tables
|
||||
}
|
||||
|
||||
//
|
||||
@ -1200,7 +1199,7 @@ type RemoteSchema struct {
|
||||
// https://hasura.io/docs/latest/graphql/core/api-reference/schema-metadata-api/syntax-defs.html#remoteschemadef
|
||||
type RemoteSchemaDef struct {
|
||||
ForwardClientHeaders *bool `json:"forward_client_headers,omitempty"`
|
||||
Headers []Header `json:"headers"`
|
||||
Headers []Header `json:"headers,omitempty"`
|
||||
TimeoutSeconds *float64 `json:"timeout_seconds,omitempty"`
|
||||
URL *string `json:"url,omitempty"`
|
||||
URLFromEnv *string `json:"url_from_env,omitempty"`
|
||||
@ -1208,18 +1207,18 @@ type RemoteSchemaDef struct {
|
||||
|
||||
// Representation of a table in metadata, 'tables.yaml' and 'metadata.json'
|
||||
type TableEntry struct {
|
||||
ArrayRelationships []ArrayRelationship `json:"array_relationships"`
|
||||
ComputedFields []ComputedField `json:"computed_fields"`
|
||||
Configuration *TableConfig `json:"configuration,omitempty"`// Configuration for the table/view; ; https://hasura.io/docs/latest/graphql/core/api-reference/schema-metadata-api/table-view.html#table-config
|
||||
DeletePermissions []DeletePermissionEntry `json:"delete_permissions"`
|
||||
EventTriggers []EventTrigger `json:"event_triggers"`
|
||||
InsertPermissions []InsertPermissionEntry `json:"insert_permissions"`
|
||||
IsEnum *bool `json:"is_enum,omitempty"`
|
||||
ObjectRelationships []ObjectRelationship `json:"object_relationships"`
|
||||
RemoteRelationships []RemoteRelationship `json:"remote_relationships"`
|
||||
SelectPermissions []SelectPermissionEntry `json:"select_permissions"`
|
||||
Table QualifiedTable `json:"table"`
|
||||
UpdatePermissions []UpdatePermissionEntry `json:"update_permissions"`
|
||||
ArrayRelationships []ArrayRelationship `json:"array_relationships,omitempty"`
|
||||
ComputedFields []ComputedField `json:"computed_fields,omitempty"`
|
||||
Configuration *TableConfig `json:"configuration,omitempty"` // Configuration for the table/view; ; https://hasura.io/docs/latest/graphql/core/api-reference/schema-metadata-api/table-view.html#table-config
|
||||
DeletePermissions []DeletePermissionEntry `json:"delete_permissions,omitempty"`
|
||||
EventTriggers []EventTrigger `json:"event_triggers,omitempty"`
|
||||
InsertPermissions []InsertPermissionEntry `json:"insert_permissions,omitempty"`
|
||||
IsEnum *bool `json:"is_enum,omitempty"`
|
||||
ObjectRelationships []ObjectRelationship `json:"object_relationships,omitempty"`
|
||||
RemoteRelationships []RemoteRelationship `json:"remote_relationships,omitempty"`
|
||||
SelectPermissions []SelectPermissionEntry `json:"select_permissions,omitempty"`
|
||||
Table QualifiedTable `json:"table"`
|
||||
UpdatePermissions []UpdatePermissionEntry `json:"update_permissions,omitempty"`
|
||||
}
|
||||
|
||||
//
|
||||
@ -1283,6 +1282,7 @@ type ComputedFieldDefinition struct {
|
||||
// https://hasura.io/docs/latest/graphql/core/api-reference/schema-metadata-api/table-view.html#table-config
|
||||
type TableConfig struct {
|
||||
CustomColumnNames map[string]string `json:"custom_column_names,omitempty"`// Customise the column names
|
||||
CustomName *string `json:"custom_name,omitempty"` // Customise the table name
|
||||
CustomRootFields *CustomRootFields `json:"custom_root_fields,omitempty"` // Customise the root fields
|
||||
}
|
||||
|
||||
@ -1324,7 +1324,7 @@ type DeletePermission struct {
|
||||
// https://hasura.io/docs/latest/graphql/core/api-reference/schema-metadata-api/event-triggers.html#create-event-trigger
|
||||
type EventTrigger struct {
|
||||
Definition EventTriggerDefinition `json:"definition"` // The SQL function
|
||||
Headers []Header `json:"headers"` // The SQL function
|
||||
Headers []Header `json:"headers,omitempty"` // The SQL function
|
||||
Name string `json:"name"` // Name of the event trigger
|
||||
RetryConf RetryConf `json:"retry_conf"` // The SQL function
|
||||
Webhook *string `json:"webhook,omitempty"` // The SQL function
|
||||
@ -1437,7 +1437,7 @@ type SelectPermissionEntry struct {
|
||||
type SelectPermission struct {
|
||||
AllowAggregations *bool `json:"allow_aggregations,omitempty"`// Toggle allowing aggregate queries
|
||||
Columns *EventTriggerColumns `json:"columns"` // Only these columns are selectable (or all when '*' is specified)
|
||||
ComputedFields []string `json:"computed_fields"` // Only these computed fields are selectable
|
||||
ComputedFields []string `json:"computed_fields,omitempty"` // Only these computed fields are selectable
|
||||
Filter map[string]*Filter `json:"filter,omitempty"` // Only the rows where this precondition holds true are selectable
|
||||
Limit *int64 `json:"limit,omitempty"` // The maximum number of rows that can be returned
|
||||
}
|
||||
|
@ -74,7 +74,7 @@ module QuickType
|
||||
, InputArgument (..)
|
||||
, HasuraMetadataV2 (..)
|
||||
, Header (..)
|
||||
, Permissions (..)
|
||||
, Permission (..)
|
||||
, Definition (..)
|
||||
, RemoteFieldValue (..)
|
||||
, ActionDefinitionType (..)
|
||||
@ -204,7 +204,7 @@ data Action = Action
|
||||
{ commentAction :: Maybe Text
|
||||
, definitionAction :: ActionDefinition
|
||||
, nameAction :: Text
|
||||
, permissionsAction :: Maybe Permissions
|
||||
, permissionsAction :: Maybe (Vector Permission)
|
||||
} deriving (Show)
|
||||
|
||||
{-| Definition of the action
|
||||
@ -260,9 +260,8 @@ data Header = Header
|
||||
, valueFromEnvHeader :: Maybe Text
|
||||
} deriving (Show)
|
||||
|
||||
{-| Permissions of the action -}
|
||||
data Permissions = Permissions
|
||||
{ rolePermissions :: Text
|
||||
data Permission = Permission
|
||||
{ rolePermission :: Text
|
||||
} deriving (Show)
|
||||
|
||||
{-|
|
||||
@ -734,11 +733,15 @@ https://hasura.io/docs/latest/graphql/core/api-reference/schema-metadata-api/tab
|
||||
customColumnNames:
|
||||
Customise the column names
|
||||
|
||||
customName:
|
||||
Customise the table name
|
||||
|
||||
customRootFields:
|
||||
Customise the root fields
|
||||
-}
|
||||
data TableConfig = TableConfig
|
||||
{ customColumnNamesTableConfig :: Maybe (HashMap Text Text)
|
||||
, customNameTableConfig :: Maybe Text
|
||||
, customRootFieldsTableConfig :: Maybe CustomRootFields
|
||||
} deriving (Show)
|
||||
|
||||
@ -1500,14 +1503,14 @@ instance FromJSON Header where
|
||||
<*> v .:? "value"
|
||||
<*> v .:? "value_from_env"
|
||||
|
||||
instance ToJSON Permissions where
|
||||
toJSON (Permissions rolePermissions) =
|
||||
instance ToJSON Permission where
|
||||
toJSON (Permission rolePermission) =
|
||||
object
|
||||
[ "role" .= rolePermissions
|
||||
[ "role" .= rolePermission
|
||||
]
|
||||
|
||||
instance FromJSON Permissions where
|
||||
parseJSON (Object v) = Permissions
|
||||
instance FromJSON Permission where
|
||||
parseJSON (Object v) = Permission
|
||||
<$> v .: "role"
|
||||
|
||||
instance ToJSON AllowList where
|
||||
@ -1927,15 +1930,17 @@ instance FromJSON ComputedFieldDefinition where
|
||||
<*> v .:? "table_argument"
|
||||
|
||||
instance ToJSON TableConfig where
|
||||
toJSON (TableConfig customColumnNamesTableConfig customRootFieldsTableConfig) =
|
||||
toJSON (TableConfig customColumnNamesTableConfig customNameTableConfig customRootFieldsTableConfig) =
|
||||
object
|
||||
[ "custom_column_names" .= customColumnNamesTableConfig
|
||||
, "custom_name" .= customNameTableConfig
|
||||
, "custom_root_fields" .= customRootFieldsTableConfig
|
||||
]
|
||||
|
||||
instance FromJSON TableConfig where
|
||||
parseJSON (Object v) = TableConfig
|
||||
<$> v .:? "custom_column_names"
|
||||
<*> v .:? "custom_name"
|
||||
<*> v .:? "custom_root_fields"
|
||||
|
||||
instance ToJSON CustomRootFields where
|
||||
|
@ -71,6 +71,11 @@
|
||||
"title": "TableConfig",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"custom_name": {
|
||||
"description": "Customise the table name",
|
||||
"type": "string",
|
||||
"title": "custom_name"
|
||||
},
|
||||
"custom_root_fields": {
|
||||
"description": "Customise the root fields",
|
||||
"$ref": "#/definitions/CustomRootFields",
|
||||
@ -1672,16 +1677,19 @@
|
||||
},
|
||||
"permissions": {
|
||||
"description": "Permissions of the action",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"role": {
|
||||
"type": "string",
|
||||
"title": "role"
|
||||
}
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"role": {
|
||||
"type": "string",
|
||||
"title": "role"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"role"
|
||||
]
|
||||
},
|
||||
"required": [
|
||||
"role"
|
||||
],
|
||||
"title": "permissions"
|
||||
}
|
||||
},
|
||||
|
@ -321,15 +321,14 @@ class ActionDefinition:
|
||||
|
||||
|
||||
@dataclass
|
||||
class Permissions:
|
||||
"""Permissions of the action"""
|
||||
class Permission:
|
||||
role: str
|
||||
|
||||
@staticmethod
|
||||
def from_dict(obj: Any) -> 'Permissions':
|
||||
def from_dict(obj: Any) -> 'Permission':
|
||||
assert isinstance(obj, dict)
|
||||
role = from_str(obj.get("role"))
|
||||
return Permissions(role)
|
||||
return Permission(role)
|
||||
|
||||
def to_dict(self) -> dict:
|
||||
result: dict = {}
|
||||
@ -349,7 +348,7 @@ class Action:
|
||||
"""Comment"""
|
||||
comment: Optional[str] = None
|
||||
"""Permissions of the action"""
|
||||
permissions: Optional[Permissions] = None
|
||||
permissions: Optional[List[Permission]] = None
|
||||
|
||||
@staticmethod
|
||||
def from_dict(obj: Any) -> 'Action':
|
||||
@ -357,7 +356,7 @@ class Action:
|
||||
definition = ActionDefinition.from_dict(obj.get("definition"))
|
||||
name = from_str(obj.get("name"))
|
||||
comment = from_union([from_str, from_none], obj.get("comment"))
|
||||
permissions = from_union([Permissions.from_dict, from_none], obj.get("permissions"))
|
||||
permissions = from_union([lambda x: from_list(Permission.from_dict, x), from_none], obj.get("permissions"))
|
||||
return Action(definition, name, comment, permissions)
|
||||
|
||||
def to_dict(self) -> dict:
|
||||
@ -365,7 +364,7 @@ class Action:
|
||||
result["definition"] = to_class(ActionDefinition, self.definition)
|
||||
result["name"] = from_str(self.name)
|
||||
result["comment"] = from_union([from_str, from_none], self.comment)
|
||||
result["permissions"] = from_union([lambda x: to_class(Permissions, x), from_none], self.permissions)
|
||||
result["permissions"] = from_union([lambda x: from_list(lambda x: to_class(Permission, x), x), from_none], self.permissions)
|
||||
return result
|
||||
|
||||
|
||||
@ -1166,6 +1165,8 @@ class TableConfig:
|
||||
"""
|
||||
"""Customise the column names"""
|
||||
custom_column_names: Optional[Dict[str, str]] = None
|
||||
"""Customise the table name"""
|
||||
custom_name: Optional[str] = None
|
||||
"""Customise the root fields"""
|
||||
custom_root_fields: Optional[CustomRootFields] = None
|
||||
|
||||
@ -1173,12 +1174,14 @@ class TableConfig:
|
||||
def from_dict(obj: Any) -> 'TableConfig':
|
||||
assert isinstance(obj, dict)
|
||||
custom_column_names = from_union([lambda x: from_dict(from_str, x), from_none], obj.get("custom_column_names"))
|
||||
custom_name = from_union([from_str, from_none], obj.get("custom_name"))
|
||||
custom_root_fields = from_union([CustomRootFields.from_dict, from_none], obj.get("custom_root_fields"))
|
||||
return TableConfig(custom_column_names, custom_root_fields)
|
||||
return TableConfig(custom_column_names, custom_name, custom_root_fields)
|
||||
|
||||
def to_dict(self) -> dict:
|
||||
result: dict = {}
|
||||
result["custom_column_names"] = from_union([lambda x: from_dict(from_str, x), from_none], self.custom_column_names)
|
||||
result["custom_name"] = from_union([from_str, from_none], self.custom_name)
|
||||
result["custom_root_fields"] = from_union([lambda x: to_class(CustomRootFields, x), from_none], self.custom_root_fields)
|
||||
return result
|
||||
|
||||
|
@ -54,6 +54,10 @@ definitions:
|
||||
title: TableConfig
|
||||
type: object
|
||||
properties:
|
||||
custom_name:
|
||||
description: Customise the table name
|
||||
type: string
|
||||
title: custom_name
|
||||
custom_root_fields:
|
||||
description: Customise the root fields
|
||||
$ref: '#/definitions/CustomRootFields'
|
||||
@ -1334,13 +1338,15 @@ definitions:
|
||||
title: comment
|
||||
permissions:
|
||||
description: Permissions of the action
|
||||
type: object
|
||||
properties:
|
||||
role:
|
||||
type: string
|
||||
title: role
|
||||
required:
|
||||
- role
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
role:
|
||||
type: string
|
||||
title: role
|
||||
required:
|
||||
- role
|
||||
title: permissions
|
||||
required:
|
||||
- definition
|
||||
|
2449
contrib/metadata-types/generated/HasuraMetadataV3.go
Normal file
2449
contrib/metadata-types/generated/HasuraMetadataV3.go
Normal file
File diff suppressed because it is too large
Load Diff
3477
contrib/metadata-types/generated/HasuraMetadataV3.hs
Normal file
3477
contrib/metadata-types/generated/HasuraMetadataV3.hs
Normal file
File diff suppressed because it is too large
Load Diff
2641
contrib/metadata-types/generated/HasuraMetadataV3.json
Normal file
2641
contrib/metadata-types/generated/HasuraMetadataV3.json
Normal file
File diff suppressed because it is too large
Load Diff
3553
contrib/metadata-types/generated/HasuraMetadataV3.py
Normal file
3553
contrib/metadata-types/generated/HasuraMetadataV3.py
Normal file
File diff suppressed because it is too large
Load Diff
2047
contrib/metadata-types/generated/HasuraMetadataV3.yaml
Normal file
2047
contrib/metadata-types/generated/HasuraMetadataV3.yaml
Normal file
File diff suppressed because it is too large
Load Diff
@ -18,17 +18,18 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/js-yaml": "^3.12.5",
|
||||
"@types/node": "^14.0.14",
|
||||
"fast-glob": "^3.2.4",
|
||||
"@types/node": "^16.10.3",
|
||||
"ava": "^3.9.0",
|
||||
"ts-node": "^8.10.2",
|
||||
"typescript": "^3.9.6",
|
||||
"fast-glob": "^3.2.4",
|
||||
"js-yaml": "^3.14.0",
|
||||
"microbundle": "^0.12.3",
|
||||
"quicktype": "^15.0.248",
|
||||
"quicktype-core": "^6.0.66",
|
||||
"prettier": "^2.4.1",
|
||||
"quicktype": "^15.0.260",
|
||||
"quicktype-core": "^6.0.70",
|
||||
"quicktype-typescript-input": "^0.0.11",
|
||||
"tsd": "^0.12.1"
|
||||
"ts-node": "^10.2.1",
|
||||
"tsd": "^0.12.1",
|
||||
"typescript": "^4.4.3"
|
||||
},
|
||||
"ava": {
|
||||
"extensions": [
|
||||
@ -38,4 +39,4 @@
|
||||
"ts-node/register"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -785,7 +785,7 @@ export interface Action {
|
||||
/** Comment */
|
||||
comment?: string
|
||||
/** Permissions of the action */
|
||||
permissions?: { role: string }
|
||||
permissions?: Array<{ role: string }>
|
||||
}
|
||||
|
||||
/**
|
||||
|
233
contrib/metadata-types/src/types/HasuraMetadataV3.ts
Normal file
233
contrib/metadata-types/src/types/HasuraMetadataV3.ts
Normal file
@ -0,0 +1,233 @@
|
||||
import {
|
||||
Action,
|
||||
AllowList,
|
||||
CronTrigger,
|
||||
CustomFunction,
|
||||
CustomTypes,
|
||||
QueryCollectionEntry,
|
||||
RemoteSchema,
|
||||
TableEntry,
|
||||
} from "./HasuraMetadataV2"
|
||||
|
||||
/**
|
||||
* https://hasura.io/docs/latest/graphql/core/api-reference/syntax-defs.html#fromenv
|
||||
*/
|
||||
export interface FromEnv {
|
||||
/** Name of the environment variable */
|
||||
from_env: string
|
||||
}
|
||||
|
||||
/**
|
||||
* https://hasura.io/docs/latest/graphql/core/api-reference/syntax-defs.html#pgconfiguration
|
||||
*/
|
||||
export interface PGConfiguration {
|
||||
/** Connection parameters for the source */
|
||||
connection_info: PGSourceConnectionInfo
|
||||
/** Optional list of read replica configuration (supported only in cloud/enterprise versions) */
|
||||
read_replicas?: PGSourceConnectionInfo[]
|
||||
}
|
||||
|
||||
/**
|
||||
* https://hasura.io/docs/latest/graphql/core/api-reference/syntax-defs.html#mssqlsourceconnectioninfo
|
||||
*/
|
||||
export interface MsSQLConfiguration {
|
||||
/** Connection parameters for the source */
|
||||
connection_info: MsSQLSourceConnectionInfo
|
||||
}
|
||||
|
||||
/**
|
||||
* https://hasura.io/docs/latest/graphql/core/api-reference/syntax-defs.html#bigqueryconfiguration
|
||||
*/
|
||||
export interface BigQueryConfiguration {
|
||||
/** Service account for BigQuery database */
|
||||
service_account: string | Record<string, any> | FromEnv
|
||||
/** Project Id for BigQuery database */
|
||||
project_id: string | FromEnv
|
||||
/** List of BigQuery datasets */
|
||||
datasets: string[] | FromEnv
|
||||
}
|
||||
|
||||
/**
|
||||
* https://hasura.io/docs/latest/graphql/core/api-reference/syntax-defs.html#pgsourceconnectioninfo
|
||||
*/
|
||||
export interface PGSourceConnectionInfo {
|
||||
/** The database connection URL as a string, as an environment variable, or as connection parameters. */
|
||||
database_url: string | FromEnv | PGConnectionParameters
|
||||
/** Connection pool settings */
|
||||
pool_settings?: PGPoolSettings
|
||||
|
||||
/** If set to true the server prepares statement before executing on the source database (default: false). For more details, refer to the Postgres docs */
|
||||
use_prepared_statements?: boolean
|
||||
|
||||
/** The transaction isolation level in which the queries made to the source will be run with (default: read-committed). */
|
||||
isolation_level?: "read-committed" | "repeatable-read" | "serializable"
|
||||
|
||||
/** The client SSL certificate settings for the database (Only available in Cloud). */
|
||||
ssl_configuration?: PGCertSettings
|
||||
}
|
||||
|
||||
/**
|
||||
* https://hasura.io/docs/latest/graphql/core/api-reference/syntax-defs.html#mssqlsourceconnectioninfo
|
||||
*/
|
||||
export interface MsSQLSourceConnectionInfo {
|
||||
/** The database connection string, or as an environment variable */
|
||||
connection_string: string | FromEnv
|
||||
/** Connection pool settings */
|
||||
pool_settings?: MsSQLPoolSettings
|
||||
}
|
||||
|
||||
/**
|
||||
* https://hasura.io/docs/latest/graphql/core/api-reference/syntax-defs.html#pgconnectionparameters
|
||||
*/
|
||||
export interface PGConnectionParameters {
|
||||
/**The Postgres user to be connected */
|
||||
username: string
|
||||
/** The Postgres user’s password */
|
||||
password?: string
|
||||
/** The database name */
|
||||
database: string
|
||||
/** The name of the host to connect to */
|
||||
host: string
|
||||
/** The port number to connect with, at the server host */
|
||||
port: number
|
||||
}
|
||||
|
||||
/**
|
||||
* https://hasura.io/docs/latest/graphql/core/api-reference/syntax-defs.html#pgpoolsettings
|
||||
*/
|
||||
export interface PGPoolSettings {
|
||||
/** Maximum number of connections to be kept in the pool (default: 50) */
|
||||
max_connections?: number
|
||||
/** The idle timeout (in seconds) per connection (default: 180) */
|
||||
idle_timeout?: number
|
||||
/** Number of retries to perform (default: 1) */
|
||||
retries?: number
|
||||
/** Maximum time to wait while acquiring a Postgres connection from the pool, in seconds (default: forever) */
|
||||
pool_timeout?: number
|
||||
/** Time from connection creation after which the connection should be destroyed and a new one created. A value of 0 indicates we should never destroy an active connection. If 0 is passed, memory from large query results may not be reclaimed. (default: 600 sec) */
|
||||
connection_lifetime?: number
|
||||
}
|
||||
|
||||
/**
|
||||
* https://hasura.io/docs/latest/graphql/core/api-reference/syntax-defs.html#pgcertsettings
|
||||
*/
|
||||
export interface PGCertSettings {
|
||||
/** The SSL connection mode. See the libpq ssl support docs <https://www.postgresql.org/docs/9.1/libpq-ssl.html> for more details. */
|
||||
sslmode: string
|
||||
/** Environment variable which stores trusted certificate authorities. */
|
||||
sslrootcert: FromEnv
|
||||
/** Environment variable which stores the client certificate. */
|
||||
sslcert: FromEnv
|
||||
/** Environment variable which stores the client private key. */
|
||||
sslkey: FromEnv
|
||||
/** Password in the case where the sslkey is encrypted. */
|
||||
sslpassword?: string | FromEnv
|
||||
}
|
||||
|
||||
/**
|
||||
* https://hasura.io/docs/latest/graphql/core/api-reference/syntax-defs.html#mssqlpoolsettings
|
||||
*/
|
||||
export interface MsSQLPoolSettings {
|
||||
/** Maximum number of connections to be kept in the pool (default: 50) */
|
||||
max_connections?: number
|
||||
/** The idle timeout (in seconds) per connection (default: 180) */
|
||||
idle_timeout?: number
|
||||
}
|
||||
|
||||
export enum BackendKind {
|
||||
POSTGRES = "postgres",
|
||||
MSSQL = "mssql",
|
||||
CITUS = "citus",
|
||||
BIGQUERY = "bigquery",
|
||||
}
|
||||
|
||||
interface BaseSource {
|
||||
name: string
|
||||
tables: TableEntry[]
|
||||
functions?: CustomFunction[]
|
||||
}
|
||||
|
||||
interface PGSource extends BaseSource {
|
||||
kind: BackendKind.POSTGRES | BackendKind.CITUS
|
||||
configuration: PGConfiguration
|
||||
}
|
||||
|
||||
interface MsSQLSource extends BaseSource {
|
||||
kind: BackendKind.MSSQL
|
||||
configuration: MsSQLConfiguration
|
||||
}
|
||||
|
||||
interface BigQuerySource extends BaseSource {
|
||||
kind: BackendKind.BIGQUERY
|
||||
configuration: BigQueryConfiguration
|
||||
}
|
||||
|
||||
export type Source = PGSource | MsSQLSource | BigQuerySource
|
||||
|
||||
export interface APILimits {
|
||||
depth_limit?: DepthLimit;
|
||||
disabled: boolean;
|
||||
rate_limit?: RateLimit;
|
||||
node_limit?: NodeLimit;
|
||||
}
|
||||
|
||||
export interface DepthLimit {
|
||||
global: number;
|
||||
per_role: {
|
||||
[role: string]: number;
|
||||
};
|
||||
}
|
||||
|
||||
export interface RateLimit {
|
||||
global: RateLimitRule;
|
||||
per_role: {
|
||||
[role: string]: RateLimitRule;
|
||||
};
|
||||
}
|
||||
|
||||
export interface RateLimitRule {
|
||||
unique_params: null | 'IP' | string[];
|
||||
max_reqs_per_min: number;
|
||||
}
|
||||
|
||||
export interface NodeLimit {
|
||||
global: number;
|
||||
per_role: {
|
||||
[role: string]: number;
|
||||
};
|
||||
}
|
||||
|
||||
export interface RestEndpoint {
|
||||
name: string;
|
||||
url: string;
|
||||
methods: ('POST' | 'PUT' | 'PATCH')[];
|
||||
definition: RestEndpointDefinition;
|
||||
comment?: string;
|
||||
}
|
||||
|
||||
export interface RestEndpointDefinition {
|
||||
query: {
|
||||
query_name: string;
|
||||
collection_name: string;
|
||||
};
|
||||
}
|
||||
|
||||
export interface InheritedRole {
|
||||
role_name: string;
|
||||
role_set: string[];
|
||||
}
|
||||
|
||||
// quicktype code generator can't handle Typescript's "Omit<T>" type
|
||||
export interface HasuraMetadataV3 {
|
||||
version: 3
|
||||
sources: Source[]
|
||||
actions?: Action[]
|
||||
custom_types?: CustomTypes
|
||||
remote_schemas?: RemoteSchema[]
|
||||
query_collections?: QueryCollectionEntry[]
|
||||
allowlist?: AllowList[]
|
||||
cron_triggers?: CronTrigger[]
|
||||
api_limits?: APILimits
|
||||
rest_endpoints: RestEndpoint[]
|
||||
inherited_roles?: InheritedRole[]
|
||||
}
|
@ -907,6 +907,18 @@
|
||||
dependencies:
|
||||
arrify "^1.0.1"
|
||||
|
||||
"@cspotcode/source-map-consumer@0.8.0":
|
||||
version "0.8.0"
|
||||
resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b"
|
||||
integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==
|
||||
|
||||
"@cspotcode/source-map-support@0.6.1":
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz#118511f316e2e87ee4294761868e254d3da47960"
|
||||
integrity sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==
|
||||
dependencies:
|
||||
"@cspotcode/source-map-consumer" "0.8.0"
|
||||
|
||||
"@mark.probst/typescript-json-schema@~0.32.0":
|
||||
version "0.32.0"
|
||||
resolved "https://registry.yarnpkg.com/@mark.probst/typescript-json-schema/-/typescript-json-schema-0.32.0.tgz#724d2de8baa2e46e5af4cfdeb9fe3758ced9b2a4"
|
||||
@ -1013,6 +1025,26 @@
|
||||
dependencies:
|
||||
defer-to-connect "^1.0.1"
|
||||
|
||||
"@tsconfig/node10@^1.0.7":
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9"
|
||||
integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==
|
||||
|
||||
"@tsconfig/node12@^1.0.7":
|
||||
version "1.0.9"
|
||||
resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c"
|
||||
integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==
|
||||
|
||||
"@tsconfig/node14@^1.0.0":
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2"
|
||||
integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==
|
||||
|
||||
"@tsconfig/node16@^1.0.2":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e"
|
||||
integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==
|
||||
|
||||
"@types/color-name@^1.1.1":
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
|
||||
@ -1051,11 +1083,16 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6"
|
||||
integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=
|
||||
|
||||
"@types/node@*", "@types/node@^14.0.14":
|
||||
"@types/node@*":
|
||||
version "14.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.0.tgz#7d4411bf5157339337d7cff864d9ff45f177b499"
|
||||
integrity sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==
|
||||
|
||||
"@types/node@^16.10.3":
|
||||
version "16.10.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.3.tgz#7a8f2838603ea314d1d22bb3171d899e15c57bd5"
|
||||
integrity sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==
|
||||
|
||||
"@types/normalize-package-data@^2.4.0":
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
|
||||
@ -1083,11 +1120,21 @@ acorn-walk@^7.2.0:
|
||||
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
|
||||
integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
|
||||
|
||||
acorn-walk@^8.1.1:
|
||||
version "8.2.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
|
||||
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
|
||||
|
||||
acorn@^7.1.0, acorn@^7.1.1, acorn@^7.3.1:
|
||||
version "7.4.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c"
|
||||
integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==
|
||||
|
||||
acorn@^8.4.1:
|
||||
version "8.5.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2"
|
||||
integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==
|
||||
|
||||
aggregate-error@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0"
|
||||
@ -1823,6 +1870,11 @@ cosmiconfig@^6.0.0:
|
||||
path-type "^4.0.0"
|
||||
yaml "^1.7.2"
|
||||
|
||||
create-require@^1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
|
||||
integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
|
||||
|
||||
cross-spawn@^6.0.0:
|
||||
version "6.0.5"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
|
||||
@ -3575,7 +3627,7 @@ nice-try@^1.0.4:
|
||||
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
|
||||
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
||||
|
||||
node-fetch@^1.0.1, node-fetch@^1.7.1:
|
||||
node-fetch@^1.0.1:
|
||||
version "1.7.3"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
|
||||
integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==
|
||||
@ -3583,6 +3635,11 @@ node-fetch@^1.0.1, node-fetch@^1.7.1:
|
||||
encoding "^0.1.11"
|
||||
is-stream "^1.0.1"
|
||||
|
||||
node-fetch@^2.6.1:
|
||||
version "2.6.1"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
|
||||
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
|
||||
|
||||
node-releases@^1.1.61:
|
||||
version "1.1.61"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.61.tgz#707b0fca9ce4e11783612ba4a2fcba09047af16e"
|
||||
@ -4305,6 +4362,11 @@ prepend-http@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
|
||||
integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
|
||||
|
||||
prettier@^2.4.1:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.4.1.tgz#671e11c89c14a4cfc876ce564106c4a6726c9f5c"
|
||||
integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==
|
||||
|
||||
pretty-bytes@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-3.0.1.tgz#27d0008d778063a0b4811bb35c79f1bd5d5fbccf"
|
||||
@ -4364,7 +4426,7 @@ quick-lru@^4.0.1:
|
||||
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
|
||||
integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==
|
||||
|
||||
quicktype-core@^6.0.18, quicktype-core@^6.0.66:
|
||||
quicktype-core@^6.0.18:
|
||||
version "6.0.68"
|
||||
resolved "https://registry.yarnpkg.com/quicktype-core/-/quicktype-core-6.0.68.tgz#bcb613c59eca68dac521e9b7854c073ee79a68c6"
|
||||
integrity sha512-9or+dslvADdgXGVYMjGr1xehVvBYr0WLRSgQ7MjaQ+NmAvqSCub9Hsq9S2Bbqj5cyDkm2faulbH4yQ7ksckffw==
|
||||
@ -4382,6 +4444,24 @@ quicktype-core@^6.0.18, quicktype-core@^6.0.66:
|
||||
wordwrap "^1.0.0"
|
||||
yaml "^1.5.0"
|
||||
|
||||
quicktype-core@^6.0.70:
|
||||
version "6.0.70"
|
||||
resolved "https://registry.yarnpkg.com/quicktype-core/-/quicktype-core-6.0.70.tgz#3be15eef505d356bc16fad01d2941d726c0a5700"
|
||||
integrity sha512-BMoG1omvauNhgGFzz1AkFVIC0LPXPArE6cCGI5fTeHvXKQsVUCbHt+seee2TaqUkELX9Pk6yA0s8OW8vW3kllA==
|
||||
dependencies:
|
||||
"@mark.probst/unicode-properties" "~1.1.0"
|
||||
browser-or-node "^1.2.1"
|
||||
collection-utils "^1.0.1"
|
||||
is-url "^1.2.4"
|
||||
isomorphic-fetch "^2.2.1"
|
||||
js-base64 "^2.4.3"
|
||||
pako "^1.0.6"
|
||||
pluralize "^7.0.0"
|
||||
readable-stream "2.3.0"
|
||||
urijs "^1.19.1"
|
||||
wordwrap "^1.0.0"
|
||||
yaml "^1.5.0"
|
||||
|
||||
quicktype-typescript-input@^0.0.11:
|
||||
version "0.0.11"
|
||||
resolved "https://registry.yarnpkg.com/quicktype-typescript-input/-/quicktype-typescript-input-0.0.11.tgz#b2682b77bb3c932a46fe0ae7524964be096c55f2"
|
||||
@ -4391,10 +4471,10 @@ quicktype-typescript-input@^0.0.11:
|
||||
quicktype-core "^6.0.18"
|
||||
typescript "~3.2.1"
|
||||
|
||||
quicktype@^15.0.248:
|
||||
version "15.0.256"
|
||||
resolved "https://registry.yarnpkg.com/quicktype/-/quicktype-15.0.256.tgz#4d9afa15a3dab4f9728f70e15d8210472c7b54ae"
|
||||
integrity sha512-GSMi0WDy9NLviujRT4ExrY3cIfDmw4o5RIbVBF/8Bzw7K4/qh46WDZSUdZ/DLIlF93hI4R3QHV2Q4ce0uXUvgg==
|
||||
quicktype@^15.0.260:
|
||||
version "15.0.260"
|
||||
resolved "https://registry.yarnpkg.com/quicktype/-/quicktype-15.0.260.tgz#ee3f3cf2a2d39b5e7ec38d8d91b3a88f01d0fae0"
|
||||
integrity sha512-OYP77enVz2UkcdDqVFc2AcFGYjk5/ENGYZHmSEY5Oy6Y2xVatlHUnrScddEkI+xJxSfYS6UXSH8oOTW7mEOiEw==
|
||||
dependencies:
|
||||
"@mark.probst/typescript-json-schema" "~0.32.0"
|
||||
"@mark.probst/unicode-properties" "~1.1.0"
|
||||
@ -4409,14 +4489,14 @@ quicktype@^15.0.248:
|
||||
js-base64 "^2.4.3"
|
||||
lodash "^4.17.19"
|
||||
moment "^2.22.1"
|
||||
node-fetch "^1.7.1"
|
||||
node-fetch "^2.6.1"
|
||||
pako "^1.0.6"
|
||||
pluralize "^7.0.0"
|
||||
readable-stream "2.3.0"
|
||||
stream-json "1.1.3"
|
||||
string-to-stream "^1.1.0"
|
||||
typescript "~3.2.1"
|
||||
urijs "^1.19.1"
|
||||
urijs "^1.19.4"
|
||||
uuid "^3.2.1"
|
||||
wordwrap "^1.0.0"
|
||||
yaml "^1.5.0"
|
||||
@ -4866,7 +4946,7 @@ slice-ansi@^3.0.0:
|
||||
astral-regex "^2.0.0"
|
||||
is-fullwidth-code-point "^3.0.0"
|
||||
|
||||
source-map-support@^0.5.17, source-map-support@^0.5.19, source-map-support@~0.5.12:
|
||||
source-map-support@^0.5.19, source-map-support@~0.5.12:
|
||||
version "0.5.19"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
|
||||
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
|
||||
@ -5280,15 +5360,22 @@ trim-off-newlines@^1.0.1:
|
||||
resolved "https://registry.yarnpkg.com/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3"
|
||||
integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM=
|
||||
|
||||
ts-node@^8.10.2:
|
||||
version "8.10.2"
|
||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d"
|
||||
integrity sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==
|
||||
ts-node@^10.2.1:
|
||||
version "10.2.1"
|
||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.2.1.tgz#4cc93bea0a7aba2179497e65bb08ddfc198b3ab5"
|
||||
integrity sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==
|
||||
dependencies:
|
||||
"@cspotcode/source-map-support" "0.6.1"
|
||||
"@tsconfig/node10" "^1.0.7"
|
||||
"@tsconfig/node12" "^1.0.7"
|
||||
"@tsconfig/node14" "^1.0.0"
|
||||
"@tsconfig/node16" "^1.0.2"
|
||||
acorn "^8.4.1"
|
||||
acorn-walk "^8.1.1"
|
||||
arg "^4.1.0"
|
||||
create-require "^1.1.0"
|
||||
diff "^4.0.1"
|
||||
make-error "^1.1.1"
|
||||
source-map-support "^0.5.17"
|
||||
yn "3.1.1"
|
||||
|
||||
tsd@^0.12.1:
|
||||
@ -5357,11 +5444,16 @@ typedarray@^0.0.6:
|
||||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
||||
|
||||
typescript@^3.9.5, typescript@^3.9.6:
|
||||
typescript@^3.9.5:
|
||||
version "3.9.7"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa"
|
||||
integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==
|
||||
|
||||
typescript@^4.4.3:
|
||||
version "4.4.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324"
|
||||
integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==
|
||||
|
||||
typescript@~3.2.1:
|
||||
version "3.2.4"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.4.tgz#c585cb952912263d915b462726ce244ba510ef3d"
|
||||
@ -5454,6 +5546,11 @@ urijs@^1.19.1:
|
||||
resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.2.tgz#f9be09f00c4c5134b7cb3cf475c1dd394526265a"
|
||||
integrity sha512-s/UIq9ap4JPZ7H1EB5ULo/aOUbWqfDi7FKzMC2Nz+0Si8GiT1rIEaprt8hy3Vy2Ex2aJPpOQv4P4DuOZ+K1c6w==
|
||||
|
||||
urijs@^1.19.4:
|
||||
version "1.19.7"
|
||||
resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.7.tgz#4f594e59113928fea63c00ce688fb395b1168ab9"
|
||||
integrity sha512-Id+IKjdU0Hx+7Zx717jwLPsPeUqz7rAtuVBRLLs+qn+J2nf9NGITWVCxcijgYxBqe83C7sqsQPs6H1pyz3x9gA==
|
||||
|
||||
url-parse-lax@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
|
||||
|
Loading…
Reference in New Issue
Block a user